Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

nl::Weave::Profiles::Security::Passes

この名前空間には、Weave セキュリティ プロファイル内の Weave パスコード ライブラリ用の Weave 内のすべてのインターフェースが含まれます。

まとめ

列挙型

@278{
  kPasscode_Config1_TEST_ONLY = 0x01,
  kPasscode_Config2 = 0x02,
  kPasscodeConfig1_KeyId = WeaveKeyId::kNone
}
列挙型
Weveve パスコード暗号化構成タイプ。
@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)
}
列挙型
Weave パスコード暗号化プロトコルのパラメータ サイズ。

Variables

kPasscodeEncKeyDiversifier = { 0x1A, 0x65, 0x5D, 0x96 }[]
const uint8_t
Weave パスコード暗号化鍵の導出に使用される鍵の多様性。
kPasscodeFingerprintKeyDiversifier = { 0xD1, 0xA1, 0xD9, 0x6C }[]
const uint8_t
Weave パスコード暗号化鍵の導出に使用される鍵の多様性。

Functions

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)
Google 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)
Google 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)
暗号化されたパスコードに関連付けられたノンスを取得します。
IsSupportedPasscodeEncryptionConfig(uint8_t config)
bool
指定されたパスコード暗号化構成がパスコード暗号化/復号 API でサポートされている場合は、true を返します。

構造体

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

列挙型

278

 @278

Weveve パスコード暗号化構成タイプ。

Properties
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 パスコード暗号化プロトコルのパラメータ サイズ。

Properties
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 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 バイトを表します。

Functions

復号化パスコード

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

Nest Passcode 暗号化スキームを使用して、暗号化されたパスコードを復号します。

詳細
パラメータ
[in] encPasscode
暗号化されたパスコード バッファへのポインタ。
[in] encPasscodeLen
暗号化されたパスコードの長さ。
[in] passcodeBuf
復号されたパスコードを受け取るバッファへのポインタ。
[in] passcodeBufSize
passcodeBuf が指しているバッファのサイズ。
[out] passcodeLen
復号されたパスコードの長さを設定します。
[in] groupKeyStore
グループ キーストア オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
成功
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
指定されたパスコードの構成がサポートされていない場合。
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
パスコードで認証に失敗した場合。
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
パスコードのフィンガープリント チェックで不合格だった場合。
WEAVE_ERROR_INVALID_KEY_ID
リクエストされたキーに無効なキー ID がある場合。
WEAVE_ERROR_BUFFER_TOO_SMALL
提供されたパスコード バッファが小さすぎる場合。
WEAVE_ERROR_INVALID_ARGUMENT
暗号化されたパスコードが短すぎるか長すぎる場合、またはグループ キーストアへのポインタが指定されていない場合や、プラットフォーム キーストアが無効なキー パラメータを返した場合。
other
プラットフォーム キーストア API から返される、その他のプラットフォーム固有のエラー。

復号化パスコード

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 暗号化スキームを使用して、暗号化されたパスコードを復号します。

詳細
パラメータ
[in] encPasscode
暗号化されたパスコード バッファへのポインタ。
[in] encPasscodeLen
暗号化されたパスコードの長さ。
[in] encKey
パスコードの暗号化に使用する鍵へのポインタ。鍵の長さは、指定された構成に関連付けられた暗号化アルゴリズムと一致する必要があります。
[in] authKey
パスコードの認証に使用するキーへのポインタ。キーの長さは、指定した構成に関連付けられた認証アルゴリズムと一致している必要があります。
[in] fingerprintKey
パスコードのフィンガープリントの生成に使用するキーへのポインタ。キーの長さは、指定した設定に関連付けられたフィンガープリント アルゴリズムと一致している必要があります。
[in] passcodeBuf
復号されたパスコードを受け取るバッファへのポインタ。
[in] passcodeBufSize
passcodeBuf が指しているバッファのサイズ。
[out] passcodeLen
復号されたパスコードの長さを設定します。
戻り値
WEAVE_NO_ERROR
成功
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
指定されたパスコードの構成がサポートされていない場合。
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
パスコードで認証に失敗した場合。
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
パスコードのフィンガープリント チェックで不合格だった場合。
WEAVE_ERROR_BUFFER_TOO_SMALL
提供されたパスコード バッファが小さすぎる場合。
WEAVE_ERROR_INVALID_ARGUMENT
暗号化されたパスコードが短すぎる、または長すぎる場合。

パスコードを暗号化

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
)

Google Nest Passcode 暗号化方式を使用して、パスコードを暗号化します。

