nl::Weave::Profiller::Güvenlik::Şifre kodları

Bu ad alanı, Weave güvenlik profilindeki Weave şifre kodları kitaplığı için Weave içindeki tüm arayüzleri içerir.

Özet

Sıralamalar

@278{
  kPasscode_Config1_TEST_ONLY = 0x01,
  kPasscode_Config2 = 0x02,
  kPasscodeConfig1_KeyId = WeaveKeyId::kNone
}
enum
Örgü şifre kodu yapılandırma türleri.
@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
Ağ şifre kodu şifreleme protokolü parametre boyutları.

Değişkenler

kPasscodeEncKeyDiversifier = { 0x1A, 0x65, 0x5D, 0x96 }[]
const uint8_t
Weave şifre kodu şifreleme anahtarı türetme işlemi için kullanılan anahtar çeşitleyici.
kPasscodeFingerprintKeyDiversifier = { 0xD1, 0xA1, 0xD9, 0x6C }[]
const uint8_t
Weave şifre kodu şifreleme anahtarı türetme işlemi için kullanılan anahtar çeşitleyici.

İşlevler

DecryptPasscode(const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *passcodeBuf, size_t passcodeBufSize, size_t & passcodeLen, GroupKeyStoreBase *groupKeyStore)
Nest Passcode Şifreleme şeması kullanılarak şifrelenmiş bir şifre kodunun şifresini çözün.
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 Şifreleme şeması kullanılarak şifrelenmiş bir şifre kodunun şifresini çözün.
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 Şifre Kodu Şifreleme şemasını kullanarak bir şifre kodu şifreleyin.
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 Şifre Kodu Şifreleme şemasını kullanarak bir şifre kodu şifreleyin.
GetEncryptedPasscodeConfig(const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t & config)
Şifrelenmiş bir şifre kodunun yapılandırma türünü öğrenin.
GetEncryptedPasscodeFingerprint(const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *fingerprintBuf, size_t fingerprintBufSize, size_t & fingerprintLen)
Şifrelenmiş bir şifre koduyla ilişkili parmak izi değerini alın.
GetEncryptedPasscodeKeyId(const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & keyId)
Şifrelenmiş bir şifre kodunu şifrelemek için kullanılan anahtarın kimliğini alın.
GetEncryptedPasscodeNonce(const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & nonce)
Şifrelenmiş bir şifre kodu ile ilişkili tek seferlik değeri alın.
IsSupportedPasscodeEncryptionConfig(uint8_t config)
bool
Sağlanan şifre kodu şifreleme yapılandırması, şifre kodu şifreleme/şifre çözme API'leri tarafından destekleniyorsa true değerini döndürür.

Struct

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

Sıralamalar

@278

 @278

Örgü şifre kodu yapılandırma türleri.

Özellikler
kPasscodeConfig1_KeyId

1. test şifre kodu yapılandırması için sahte anahtar kimliği.

kPasscode_Config1_TEST_ONLY

1. şifre kodu yapılandırması, kimlik doğrulaması ve parmak iziyle kimlik doğrulama için şifreleme ve gizli anahtar kullanmıyor.

Bu yapılandırma yalnızca TEST AMAÇLIDIR.

kPasscode_Config2

2. şifre kodu yapılandırması, 8 bayt HMAC-SHA-1 bütünlüğü ve 8 bayt HMAC-SHA-1 parmak iziyle AES-128-ECB şifrelemesi kullanır.

@279

 @279

Ağ şifre kodu şifreleme protokolü parametre boyutları.

Özellikler
kPasscodeAuthenticationKeyLen

Şifre kodu kimlik doğrulama (SHA-1) anahtarı uzunluğu.

kPasscodeAuthenticatorLen

Şifre kodu kimlik doğrulayıcısı uzunluk.

kPasscodeEncKeyDiversifierSize

Şifre kodu şifreleme uygulama anahtarı ayırıcı boyutu.

kPasscodeEncryptionKeyLen

Şifre kodu şifreleme (AES-128) anahtar uzunluğu.

kPasscodeFingerprintKeyDiversifierSize

Şifre kodu parmak izi anahtarı ayırıcı boyutu.

kPasscodeFingerprintKeyLen

Şifre kodu parmak izi (SHA-1) anahtar uzunluğu.

kPasscodeFingerprintLen

Şifre kodu parmak izi uzunluğu.

kPasscodeMaxEncryptedLen

Maksimum şifreli şifre uzunluğu.

kPasscodeMaxLen

Maksimum şifrelenmemiş şifre uzunluğu.

kPasscodePaddedLen

Şifre kodu uzunluğu (AES-128 blok uzunluğuna doldurulur).

kPasscodeTotalDerivedKeyLen

Şifre kodu toplam (şifreleme ve bütünlük) anahtar uzunluğu.

Değişkenler

kPasscodeEncKeyDiversifier

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

Weave şifre kodu şifreleme anahtarı türetme işlemi için kullanılan anahtar çeşitleyici.

Bu değer, Nest Parola EK ve AK & ifadesinde SHA-1 HASH ifadesinin ilk 4 baytını temsil eder.

