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

nl::Weave::Perfis::Segurança::Senhas

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

Resumo

Enumerações

@278{
  kPasscode_Config1_TEST_ONLY = 0x01,
  kPasscode_Config2 = 0x02,
  kPasscodeConfig1_KeyId = WeaveKeyId::kNone
}
tipo enumerado
Teve 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)
}
tipo enumerado
Tamanhos de parâmetros do protocolo de criptografia de senha do Weave.

Variables

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

Functions

DecryptPasscode(const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *passcodeBuf, size_t passcodeBufSize, size_t & passcodeLen, GroupKeyStoreBase *groupKeyStore)
Descriptografar uma senha que foi criptografada usando o esquema de criptografia Nest Passcode.
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)
Descriptografar uma senha que foi criptografada usando o esquema de criptografia Nest Passcode.
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)
Criptografar uma senha usando o esquema de Criptografia de código de acesso do Nest
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)
Criptografar uma senha usando o esquema de Criptografia de código de acesso do Nest
GetEncryptedPasscodeConfig(const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t & config)
Descubra 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)
Receba o valor da impressão digital associado a uma senha criptografada.
GetEncryptedPasscodeKeyId(const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & keyId)
Descubra o ID da chave usada para criptografar uma senha criptografada.
GetEncryptedPasscodeNonce(const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & nonce)
Receba o valor de uso único associado a uma senha criptografada.
IsSupportedPasscodeEncryptionConfig(uint8_t config)
bool
Retorna verdadeiro se a configuração de criptografia de senha fornecida for compatível com as APIs de criptografia/descriptografia de senha.

Estruturas

nl::Weave::Profiles::Security::Passcodes::EncryptedPasscodeStruct

Enumerações

@278

 @278

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

Propriedades
kPasscodeConfig1_KeyId

ID da chave fictícia usado para a configuração de senha de teste 1.

kPasscode_Config1_TEST_ONLY

A configuração de criptografia de código 1 não usa criptografia e chaves secretas para autenticação e senha de impressão digital.

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

kPasscode_Config2

A configuração de criptografia 2 de código de acesso está usando a criptografia AES-128-ECB com integridade de HMAC-SHA-1 de 8 bytes e impressão digital de HMAC-SHA-1 de 8 bytes.

@279

 @279

Tamanhos de parâmetros do protocolo de criptografia de senha do Weave.

Propriedades
kPasscodeAuthenticationKeyLen

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

kPasscodeAuthenticatorLen

Comprimento do autenticador de senha.

kPasscodeEncKeyDiversifierSize

Tamanho do divisor de chave do app de criptografia de senha.

kPasscodeEncryptionKeyLen

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

kPasscodeFingerprintKeyDiversifierSize

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

kPasscodeFingerprintKeyLen

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

kPasscodeFingerprintLen

É o tamanho da impressão digital da senha.

kPasscodeMaxEncryptedLen

Tamanho máximo da senha criptografada.

kPasscodeMaxLen

Tamanho máximo de senha não criptografado.

kPasscodePaddedLen

Comprimento da senha (preenchido no tamanho do bloco AES-128).

kPasscodeTotalDerivedKeyLen

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

Variables

kPasscodeEncKeyDiversifier

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

Diversificado de chaves usado para a derivação de chaves de criptografia de senha do Weave.

Esse valor representa os primeiros quatro bytes da HASH SHA-1 da frase "K" do Nest Pass.

kPasscodeFingerprintKeyDiversifier

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

Diversificado de chaves usado para a derivação de chaves de criptografia de senha do Weave.

Esse valor representa os primeiros quatro bytes da HASH SHA-1 da frase "K" do Nest Pass.

Functions

DecryptPasscode

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

Descriptografar uma senha que foi criptografada usando o esquema de criptografia Nest Passcode.

Detalhes
Parâmetros
[in] encPasscode
Um ponteiro para o buffer de senha criptografado.
[in] encPasscodeLen
O tamanho da senha criptografada.
[in] passcodeBuf
Um ponteiro para um buffer para receber a senha descriptografada.
[in] passcodeBufSize
O tamanho do buffer apontado por passwordBuf.
[out] passcodeLen
Defina como o tamanho da senha descriptografada.
[in] groupKeyStore
Um ponteiro para o objeto de armazenamento de chaves do grupo.
Valores de retorno
WEAVE_NO_ERROR
Em caso de sucesso.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
A configuração de senha especificada não é compatível.
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
Se a autenticação por senha falhar.
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
Em caso de falha na verificação por impressão digital de senha.
WEAVE_ERROR_INVALID_KEY_ID
Se a chave solicitada tiver um ID 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, se o ponteiro para o repositório de chaves do grupo não for fornecido ou se o repositório 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
)