詳細
パラメータ
[in] config
使用するパスコードの暗号化構成。
[in] keyId
リクエストされたパスコード暗号鍵 ID。
[in] nonce
暗号化されたパスコードに割り当てられた一意の値。
[in] passcode
暗号化するパスコードへのポインタ。
[in] passcodeLen
パスコードの長さ。
[out] encPasscode
暗号化されたパスコードを保存するためのバッファへのポインタ。
[in] encPasscodeBufSize
暗号化されたパスコード ストレージのバッファのサイズ。
[out] encPasscodeLen
暗号化されたパスコードの長さ。
[in] groupKeyStore
グループ キーストア オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
成功
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
指定されたパスコードの構成がサポートされていない場合。
WEAVE_ERROR_BUFFER_TOO_SMALL
指定された出力バッファが暗号化されたパスコードには小さすぎる場合。
WEAVE_ERROR_INVALID_KEY_ID
リクエストされたキーに無効なキー ID がある場合。
WEAVE_ERROR_INVALID_ARGUMENT
指定されたパスコードが短すぎるか長すぎる場合、またはグループ キーストアへのポインタが指定されていない場合や、プラットフォーム キーストアが無効なキー パラメータを返した場合。
other
プラットフォーム キーストア API から返される、その他のプラットフォーム固有のエラー。

パスコードを暗号化

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
)

Google Nest Passcode 暗号化方式を使用して、パスコードを暗号化します。

詳細
パラメータ
[in] config
使用する Weave パスコード暗号化構成。
[in] keyId
リクエストされたパスコード暗号鍵 ID。
[in] nonce
パスコードに割り当てられた一意の値。
[in] passcode
暗号化するパスコードへのポインタ。
[in] passcodeLen
パスコードの長さ。
[in] encKey
パスコードの暗号化に使用する鍵へのポインタ。鍵の長さは、指定された構成に関連付けられた暗号化アルゴリズムと一致する必要があります。
[in] authKey
パスコードの認証に使用するキーへのポインタ。キーの長さは、指定した構成に関連付けられた認証アルゴリズムと一致している必要があります。
[in] fingerprintKey
パスコードのフィンガープリントの生成に使用するキーへのポインタ。キーの長さは、指定した設定に関連付けられたフィンガープリント アルゴリズムと一致している必要があります。
[out] encPasscode
暗号化されたパスコードが保存されるバッファへのポインタ。このバッファのサイズは kPasscodeMaxEncryptedLen 以上にしてください。
[in] encPasscodeBufSize
encPasscode が指すバッファのサイズ。
[out] encPasscodeLen
暗号化されたパスコードの長さ。
戻り値
WEAVE_NO_ERROR
成功
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
指定されたパスコードの構成がサポートされていない場合。
WEAVE_ERROR_BUFFER_TOO_SMALL
指定された出力バッファが暗号化されたパスコードには小さすぎる場合。
WEAVE_ERROR_INVALID_ARGUMENT
提供されたパスコードが短すぎるか長すぎます。

GetEncryptedPasscodeConfig

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

暗号化されたパスコードの構成タイプを取得します。

詳細
パラメータ
[in] encPasscode
暗号化されたパスコードを含むバッファへのポインタ。
[in] encPasscodeLen
暗号化されたパスコードの長さ。
[out] config
暗号化されたパスコードで使用される Weave パスコード暗号化構成。

GetEncryptedPasscodeFingerprint

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

暗号化されたパスコードに関連付けられている指紋の値を取得します。

詳細
パラメータ
[in] encPasscode
暗号化されたパスコードを含むバッファへのポインタ。
[in] encPasscodeLen
暗号化されたパスコードの長さ。
[in] fingerprintBuf
フィンガープリント値を受け取るバッファ。
[in] fingerprintBufSize
フィンガープリント バッファが指しているバッファのサイズ
[out] fingerprintLen
返されるフィンガープリント値の長さ。

GetEncryptedPasscodeKeyId

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

暗号化されたパスコードの暗号化に使用された鍵の ID を取得します。

詳細
パラメータ
[in] encPasscode
暗号化されたパスコードを含むバッファへのポインタ。
[in] encPasscodeLen
暗号化されたパスコードの長さ。
[out] keyId
暗号化されたパスコードの暗号化に使用された鍵の ID。

GetEncryptedPasscodeNonce

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

暗号化されたパスコードに関連付けられたノンスを取得します。

詳細
パラメータ
[in] encPasscode
暗号化されたパスコードを含むバッファへのポインタ。
[in] encPasscodeLen
暗号化されたパスコードの長さ。
[out] nonce
暗号化されたパスコードに関連付けられたノンス値。

IsSupportedPasscodeEncryptionConfig

bool IsSupportedPasscodeEncryptionConfig(
  uint8_t config
)

指定されたパスコード暗号化構成がパスコード暗号化/復号 API でサポートされている場合は、true を返します。