Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기
컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

nl::Weave::프로필:보안:비밀번호

이 네임스페이스에는 Weave 보안 프로필 내의 Weave 비밀번호 라이브러리용 Weave 내의 모든 인터페이스가 포함되어 있습니다.

요약

열거

@278{
  kPasscode_Config1_TEST_ONLY = 0x01,
  kPasscode_Config2 = 0x02,
  kPasscodeConfig1_KeyId = WeaveKeyId::kNone
}
enum
비밀번호 암호화 구성 유형입니다.
@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
Weave 비밀번호 암호화 프로토콜 매개변수 크기입니다.

변수

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)
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::Weave::프로필::보안::비밀번호::EncryptedPasscodeStruct

열거

@278

 @278

비밀번호 암호화 구성 유형입니다.

속성
kPasscodeConfig1_KeyId

테스트 비밀번호 구성 #1에 사용되는 더미 키 ID입니다.

kPasscode_Config1_TEST_ONLY

비밀번호 암호화 구성 #1은 암호화 및 지문 인증을 위해 암호화 및 보안 비밀 키를 사용하지 않습니다.

이 구성은 테스트용으로만 사용해야 합니다(SHOULD).

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바이트를 나타냅니다.

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
passwordBuf가 가리키는 버퍼의 크기입니다.
[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
passwordBuf가 가리키는 버퍼의 크기입니다.
[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
)

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
)

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
emojiBuf가 가리키는 버퍼의 크기입니다.
[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
)

암호화된 비밀번호와 연결된 nonce 값을 가져옵니다.

세부정보
매개변수
[in] encPasscode
암호화된 비밀번호가 포함된 버퍼에 대한 포인터입니다.
[in] encPasscodeLen
암호화된 비밀번호의 길이입니다.
[out] nonce
암호화된 비밀번호와 연결된 nonce 값입니다.

IsSupportedPasscodeEncryptionConfig

bool IsSupportedPasscodeEncryptionConfig(
  uint8_t config
)

비밀번호 암호화/복호화 API에서 제공된 비밀번호 암호화 구성을 지원하는 경우 true를 반환합니다.