Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

nl :: Dệt :: Hồ sơ :: Bảo vệ:: Mật mã

Không gian tên này bao gồm tất cả các giao diện trong Weave cho thư viện mật mã Weave trong cấu hình bảo mật Weave.

Tóm lược

Bảng kê

@278 {
kPasscode_Config1_TEST_ONLY = 0x01,
kPasscode_Config2 = 0x02,
kPasscodeConfig1_KeyId = WeaveKeyId::kNone
}
enum
Dệt các loại cấu hình mã hóa mật mã.
@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
Tạo kích thước tham số giao thức mã hóa mật mã.

Biến

kPasscodeEncKeyDiversifier = { 0x1A, 0x65, 0x5D, 0x96 }[]
const uint8_t
Trình đa dạng hóa khóa được sử dụng để lấy khóa mã hóa mật mã Weave.
kPasscodeFingerprintKeyDiversifier = { 0xD1, 0xA1, 0xD9, 0x6C }[]
const uint8_t
Trình đa dạng hóa khóa được sử dụng để lấy khóa mã hóa mật mã Weave.

Chức năng

DecryptPasscode (const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *passcodeBuf, size_t passcodeBufSize, size_t & passcodeLen, GroupKeyStoreBase *groupKeyStore)
Giải mã mật mã đã được mã hóa bằng lược đồ Mã hóa mật mã 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)
Giải mã mật mã đã được mã hóa bằng lược đồ Mã hóa mật mã 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)
Mã hóa mật mã bằng lược đồ Mã hóa mật mã 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)
Mã hóa mật mã bằng lược đồ Mã hóa mật mã Nest.
GetEncryptedPasscodeConfig (const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t & config)
Nhận loại cấu hình của mật mã được mã hóa.
GetEncryptedPasscodeFingerprint (const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *fingerprintBuf, size_t fingerprintBufSize, size_t & fingerprintLen)
Nhận giá trị vân tay được liên kết với mật mã được mã hóa.
GetEncryptedPasscodeKeyId (const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & keyId)
Nhận id của khóa được sử dụng để mã hóa mật mã đã mã hóa.
GetEncryptedPasscodeNonce (const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & nonce)
Nhận giá trị nonce được liên kết với mật mã được mã hóa.
IsSupportedPasscodeEncryptionConfig (uint8_t config)
bool
Trả về true nếu cấu hình mã hóa mật mã được cung cấp được hỗ trợ bởi các API giải mã / mã hóa mật mã.

Cấu trúc

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

Bảng kê

@ 278

 @278

Dệt các loại cấu hình mã hóa mật mã.

Tính chất
kPasscodeConfig1_KeyId

Id khóa giả được sử dụng cho cấu hình mật mã kiểm tra # 1.

kPasscode_Config1_TEST_ONLY

Cấu hình mã hóa mật mã # 1 không sử dụng mã hóa và khóa bí mật để xác thực và mật mã vân tay.

Cấu hình này chỉ NÊN được sử dụng cho mục đích KIỂM TRA.

kPasscode_Config2

Cấu hình mã hóa mật mã # 2 đang sử dụng mã hóa AES-128-ECB với tính toàn vẹn 8 byte HMAC-SHA-1 và vân tay HMAC-SHA-1 8 byte.

@ 279

 @279

Tạo kích thước tham số giao thức mã hóa mật mã.

Tính chất
kPasscodeAuthenticationKeyLen

Độ dài khóa xác thực mật mã (SHA-1).

kPasscodeAuthenticatorLen

Độ dài trình xác thực mật mã.

kPasscodeEncKeyDiversifierSize

Kích thước bộ đa dạng hóa khóa ứng dụng mã hóa mật mã.

kPasscodeEncryptionKeyLen

Độ dài khóa mã hóa mật mã (AES-128).

kPasscodeFingerprintKeyDiversifierSize

Mật mã khóa vân tay đa dạng kích thước.

kPasscodeFingerprintKeyLen

Độ dài mã khóa vân tay mật mã (SHA-1).

kPasscodeFingerprintLen

Độ dài dấu vân tay mật mã.

kPasscodeMaxEncryptedLen

Độ dài mật mã được mã hóa tối đa.

kPasscodeMaxLen

Độ dài mật mã chưa được giải mã tối đa.

kPasscodePaddedLen

Độ dài mật mã (được đệm vào độ dài khối AES-128).

kPasscodeTotalDerivedKeyLen

Tổng độ dài khóa (mã hóa và toàn vẹn) của mật mã.

Biến