kPasscodeFingerprintKeyDiversifier

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

Weave şifre kodu şifreleme anahtarı türetme işlemi için kullanılan anahtar çeşitleyici.

Bu değer, Nest Parola EK ve AK & ifadesinde SHA-1 HASH ifadesinin ilk 4 baytını temsil eder.

İşlevler

Şifre Çözme Kodu

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

Nest Passcode Şifreleme şeması kullanılarak şifrelenmiş bir şifre kodunun şifresini çözün.

Ayrıntılar
Parametreler
[in] encPasscode
Şifrelenmiş şifre kodu arabelleğine bir işaretçi.
[in] encPasscodeLen
Şifrelenmiş şifre kodu uzunluğu.
[in] passcodeBuf
Şifresi çözülmüş şifre kodunu almak için arabellek işaretçisi.
[in] passcodeBufSize
Tampon değerinin şifre kodu Buf tarafından işaret edildiği boyut.
[out] passcodeLen
Şifresi çözülmüş şifre kodunun uzunluğuna ayarlanır.
[in] groupKeyStore
Grup anahtarı deposu nesnesinin işaretçisi.
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Belirtilirse şifre kodu yapılandırması desteklenmez.
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
Şifre kodu kimlik doğrulaması başarısız olursa.
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
Şifre kodu parmak izi kontrolü başarısız olursa.
WEAVE_ERROR_INVALID_KEY_ID
İstenen anahtarda geçersiz anahtar kimliği varsa.
WEAVE_ERROR_BUFFER_TOO_SMALL
Sağlanan şifre kodu arabelleği çok küçükse.
WEAVE_ERROR_INVALID_ARGUMENT
Şifrelenmiş şifre kodu çok kısa veya çok uzunsa ya da grup anahtar deposuna işaretçi sağlanmazsa veya platform anahtar deposu geçersiz anahtar parametreleri döndürürse.
other
Platform anahtar deposu API'leri tarafından döndürülen diğer platforma özgü hatalar.

Şifre Çözme Kodu

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 Şifreleme şeması kullanılarak şifrelenmiş bir şifre kodunun şifresini çözün.

Ayrıntılar
Parametreler
[in] encPasscode
Şifrelenmiş şifre kodu arabelleğine bir işaretçi.
[in] encPasscodeLen
Şifrelenmiş şifre kodu uzunluğu.
[in] encKey
Şifre kodunu şifrelemek için kullanılacak anahtarın işaretçisi. Anahtar uzunluğu, belirtilen yapılandırmayla ilişkili şifreleme algoritmasıyla eşleşmelidir.
[in] authKey
Şifre kodunun kimliğinin doğrulanması için kullanılacak anahtarın işaretçisi. Anahtar uzunluğu, belirtilen yapılandırmayla ilişkili kimlik doğrulama algoritmasıyla eşleşmelidir.
[in] fingerprintKey
Şifre kodu parmak izi oluşturmak için kullanılacak anahtarın işaretçisi. Anahtar uzunluğu, belirtilen yapılandırmayla ilişkili parmak izi algoritmasıyla aynı olmalıdır.
[in] passcodeBuf
Şifresi çözülmüş şifre kodunu almak için arabellek işaretçisi.
[in] passcodeBufSize
Tampon değerinin şifre kodu Buf tarafından işaret edildiği boyut.
[out] passcodeLen
Şifresi çözülmüş şifre kodunun uzunluğuna ayarlanır.
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Belirtilirse şifre kodu yapılandırması desteklenmez.
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
Şifre kodu kimlik doğrulaması başarısız olursa.
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
Şifre kodu parmak izi kontrolü başarısız olursa.
WEAVE_ERROR_BUFFER_TOO_SMALL
Sağlanan şifre kodu arabelleği çok küçükse.
WEAVE_ERROR_INVALID_ARGUMENT
Şifrelenmiş şifre kodu çok kısa veya çok uzunsa.

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 Şifre Kodu Şifreleme şemasını kullanarak bir şifre kodu şifreleyin.

Ayrıntılar
Parametreler
[in] config
Kullanılacak şifre kodu şifreleme yapılandırması.
[in] keyId
İstenen şifre kodu şifreleme anahtarı kimliği.
[in] nonce
Şifrelenmiş şifre koduna atanan benzersiz bir değer.
[in] passcode
Şifrelenecek şifre işaretçisi.
[in] passcodeLen
Şifre kodu uzunluğu.
[out] encPasscode
Şifrelenmiş şifre kodunu depolamak için arabelleğe alma işaretçisi.
[in] encPasscodeBufSize
Şifrelenmiş şifre kodu arabelleğinin arabellek boyutu.
[out] encPasscodeLen
Şifrelenmiş şifre kodu uzunluğu.
[in] groupKeyStore
Grup anahtarı deposu nesnesinin işaretçisi.
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Belirtilirse şifre kodu yapılandırması desteklenmez.
WEAVE_ERROR_BUFFER_TOO_SMALL
Sağlanan çıkış arabelleği, şifrelenmiş şifre kodu için çok küçükse.
WEAVE_ERROR_INVALID_KEY_ID
İstenen anahtarda geçersiz anahtar kimliği varsa.
WEAVE_ERROR_INVALID_ARGUMENT
Sağlanan şifre kodu çok kısa veya çok uzunsa ya da grup anahtar deposuna işaretçi sağlanmazsa veya platform anahtar deposu geçersiz anahtar parametreleri döndürürse.
other
Platform anahtar deposu API'leri tarafından döndürülen diğer platforma özgü hatalar.

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 Şifre Kodu Şifreleme şemasını kullanarak bir şifre kodu şifreleyin.