Descriptografar uma senha que foi criptografada usando o esquema de criptografia Nest Passcode.

Detalhes
Parâmetros
[in] encPasscode
Um ponteiro para o buffer de senha criptografado.
[in] encPasscodeLen
O tamanho da senha criptografada.
[in] encKey
Um ponteiro para a chave a ser usada para criptografar a senha. O comprimento da chave precisa 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 precisa corresponder ao algoritmo de autenticação associado à configuração especificada.
[in] fingerprintKey
Um ponteiro para a chave a ser usado para gerar a impressão digital da senha. O comprimento da chave precisa 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 passwordBuf.
[out] passcodeLen
Defina como o tamanho da senha descriptografada.
Valores de retorno
WEAVE_NO_ERROR
Em caso de sucesso.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
A configuração de senha especificada não é compatível.
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
Se a autenticação por senha falhar.
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
Em caso de falha na verificação por impressão digital de senha.
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
)

Criptografar uma senha usando o esquema de Criptografia de código de acesso do Nest

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 tamanho da senha.
[out] encPasscode
Um ponteiro para o buffer para armazenar uma senha criptografada.
[in] encPasscodeBufSize
O tamanho do buffer para o armazenamento de senhas criptografadas.
[out] encPasscodeLen
O tamanho da senha criptografada.
[in] groupKeyStore
Um ponteiro para o objeto de armazenamento de chaves do grupo.
Valores de retorno
WEAVE_NO_ERROR
Em caso de sucesso.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
A configuração de senha especificada não é compatível.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se fornecido, o buffer de saída é muito pequeno para a senha criptografada.
WEAVE_ERROR_INVALID_KEY_ID
Se a chave solicitada tiver um ID inválido.
WEAVE_ERROR_INVALID_ARGUMENT
se a senha fornecida for muito curta ou muito longa; se o ponteiro para o repositório de chaves do grupo não for fornecido ou se o repositório 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
)

Criptografar uma senha usando o esquema de Criptografia de código de acesso do Nest

Detalhes
Parâmetros
[in] config
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 tamanho da senha.
[in] encKey
Um ponteiro para a chave a ser usada para criptografar a senha. O comprimento da chave precisa 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 precisa corresponder ao algoritmo de autenticação associado à configuração especificada.
[in] fingerprintKey
Um ponteiro para a chave a ser usado para gerar a impressão digital da senha. O comprimento da chave precisa corresponder ao algoritmo de impressão digital associado à configuração especificada.
[out] encPasscode
Um ponteiro para um buffer em que a senha criptografada será armazenada. O tamanho desse buffer precisa ser de pelo menos kPasscodeMaxEncryptedLen.
[in] encPasscodeBufSize
O tamanho do buffer apontado pelo encPasscode.
[out] encPasscodeLen
O tamanho da senha criptografada.
Valores de retorno
WEAVE_NO_ERROR
Em caso de sucesso.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
A configuração de senha especificada não é compatível.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se fornecido, o buffer de saída é 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
)

Descubra 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
O tamanho da senha criptografada.
[out] config
Configuração de criptografia de senha do 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
)

Receba 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
O tamanho da senha criptografada.
[in] fingerprintBuf
Um buffer para receber o valor de impressão digital.
[in] fingerprintBufSize
Tamanho do buffer apontado por impressão digitalBuf.
[out] fingerprintLen
É o comprimento do valor de impressão digital retornado.

GetEncryptedPasscodeKeyId

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

Descubra o 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
O tamanho da senha criptografada.
[out] keyId
O ID da chave usada para criptografar a senha criptografada.

GetEncryptedPasscodeNonce

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

Receba o valor de uso único associado a uma senha criptografada.

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

IsSupportedPasscodeEncryptionConfig

bool IsSupportedPasscodeEncryptionConfig(
  uint8_t config
)

Retorna verdadeiro se a configuração de criptografia de senha fornecida for compatível com as APIs de criptografia/descriptografia de senha.