kPasscodeEncKeyDiversifier

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

Trình đa dạng hóa khóa được sử dụng để lấy khóa mã hóa mật mã Weave.

Giá trị này đại diện cho 4 byte đầu tiên của SHA-1 HASH của cụm từ "Nest Passcode EK and AK".

kPasscodeFingerprintKeyDiversifier

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

Trình đa dạng hóa khóa được sử dụng để lấy khóa mã hóa mật mã Weave.

Giá trị này đại diện cho 4 byte đầu tiên của SHA-1 HASH của cụm từ "Nest Passcode EK and AK".

Chức năng

DecryptPasscode

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

Giải mã mật mã đã được mã hóa bằng lược đồ Mã hóa mật mã Nest.

Chi tiết
Thông số
[in] encPasscode
Một con trỏ đến bộ đệm mật mã được mã hóa.
[in] encPasscodeLen
Độ dài mật mã được mã hóa.
[in] passcodeBuf
Một con trỏ tới bộ đệm để nhận mật mã đã giải mã.
[in] passcodeBufSize
Kích thước của bộ đệm được chỉ vào bởi passcodeBuf.
[out] passcodeLen
Đặt thành độ dài của mật mã đã giải mã.
[in] groupKeyStore
Một con trỏ đến đối tượng lưu trữ khóa nhóm.
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Nếu cấu hình mật mã được chỉ định không được hỗ trợ.
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
Nếu xác thực mật mã không thành công.
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
Nếu kiểm tra dấu vân tay mật mã không thành công.
WEAVE_ERROR_INVALID_KEY_ID
Nếu khóa được yêu cầu có Id khóa không hợp lệ.
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu bộ đệm mật mã được cung cấp quá nhỏ.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu mật mã được mã hóa quá ngắn hoặc quá dài; Hoặc nếu con trỏ đến kho khóa nhóm không được cung cấp hoặc kho khóa nền tảng trả về các tham số khóa không hợp lệ.
other
Các lỗi khác dành riêng cho nền tảng do API cửa hàng khóa nền tảng trả về.

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
)

Giải mã mật mã đã được mã hóa bằng lược đồ Mã hóa mật mã Nest.

Chi tiết
Thông số
[in] encPasscode
Một con trỏ đến bộ đệm mật mã được mã hóa.
[in] encPasscodeLen
Độ dài mật mã được mã hóa.
[in] encKey
Một con trỏ đến khóa được sử dụng để mã hóa mật mã. Độ dài của khóa phải phù hợp với thuật toán mã hóa được liên kết với cấu hình được chỉ định.
[in] authKey
Một con trỏ đến khóa được sử dụng để xác thực mật mã. Độ dài của khóa phải phù hợp với thuật toán xác thực được liên kết với cấu hình được chỉ định.
[in] fingerprintKey
Một con trỏ đến khóa được sử dụng để tạo vân tay mật mã. Độ dài của khóa phải phù hợp với thuật toán vân tay được liên kết với cấu hình được chỉ định.
[in] passcodeBuf
Một con trỏ tới bộ đệm để nhận mật mã đã giải mã.
[in] passcodeBufSize
Kích thước của bộ đệm được chỉ vào bởi passcodeBuf.
[out] passcodeLen
Đặt thành độ dài của mật mã đã giải mã.
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Nếu cấu hình mật mã được chỉ định không được hỗ trợ.
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
Nếu xác thực mật mã không thành công.
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
Nếu kiểm tra dấu vân tay mật mã không thành công.
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu bộ đệm mật mã được cung cấp quá nhỏ.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu mật mã được mã hóa quá ngắn hoặc quá dài.

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
)

Mã hóa mật mã bằng lược đồ Mã hóa mật mã Nest.

Chi tiết
Thông số
[in] config
Cấu hình mã hóa mật mã sẽ được sử dụng.
[in] keyId
Id khóa mã hóa mật mã được yêu cầu.
[in] nonce
Một giá trị duy nhất được gán cho mật mã đã mã hóa.
[in] passcode
Một con trỏ đến mật mã được mã hóa.
[in] passcodeLen
Độ dài mật mã.
[out] encPasscode
Một con trỏ tới bộ đệm để lưu trữ mật mã được mã hóa.
[in] encPasscodeBufSize
Kích thước của bộ đệm để lưu trữ mật mã được mã hóa.
[out] encPasscodeLen
Độ dài mật mã được mã hóa.
[in] groupKeyStore
Một con trỏ đến đối tượng lưu trữ khóa nhóm.
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Nếu cấu hình mật mã được chỉ định không được hỗ trợ.
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu bộ đệm đầu ra được cung cấp quá nhỏ cho mật mã được mã hóa.
WEAVE_ERROR_INVALID_KEY_ID
Nếu khóa được yêu cầu có Id khóa không hợp lệ.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu mật mã được cung cấp quá ngắn hoặc quá dài; Hoặc nếu con trỏ đến kho khóa nhóm không được cung cấp hoặc kho khóa nền tảng trả về các tham số khóa không hợp lệ.
other
Các lỗi khác dành riêng cho nền tảng do API cửa hàng khóa nền tảng trả về.

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
)

