O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

nl :: Tecer:: Perfis :: Segurança:: Códigos de acesso

Este namespace inclui todas as interfaces do Weave para a biblioteca de senhas do Weave no perfil de segurança do Weave.

Resumo

Enumerações

@278 {
kPasscode_Config1_TEST_ONLY = 0x01,
kPasscode_Config2 = 0x02,
kPasscodeConfig1_KeyId = WeaveKeyId::kNone
}
enum
Tecer tipos de configuração de criptografia de senha.
@279 {
kPasscodeEncryptionKeyLen = Platform::Security::AES128BlockCipher::kKeyLength,
kPasscodeAuthenticationKeyLen = Platform::Security::SHA1::kHashLength,
kPasscodeFingerprintKeyLen = Platform::Security::SHA1::kHashLength,
kPasscodeTotalDerivedKeyLen = kPasscodeEncryptionKeyLen + kPasscodeAuthenticationKeyLen,
kPasscodePaddedLen = Platform::Security::AES128BlockCipher::kBlockLength,
kPasscodeAuthenticatorLen = 8,
kPasscodeFingerprintLen = 8,
kPasscodeMaxEncryptedLen = sizeof(uint8_t) + 2 * sizeof(uint32_t) + kPasscodePaddedLen + kPasscodeAuthenticatorLen + kPasscodeFingerprintLen,
kPasscodeMaxLen = kPasscodePaddedLen,
kPasscodeEncKeyDiversifierSize = sizeof(kPasscodeEncKeyDiversifier) + sizeof(uint8_t),
kPasscodeFingerprintKeyDiversifierSize = sizeof(kPasscodeFingerprintKeyDiversifier)
}
enum
Tecer tamanhos de parâmetro de protocolo de criptografia de senha.

Variáveis

kPasscodeEncKeyDiversifier = { 0x1A, 0x65, 0x5D, 0x96 }[]
const uint8_t
Diversificador de chave usado para derivação da chave de criptografia de senha do Weave.
kPasscodeFingerprintKeyDiversifier = { 0xD1, 0xA1, 0xD9, 0x6C }[]
const uint8_t
Diversificador de chave usado para derivação de chave de criptografia de senha Weave.

Funções

DecryptPasscode (const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *passcodeBuf, size_t passcodeBufSize, size_t & passcodeLen, GroupKeyStoreBase *groupKeyStore)
Descriptografe uma senha que foi criptografada usando o esquema Nest Passcode Encryption.
DecryptPasscode (const uint8_t *encPasscode, size_t encPasscodeLen, const uint8_t *encKey, const uint8_t *authKey, const uint8_t *fingerprintKey, uint8_t *passcodeBuf, size_t passcodeBufSize, size_t & passcodeLen)
Descriptografe uma senha que foi criptografada usando o esquema Nest Passcode Encryption.
EncryptPasscode (uint8_t config, uint32_t keyId, uint32_t nonce, const uint8_t *passcode, size_t passcodeLen, uint8_t *encPasscode, size_t encPasscodeBufSize, size_t & encPasscodeLen, GroupKeyStoreBase *groupKeyStore)
Criptografe uma senha usando o esquema Nest Passcode Encryption.
EncryptPasscode (uint8_t config, uint32_t keyId, uint32_t nonce, const uint8_t *passcode, size_t passcodeLen, const uint8_t *encKey, const uint8_t *authKey, const uint8_t *fingerprintKey, uint8_t *encPasscode, size_t encPasscodeBufSize, size_t & encPasscodeLen)
Criptografe uma senha usando o esquema Nest Passcode Encryption.
GetEncryptedPasscodeConfig (const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t & config)
Obtenha o tipo de configuração de uma senha criptografada.
GetEncryptedPasscodeFingerprint (const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *fingerprintBuf, size_t fingerprintBufSize, size_t & fingerprintLen)
Obtenha o valor da impressão digital associado a uma senha criptografada.
GetEncryptedPasscodeKeyId (const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & keyId)
Obtenha a id da chave usada para criptografar uma senha criptografada.
GetEncryptedPasscodeNonce (const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & nonce)
Obtenha o valor nonce associado a uma senha criptografada.
IsSupportedPasscodeEncryptionConfig (uint8_t config)
bool
Retorna verdadeiro se a configuração de criptografia de senha fornecida for suportada pelas APIs de criptografia / descriptografia de senha.

