Compartilhar via


SecureStorage Classe

Definição

Fornece armazenamento seguro simples para pares chave/valor.

public static class SecureStorage
Herança
System.Object
SecureStorage

Comentários

Cada plataforma usa as API nativas fornecidas pela plataforma para armazenar dados com segurança:

  • iOS: os dados são armazenados no KeyChain. Informações adicionais sobre SecAccessible em: Security.SecAccessible:
  • Android: as chaves de criptografia são armazenadas no KeyStore e os dados criptografados são armazenados em um contêiner de preferência compartilhada nomeado (PackageId.Xamarin.Essentials).:
  • UWP: os dados são criptografados com DataProtectionProvider e armazenados em um ApplicationDataContainer nomeado (com um nome de contêiner ApplicationId.Xamarin.Essentials).:

OBSERVAÇÃO: em dispositivos Android em execução abaixo da API 23 (6.0 Marshmallow) não há nenhum AES disponível no KeyStore. Como prática recomendada, essa API gerará um par de chaves RSA/ECB/PKCS7Padding armazenado no KeyStore (o único tipo com suporte no KeyStore por esses níveis de API mais baixos), que é usado para encapsular uma chave AES gerada em runtime. Essa chave encapsulada é armazenada em Preferências.

Propriedades

DefaultAccessible

iOS: SecAccessible padrão a ser usado para todas as chamadas Get/Set para KeyChain. O valor padrão é AfterFirstUnlock.

LegacyKeyHashFallback

Quando definido como true se o par chave/valor não for encontrado, o hash de chave MD5 também será usado para tentar localizar um valor.

Métodos

GetAsync(String)

Obtém o valor descriptografado para uma determinada Chave.

Remove(String)

Remove o par chave/valor criptografado para a chave fornecida.

RemoveAll()

Remove todos os pares de chave/valor criptografados armazenados.

SetAsync(String, String)

Armazena o valor criptografado para uma determinada Chave.

SetAsync(String, String, SecAccessible)

Armazena o valor criptografado para uma determinada Chave. Substituição do iOS para especificar SecAccessible para o KeyChain.

Aplica-se a