Mã hóa mật mã bằng cách sử dụng lược đồ Mã hóa mật mã Nest.

Chi tiết
Thông số
[in] config
Cấu hình mã hóa mật mã Weave sẽ được sử dụng.
[in] keyId
Id khóa mã hóa mật mã được yêu cầu.
[in] nonce
Một giá trị duy nhất được chỉ định cho mật mã.
[in] passcode
Một con trỏ đến mật mã được mã hóa.
[in] passcodeLen
Độ dài mật mã.
[in] encKey
Một con trỏ đến khóa được sử dụng để mã hóa mật mã. Độ dài của khóa phải phù hợp với thuật toán mã hóa được liên kết với cấu hình được chỉ định.
[in] authKey
Một con trỏ đến khóa được sử dụng để xác thực mật mã. Độ dài của khóa phải phù hợp với thuật toán xác thực được liên kết với cấu hình được chỉ định.
[in] fingerprintKey
Một con trỏ đến khóa được sử dụng để tạo vân tay mật mã. Độ dài của khóa phải phù hợp với thuật toán vân tay được liên kết với cấu hình được chỉ định.
[out] encPasscode
Một con trỏ tới bộ đệm mà mật mã đã mã hóa sẽ được lưu trữ. Bộ đệm này phải có kích thước ít nhất là kPasscodeMaxEncryptedLen.
[in] encPasscodeBufSize
Kích thước của bộ đệm được trỏ tới bởi encPasscode.
[out] encPasscodeLen
Độ dài mật mã được mã hóa.
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Nếu cấu hình mật mã được chỉ định không được hỗ trợ.
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu bộ đệm đầu ra được cung cấp quá nhỏ cho mật mã được mã hóa.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu mật mã được cung cấp quá ngắn hoặc quá dài.

GetEncryptedPasscodeConfig

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

Nhận loại cấu hình của mật mã được mã hóa.

Chi tiết
Thông số
[in] encPasscode
Trỏ tới bộ đệm chứa mật mã đã mã hóa.
[in] encPasscodeLen
Độ dài của mật mã đã mã hóa.
[out] config
Cấu hình mã hóa mật mã Weave được mật mã đã mã hóa sử dụng.

GetEncryptedPasscodeFingerprint

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

Nhận giá trị vân tay được liên kết với mật mã được mã hóa.

Chi tiết
Thông số
[in] encPasscode
Trỏ tới bộ đệm chứa mật mã đã mã hóa.
[in] encPasscodeLen
Độ dài của mật mã đã mã hóa.
[in] fingerprintBuf
Bộ đệm để nhận giá trị vân tay.
[in] fingerprintBufSize
Kích thước của bộ đệm được chỉ bởi FingerBuf.
[out] fingerprintLen
Độ dài của giá trị vân tay được trả về.

GetEncryptedPasscodeKeyId

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

Lấy id của khóa được sử dụng để mã hóa mật mã đã mã hóa.

Chi tiết
Thông số
[in] encPasscode
Trỏ tới bộ đệm chứa mật mã đã mã hóa.
[in] encPasscodeLen
Độ dài của mật mã đã mã hóa.
[out] keyId
Id của khóa được sử dụng để mã hóa mật mã đã mã hóa.

GetEncryptedPasscodeNonce

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

Nhận giá trị nonce được liên kết với mật mã được mã hóa.

Chi tiết
Thông số
[in] encPasscode
Trỏ tới bộ đệm chứa mật mã đã mã hóa.
[in] encPasscodeLen
Độ dài của mật mã đã mã hóa.
[out] nonce
Giá trị nonce được liên kết với mật mã được mã hóa.

IsSupportedPasscodeEncryptionConfig

bool IsSupportedPasscodeEncryptionConfig(
  uint8_t config
)

Trả về true nếu cấu hình mã hóa mật mã được cung cấp được hỗ trợ bởi các API giải mã / mã hóa mật mã.