Structs

nl :: Weave :: Profiles :: Segurança :: Passcodes :: EncryptedPasscodeStruct

Enumerações

@ 278

 @278

Tecer tipos de configuração de criptografia de senha.

Propriedades
kPasscodeConfig1_KeyId

ID de chave fictício usado para configuração de senha de teste # 1.

kPasscode_Config1_TEST_ONLY

A configuração de criptografia de senha nº 1 não usa criptografia e chaves secretas para autenticar a senha de impressão digital.

Esta configuração DEVE ser usada apenas para fins de TESTE.

kPasscode_Config2

A configuração de criptografia de senha nº 2 usa criptografia AES-128-ECB com integridade HMAC-SHA-1 de 8 bytes e impressão digital HMAC-SHA-1 de 8 bytes.

@ 279

 @279

Tecer tamanhos de parâmetro de protocolo de criptografia de senha.

Propriedades
kPasscodeAuthenticationKeyLen

Comprimento da chave de autenticação por senha (SHA-1).

kPasscodeAuthenticatorLen

Comprimento do autenticador de senha.

kPasscodeEncKeyDiversifierSize

Tamanho do diversificador de chave do aplicativo de criptografia de senha.

kPasscodeEncryptionKeyLen

Comprimento da chave de criptografia de senha (AES-128).

kPasscodeFingerprintKeyDiversifierSize

Tamanho do diversificador de chave de impressão digital com senha.

kPasscodeFingerprintKeyLen

Comprimento da chave da impressão digital da senha (SHA-1).

kPasscodeFingerprintLen

Comprimento da impressão digital da senha.

kPasscodeMaxEncryptedLen

Comprimento máximo da senha criptografada.

kPasscodeMaxLen

Comprimento máximo da senha não criptografada.

kPasscodePaddedLen

Comprimento da senha (preenchido com o comprimento do bloco AES-128).

kPasscodeTotalDerivedKeyLen

Comprimento total da chave da senha (criptografia e integridade).

Variáveis

kPasscodeEncKeyDiversifier

const uint8_t kPasscodeEncKeyDiversifier[] = { 0x1A, 0x65, 0x5D, 0x96 }

Diversificador de chave usado para derivação da chave de criptografia de senha do Weave.

Este valor representa os primeiros 4 bytes do SHA-1 HASH da frase "Nest Passcode EK e AK".

kPasscodeFingerprintKeyDiversifier

const uint8_t kPasscodeFingerprintKeyDiversifier[] = { 0xD1, 0xA1, 0xD9, 0x6C }

Diversificador de chave usado para derivação da chave de criptografia de senha do Weave.

Este valor representa os primeiros 4 bytes do SHA-1 HASH da frase "Nest Passcode EK e AK".

Funções

DecryptPasscode

WEAVE_ERROR DecryptPasscode(
  const uint8_t *encPasscode,
  size_t encPasscodeLen,
  uint8_t *passcodeBuf,
  size_t passcodeBufSize,
  size_t & passcodeLen,
  GroupKeyStoreBase *groupKeyStore
)

Descriptografe uma senha que foi criptografada usando o esquema Nest Passcode Encryption.

Detalhes
Parâmetros
[in] encPasscode
Um ponteiro para o buffer de senha criptografada.
[in] encPasscodeLen
O comprimento da senha criptografada.
[in] passcodeBuf
Um ponteiro para um buffer para receber a senha descriptografada.
[in] passcodeBufSize
O tamanho do buffer apontado por passcodeBuf.
[out] passcodeLen
Defina o comprimento da senha descriptografada.
[in] groupKeyStore
Um ponteiro para o objeto de armazenamento de chaves do grupo.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Se a configuração de senha especificada não for suportada.
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
Se a autenticação por senha falhar.
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
Se a verificação da impressão digital com senha falhar.
WEAVE_ERROR_INVALID_KEY_ID
Se a chave solicitada tiver um ID de chave inválido.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se o buffer de senha fornecido for muito pequeno.
WEAVE_ERROR_INVALID_ARGUMENT
Se a senha criptografada for muito curta ou muito longa; Ou se o ponteiro para o armazenamento de chaves do grupo não for fornecido ou o armazenamento de chaves da plataforma retornar parâmetros de chave inválidos.
other
Outros erros específicos da plataforma retornados pelas APIs de armazenamento de chaves da plataforma.

