SecureStorage Clase

Definición

Proporciona almacenamiento seguro simple para pares clave-valor.

public static class SecureStorage
Herencia
SecureStorage

Comentarios

Cada plataforma usa las API nativas proporcionadas para almacenar datos de forma segura:

  • iOS: los datos se almacenan en KeyChain. Información adicional sobre SecAccessible en: SecAccessible
  • Android: las claves de cifrado se almacenan en KeyStore y los datos cifrados se almacenan en un contenedor de preferencias compartidas con nombre (PackageId.Xamarin.Essentials).
  • UWP: los datos se cifran con DataProtectionProvider y se almacenan en un denominado ApplicationDataContainer (con un nombre de contenedor de ApplicationId.Xamarin.Essentials).

NOTA: En los dispositivos Android que se ejecutan por debajo de la API 23 (6.0 Marshmallow) no hay ningún AES disponible en KeyStore. Como procedimiento recomendado, esta API generará un par de claves RSA/ECB/PKCS7Padding almacenado en KeyStore (el único tipo admitido en KeyStore por estos niveles de API inferiores), que se usa para encapsular una clave AES generada en tiempo de ejecución. Esta clave ajustada se almacena en Preferencias.

Propiedades

DefaultAccessible

iOS: SecAccessible predeterminado que se usará para todas las llamadas Get/Set a KeyChain. El valor predeterminado es AfterFirstUnlock.

LegacyKeyHashFallback

Cuando se establece true en si no se encuentra el par clave-valor, también se usa el hash de clave MD5 para intentar localizar un valor.

Métodos

GetAsync(String)

Obtiene el valor descifrado de una clave determinada.

Remove(String)

Quita el par clave-valor cifrado para la clave especificada.

RemoveAll()

Quita todos los pares de clave-valor cifrados almacenados.

SetAsync(String, String)

Almacena el valor cifrado para una clave determinada.

SetAsync(String, String, SecAccessible)

Almacena el valor cifrado para una clave determinada. Invalidación de iOS para especificar SecAccessible para keyChain.

Se aplica a