nl:: Weave:: Profiles:: Security:: Passcodes
這個命名空間包含在 Weave 中 Weave 安全性設定檔內所有的 Weave 密碼程式庫介面。
摘要
列舉 |
|
---|---|
@278{
|
列舉 密碼加密設定類型。 |
@279{
|
列舉 密碼加密通訊協定參數大小。 |
Variables |
|
---|---|
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 密碼加密配置加密的密碼解密。
|
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 密碼加密配置加密的密碼解密。
|
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 密碼加密配置加密密碼。
|
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 密碼加密配置加密密碼。
|
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 採用 AES-128-ECB 加密技術,具備 8 位元組 HMAC-SHA-1 完整性和 8 位元組 HMAC-SHA-1 指紋。 |
@279
@279
密碼加密通訊協定參數大小。
屬性 | |
---|---|
kPasscodeAuthenticationKeyLen
|
密碼驗證 (SHA-1) 金鑰長度, |
kPasscodeAuthenticatorLen
|
密碼驗證器長度。 |
kPasscodeEncKeyDiversifierSize
|
密碼加密應用程式金鑰多樣性大小。 |
kPasscodeEncryptionKeyLen
|
密碼加密 (AES-128) 金鑰長度。 |
kPasscodeFingerprintKeyDiversifierSize
|
密碼指紋金鑰多樣器大小。 |
kPasscodeFingerprintKeyLen
|
密碼指紋 (SHA-1) 金鑰長度。 |
kPasscodeFingerprintLen
|
密碼指紋長度。 |
kPasscodeMaxEncryptedLen
|
加密密碼的長度上限。 |
kPasscodeMaxLen
|
未加密密碼長度的上限。 |
kPasscodePaddedLen
|
密碼長度 (填至 AES-128 區塊長度)。 |
kPasscodeTotalDerivedKeyLen
|
密碼總長度 (加密和完整性) 金鑰長度。 |
Variables
kPasscodeEncKeyDiversifier
const uint8_t kPasscodeEncKeyDiversifier[] = { 0x1A, 0x65, 0x5D, 0x96 }
用於 Weave 密碼加密金鑰產生的金鑰簡化器。
這個值代表「Nest 密碼 EK 和 AK」詞組中 SHA-1 HASH 的前 4 個位元組。
kPasscodeFingerprintKeyDiversifier
const uint8_t kPasscodeFingerprintKeyDiversifier[] = { 0xD1, 0xA1, 0xD9, 0x6C }
用於 Weave 密碼加密金鑰產生的金鑰簡化器。
這個值代表「Nest 密碼 EK 和 AK」詞組中 SHA-1 HASH 的前 4 個位元組。
函式
DecryptPasscode
WEAVE_ERROR DecryptPasscode( const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *passcodeBuf, size_t passcodeBufSize, size_t & passcodeLen, GroupKeyStoreBase *groupKeyStore )
將使用 Nest 密碼加密配置加密的密碼解密。
詳細說明 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||||||
傳回值 |
|
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 )
將使用 Nest 密碼加密配置加密的密碼解密。
詳細說明 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||||||
傳回值 |
|
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 )
使用 Nest 密碼加密配置加密密碼。
詳細說明 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||||||||
傳回值 |
|
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 )
使用 Nest 密碼加密配置加密密碼。
詳細說明 | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||||||||||||
傳回值 |
|
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。