DecryptPasscode

WEAVE_ERROR DecryptPasscode(
  const uint8_t *encPasscode,
  size_t encPasscodeLen,
  const uint8_t *encKey,
  const uint8_t *authKey,
  const uint8_t *fingerprintKey,
  uint8_t *passcodeBuf,
  size_t passcodeBufSize,
  size_t & passcodeLen
)

Descriptografe uma senha que foi criptografada usando o esquema Nest Passcode Encryption.

Detalhes
Parâmetros
[in] encPasscode
Um ponteiro para o buffer de senha criptografada.
[in] encPasscodeLen
O comprimento da senha criptografada.
[in] encKey
Um ponteiro para a chave a ser usada para criptografar a senha. O comprimento da chave deve corresponder ao algoritmo de criptografia associado à configuração especificada.
[in] authKey
Um ponteiro para a chave a ser usada para autenticar a senha. O comprimento da chave deve corresponder ao algoritmo de autenticação associado à configuração especificada.
[in] fingerprintKey
Um ponteiro para a chave a ser usada para gerar a impressão digital da senha. O comprimento da chave deve corresponder ao algoritmo de impressão digital associado à configuração especificada.
[in] passcodeBuf
Um ponteiro para um buffer para receber a senha descriptografada.
[in] passcodeBufSize
O tamanho do buffer apontado por passcodeBuf.
[out] passcodeLen
Defina o comprimento da senha descriptografada.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Se a configuração de senha especificada não for suportada.
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
Se a autenticação por senha falhar.
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
Se a verificação da impressão digital com senha falhar.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se o buffer de senha fornecido for muito pequeno.
WEAVE_ERROR_INVALID_ARGUMENT
Se a senha criptografada for muito curta ou muito longa.

EncryptPasscode

WEAVE_ERROR EncryptPasscode(
  uint8_t config,
  uint32_t keyId,
  uint32_t nonce,
  const uint8_t *passcode,
  size_t passcodeLen,
  uint8_t *encPasscode,
  size_t encPasscodeBufSize,
  size_t & encPasscodeLen,
  GroupKeyStoreBase *groupKeyStore
)

Criptografe uma senha usando o esquema Nest Passcode Encryption.

Detalhes
Parâmetros
[in] config
A configuração de criptografia de senha a ser usada.
[in] keyId
O ID da chave de criptografia da senha solicitada.
[in] nonce
Um valor exclusivo atribuído à senha criptografada.
[in] passcode
Um ponteiro para a senha a ser criptografada.
[in] passcodeLen
O comprimento da senha.
[out] encPasscode
Um ponteiro para o buffer para armazenar a senha criptografada.
[in] encPasscodeBufSize
O tamanho do buffer para armazenamento de senha criptografada.
[out] encPasscodeLen
O comprimento da senha criptografada.
[in] groupKeyStore
Um ponteiro para o objeto de armazenamento de chaves do grupo.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Se a configuração de senha especificada não for suportada.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se o buffer de saída fornecido for muito pequeno para a senha criptografada.
WEAVE_ERROR_INVALID_KEY_ID
Se a chave solicitada tiver um ID de chave inválido.
WEAVE_ERROR_INVALID_ARGUMENT
Se a senha fornecida for muito curta ou muito longa; Ou se o ponteiro para o armazenamento de chaves do grupo não for fornecido ou o armazenamento de chaves da plataforma retornar parâmetros de chave inválidos.
other
Outros erros específicos da plataforma retornados pelas APIs de armazenamento de chaves da plataforma.

EncryptPasscode

WEAVE_ERROR EncryptPasscode(
  uint8_t config,
  uint32_t keyId,
  uint32_t nonce,
  const uint8_t *passcode,
  size_t passcodeLen,
  const uint8_t *encKey,
  const uint8_t *authKey,
  const uint8_t *fingerprintKey,
  uint8_t *encPasscode,
  size_t encPasscodeBufSize,
  size_t & encPasscodeLen
)

