nl:: Weave:: Profiles:: Security:: 密码
此命名空间包括 Weave 中适用于 Weave 安全配置文件内的 Weave 密码库的所有接口。
摘要
枚举 |
|
---|---|
@278{
|
枚举 编织密码加密配置类型。 |
@279{
|
枚举 Weave 密码加密协议参数大小。 |
变量 |
|
---|---|
kPasscodeEncKeyDiversifier = { 0x1A, 0x65, 0x5D, 0x96 }[]
|
const uint8_t
用于计算 Weave 密码加密密钥的密钥密钥分流器。
|
kPasscodeFingerprintKeyDiversifier = { 0xD1, 0xA1, 0xD9, 0x6C }[]
|
const uint8_t
用于计算 Weave 密码加密密钥的密钥密钥分流器。
|
函数 |
|
---|---|
DecryptPasscode(const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *passcodeBuf, size_t passcodeBufSize, size_t & passcodeLen, GroupKeyStoreBase *groupKeyStore)
|
对使用 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)
|
对使用 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)
|
使用 Nest Passcode 加密方案加密密码。
|
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)
|
使用 Nest Passcode 加密方案加密密码。
|
GetEncryptedPasscodeConfig(const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t & config)
|
获取加密密码的配置类型。
|
GetEncryptedPasscodeFingerprint(const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *fingerprintBuf, size_t fingerprintBufSize, size_t & fingerprintLen)
|
获取与加密密码关联的指纹值。
|
GetEncryptedPasscodeKeyId(const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & keyId)
|
获取用于对加密密码进行加密的密钥的 ID。
|
GetEncryptedPasscodeNonce(const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & nonce)
|
获取与加密密码关联的 Nonce 值。
|
IsSupportedPasscodeEncryptionConfig(uint8_t config)
|
bool
如果提供的密码加密/解密 API 支持提供的密码加密配置,则返回 true。
|
结构体 |
|
---|---|
nl:: |
枚举
278 @
@278
编织密码加密配置类型。
属性 | |
---|---|
kPasscodeConfig1_KeyId
|
用于测试密码配置 #1 的虚拟密钥 ID。 |
kPasscode_Config1_TEST_ONLY
|
密码加密配置 #1 不使用加密和密钥进行身份验证和指纹密码。 此配置应仅用于测试目的。 |
kPasscode_Config2
|
密码加密配置 #2 使用 8 字节 HMAC-SHA-1 完整性和 8 字节 HMAC-SHA-1 指纹的 AES-128-ECB 加密。 |
279 @
@279
Weave 密码加密协议参数大小。
属性 | |
---|---|
kPasscodeAuthenticationKeyLen
|
密码身份验证 (SHA-1) 密钥长度。 |
kPasscodeAuthenticatorLen
|
密码身份验证器长度。 |
kPasscodeEncKeyDiversifierSize
|
密码加密应用密钥分流器大小。 |
kPasscodeEncryptionKeyLen
|
密码加密 (AES-128) 密钥长度。 |
kPasscodeFingerprintKeyDiversifierSize
|
密码指纹密钥分流器大小。 |
kPasscodeFingerprintKeyLen
|
密码指纹 (SHA-1) 密钥长度。 |
kPasscodeFingerprintLen
|
密码指纹长度。 |
kPasscodeMaxEncryptedLen
|
加密密码长度上限。 |
kPasscodeMaxLen
|
未加密的密码长度上限。 |
kPasscodePaddedLen
|
密码长度(填充到 AES-128 块长度中)。 |
kPasscodeTotalDerivedKeyLen
|
密码总长度(加密和完整性)密钥长度。 |
变量
kPasscodeEncKeyDiversifier
const uint8_t kPasscodeEncKeyDiversifier[] = { 0x1A, 0x65, 0x5D, 0x96 }
用于计算 Weave 密码加密密钥的密钥密钥分流器。
此值表示“Nest Passcode EK 和 AK”短语的 SHA-1 HASH 的前 4 个字节。
kPasscodeFingerprintKeyDiversifier
const uint8_t kPasscodeFingerprintKeyDiversifier[] = { 0xD1, 0xA1, 0xD9, 0x6C }
用于计算 Weave 密码加密密钥的密钥密钥分流器。
此值表示“Nest Passcode EK 和 AK”短语的 SHA-1 HASH 的前 4 个字节。
函数
解密密码
WEAVE_ERROR DecryptPasscode( const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *passcodeBuf, size_t passcodeBufSize, size_t & passcodeLen, GroupKeyStoreBase *groupKeyStore )
对使用 Nest Passcode 加密方案加密的密码进行解密。
详细信息 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||||
返回值 |
|
解密密码
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 )
对使用 Nest Passcode 加密方案加密的密码进行解密。
详细信息 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||||
返回值 |
|
加密密码
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 )
使用 Nest Passcode 加密方案加密密码。
详细信息 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||||||
返回值 |
|
加密密码
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 )
使用 Nest Passcode 加密方案加密密码。
详细信息 | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||||||||||
返回值 |
|
GetEncryptedPasscodeConfig
WEAVE_ERROR GetEncryptedPasscodeConfig( const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t & config )
获取加密密码的配置类型。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
GetEncryptedPasscodeFingerprint
WEAVE_ERROR GetEncryptedPasscodeFingerprint( const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *fingerprintBuf, size_t fingerprintBufSize, size_t & fingerprintLen )
获取与加密密码关联的指纹值。
详细信息 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
GetEncryptedPasscodeKeyId
WEAVE_ERROR GetEncryptedPasscodeKeyId( const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & keyId )
获取用于对加密密码进行加密的密钥的 ID。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
GetEncryptedPasscodeNonce
WEAVE_ERROR GetEncryptedPasscodeNonce( const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & nonce )
获取与加密密码关联的 Nonce 值。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
IsSupportedPasscodeEncryptionConfig
bool IsSupportedPasscodeEncryptionConfig( uint8_t config )
如果提供的密码加密/解密 API 支持提供的密码加密配置,则返回 true。