Ayrıntılar
Parametreler
[in] config
Kullanılacak Weave şifre kodu şifreleme yapılandırması.
[in] keyId
İstenen şifre kodu şifreleme anahtarı kimliği.
[in] nonce
Şifre koduna atanan benzersiz bir değer.
[in] passcode
Şifrelenecek şifre işaretçisi.
[in] passcodeLen
Şifre kodu uzunluğu.
[in] encKey
Şifre kodunu şifrelemek için kullanılacak anahtarın işaretçisi. Anahtar uzunluğu, belirtilen yapılandırmayla ilişkili şifreleme algoritmasıyla eşleşmelidir.
[in] authKey
Şifre kodunun kimliğinin doğrulanması için kullanılacak anahtarın işaretçisi. Anahtar uzunluğu, belirtilen yapılandırmayla ilişkili kimlik doğrulama algoritmasıyla eşleşmelidir.
[in] fingerprintKey
Şifre kodu parmak izi oluşturmak için kullanılacak anahtarın işaretçisi. Anahtar uzunluğu, belirtilen yapılandırmayla ilişkili parmak izi algoritmasıyla aynı olmalıdır.
[out] encPasscode
Şifrelenmiş şifre kodunun depolanacağı arabelleğe alma işaretçisi. Bu arabellek en az kPasscodeMaxEncryptedLen boyutunda olmalıdır.
[in] encPasscodeBufSize
EncPasscode tarafından işaret edilen arabellek boyutu.
[out] encPasscodeLen
Şifrelenmiş şifre kodu uzunluğu.
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Belirtilirse şifre kodu yapılandırması desteklenmez.
WEAVE_ERROR_BUFFER_TOO_SMALL
Sağlanan çıkış arabelleği, şifrelenmiş şifre kodu için çok küçükse.
WEAVE_ERROR_INVALID_ARGUMENT
Sağlanan şifre kodu çok kısa veya çok uzunsa.

GetEncryptedPasscodeConfig

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

Şifrelenmiş bir şifre kodunun yapılandırma türünü öğrenin.

Ayrıntılar
Parametreler
[in] encPasscode
Şifrelenmiş şifre kodunu içeren bir bumper'ın üzerine gelin.
[in] encPasscodeLen
Şifrelenmiş şifre kodunun uzunluğu.
[out] config
Şifrelenmiş şifre kodu tarafından kullanılan Weave şifre kodu şifreleme yapılandırması.

GetEncryptedPasscodeFingerprint

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

Şifrelenmiş bir şifre koduyla ilişkili parmak izi değerini alın.

Ayrıntılar
Parametreler
[in] encPasscode
Şifrelenmiş şifre kodunu içeren bir bumper'ın üzerine gelin.
[in] encPasscodeLen
Şifrelenmiş şifre kodunun uzunluğu.
[in] fingerprintBuf
Parmak izi değerini almak için bir arabellek.
[in] fingerprintBufSize
Parmak izinin işaret ettiği arabellek boyutu.
[out] fingerprintLen
Döndürülen parmak izi değerinin uzunluğu.

GetEncryptedPasscodeKeyId

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

Şifrelenmiş bir şifre kodunu şifrelemek için kullanılan anahtarın kimliğini alın.

Ayrıntılar
Parametreler
[in] encPasscode
Şifrelenmiş şifre kodunu içeren bir bumper'ın üzerine gelin.
[in] encPasscodeLen
Şifrelenmiş şifre kodunun uzunluğu.
[out] keyId
Şifrelenmiş şifre kodunu şifrelemek için kullanılan anahtarın kimliği.

GetEncryptedPasscodeNonce

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

Şifrelenmiş bir şifre kodu ile ilişkili tek seferlik değeri alın.

Ayrıntılar
Parametreler
[in] encPasscode
Şifrelenmiş şifre kodunu içeren bir bumper'ın üzerine gelin.
[in] encPasscodeLen
Şifrelenmiş şifre kodunun uzunluğu.
[out] nonce
Şifrelenmiş bir şifre kodu ile ilişkili tek seferlik değer.

IsSupportPasscodeEncryptionConfig

bool IsSupportedPasscodeEncryptionConfig(
  uint8_t config
)

Sağlanan şifre kodu şifreleme yapılandırması, şifre kodu şifreleme/şifre çözme API'leri tarafından destekleniyorsa true değerini döndürür.