Criptografe uma senha usando o esquema Nest Passcode Encryption.

Detalhes
Parâmetros
[in] config
A configuração de criptografia de senha do Weave a ser usada.
[in] keyId
O ID da chave de criptografia da senha solicitada.
[in] nonce
Um valor exclusivo atribuído à senha.
[in] passcode
Um ponteiro para a senha a ser criptografada.
[in] passcodeLen
O comprimento da senha.
[in] encKey
Um ponteiro para a chave a ser usada para criptografar a senha. O comprimento da chave deve corresponder ao algoritmo de criptografia associado à configuração especificada.
[in] authKey
Um ponteiro para a chave a ser usada para autenticar a senha. O comprimento da chave deve corresponder ao algoritmo de autenticação associado à configuração especificada.
[in] fingerprintKey
Um ponteiro para a chave a ser usada para gerar a impressão digital da senha. O comprimento da chave deve corresponder ao algoritmo de impressão digital associado à configuração especificada.
[out] encPasscode
Um ponteiro para um buffer no qual a senha criptografada será armazenada. Este buffer deve ter pelo menos kPasscodeMaxEncryptedLen de tamanho.
[in] encPasscodeBufSize
O tamanho do buffer apontado por encPasscode.
[out] encPasscodeLen
O comprimento da senha criptografada.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Se a configuração de senha especificada não for suportada.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se o buffer de saída fornecido for muito pequeno para a senha criptografada.
WEAVE_ERROR_INVALID_ARGUMENT
Se a senha fornecida for muito curta ou muito longa.

GetEncryptedPasscodeConfig

WEAVE_ERROR GetEncryptedPasscodeConfig(
  const uint8_t *encPasscode,
  size_t encPasscodeLen,
  uint8_t & config
)

Obtenha o tipo de configuração de uma senha criptografada.

Detalhes
Parâmetros
[in] encPasscode
Ponteiro para um buffer que contém a senha criptografada.
[in] encPasscodeLen
Comprimento da senha criptografada.
[out] config
A configuração de criptografia da senha Weave usada pela senha criptografada.

GetEncryptedPasscodeFingerprint

WEAVE_ERROR GetEncryptedPasscodeFingerprint(
  const uint8_t *encPasscode,
  size_t encPasscodeLen,
  uint8_t *fingerprintBuf,
  size_t fingerprintBufSize,
  size_t & fingerprintLen
)

Obtenha o valor da impressão digital associado a uma senha criptografada.

Detalhes
Parâmetros
[in] encPasscode
Ponteiro para um buffer que contém a senha criptografada.
[in] encPasscodeLen
Comprimento da senha criptografada.
[in] fingerprintBuf
Um buffer para receber o valor da impressão digital.
[in] fingerprintBufSize
O tamanho do buffer apontado por fingerprintBuf.
[out] fingerprintLen
O comprimento do valor da impressão digital retornado.

GetEncryptedPasscodeKeyId

WEAVE_ERROR GetEncryptedPasscodeKeyId(
  const uint8_t *encPasscode,
  size_t encPasscodeLen,
  uint32_t & keyId
)

Obtenha a id da chave usada para criptografar uma senha criptografada.

Detalhes
Parâmetros
[in] encPasscode
Ponteiro para um buffer que contém a senha criptografada.
[in] encPasscodeLen
Comprimento da senha criptografada.
[out] keyId
A id da chave usada para criptografar a senha criptografada.

GetEncryptedPasscodeNonce

WEAVE_ERROR GetEncryptedPasscodeNonce(
  const uint8_t *encPasscode,
  size_t encPasscodeLen,
  uint32_t & nonce
)

Obtenha o valor nonce associado a uma senha criptografada.

Detalhes
Parâmetros
[in] encPasscode
Ponteiro para um buffer que contém a senha criptografada.
[in] encPasscodeLen
Comprimento da senha criptografada.
[out] nonce
O valor nonce associado a uma senha criptografada.

IsSupportedPasscodeEncryptionConfig

bool IsSupportedPasscodeEncryptionConfig(
  uint8_t config
)

Retorna verdadeiro se a configuração de criptografia de senha fornecida for suportada pelas APIs de criptografia / descriptografia de senha.