Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl::Weave::Profile::Sicherheit::Sicherheitscodes

Dieser Namespace enthält alle Schnittstellen in Weave für die Weave-Sicherheitscodebibliothek im Weave-Sicherheitsprofil.

Fazit

Aufzählungen

@278{
  kPasscode_Config1_TEST_ONLY = 0x01,
  kPasscode_Config2 = 0x02,
  kPasscodeConfig1_KeyId = WeaveKeyId::kNone
}
enum
Webart-Konfigurationstypen für die Sicherheitscodes.
@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
Webgrößen von Sicherheitscode-Verschlüsselungen.

Variablen

kPasscodeEncKeyDiversifier = { 0x1A, 0x65, 0x5D, 0x96 }[]
const uint8_t
Diversifizierer, der für die Ableitung des Weave-Sicherheitsschlüssels verwendet wird.
kPasscodeFingerprintKeyDiversifier = { 0xD1, 0xA1, 0xD9, 0x6C }[]
const uint8_t
Diversifizierer, der für die Ableitung des Weave-Sicherheitsschlüssels verwendet wird.

Funktionen

DecryptPasscode(const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *passcodeBuf, size_t passcodeBufSize, size_t & passcodeLen, GroupKeyStoreBase *groupKeyStore)
Entschlüsseln Sie einen Sicherheitscode, der mit dem Nest Passcode-Verschlüsselungsschema verschlüsselt wurde.
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)
Entschlüsseln Sie einen Sicherheitscode, der mit dem Nest Passcode-Verschlüsselungsschema verschlüsselt wurde.
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)
Sicherheitscode mit dem Nest Passcode-Verschlüsselungsschema verschlüsseln.
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)
Sicherheitscode mit dem Nest Passcode-Verschlüsselungsschema verschlüsseln.
GetEncryptedPasscodeConfig(const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t & config)
Rufen Sie den Konfigurationstyp eines verschlüsselten Sicherheitscodes ab.
GetEncryptedPasscodeFingerprint(const uint8_t *encPasscode, size_t encPasscodeLen, uint8_t *fingerprintBuf, size_t fingerprintBufSize, size_t & fingerprintLen)
Ermittle den Fingerabdruckwert, der mit einem verschlüsselten Sicherheitscode verknüpft ist.
GetEncryptedPasscodeKeyId(const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & keyId)
Rufen Sie die ID des Schlüssels ab, mit dem ein verschlüsselter Sicherheitscode verschlüsselt wird.
GetEncryptedPasscodeNonce(const uint8_t *encPasscode, size_t encPasscodeLen, uint32_t & nonce)
Fordern Sie den mit einem verschlüsselten Sicherheitscode verknüpften Nonce-Wert an.
IsSupportedPasscodeEncryptionConfig(uint8_t config)
bool
Gibt „true“ zurück, wenn die Konfiguration für die Sicherheitscode-Verschlüsselung von den Sicherheitscode-Verschlüsselungs-/-Entschlüsselungs-APIs unterstützt wird.

Strebenklemmen

nl::Weave::Profile::Sicherheit::Passcodes::EncryptedPasscodeStruct

Aufzählungen

@278

 @278

Webart-Konfigurationstypen für die Sicherheitscodes.

Attribute
kPasscodeConfig1_KeyId

Dummy-Schlüssel-ID, die für die Konfiguration von Testcode 1 verwendet wird

kPasscode_Config1_TEST_ONLY

Die Konfiguration der Passcode-Verschlüsselung 1 verwendet keine Authentifizierung und geheime Schlüssel für die Authentifizierung und den Fingerabdruck.

Diese Konfiguration SOLLTE zum Testen nur verwendet werden.

kPasscode_Config2

Die Konfiguration der Passcode-Verschlüsselung 2 verwendet die AES-128-ECB-Verschlüsselung mit 8-Byte-HMAC-SHA-1-Integrität und 8-Byte-HMAC-SHA-1-Fingerabdruck.

@279

 @279

Webgrößen von Sicherheitscode-Verschlüsselungen.

Attribute
kPasscodeAuthenticationKeyLen

SHA-1-Schlüssellänge (Passcode-Authentifizierung).

kPasscodeAuthenticatorLen

Länge des Sicherheitscodes für den Sicherheitscode.

kPasscodeEncKeyDiversifierSize

Diversifierer für die Verschlüsselungsschlüssel der Passcode-Anwendung.

kPasscodeEncryptionKeyLen

Die Schlüssellänge der AES-128-Codeverschlüsselung.

kPasscodeFingerprintKeyDiversifierSize

Diversifiergröße des Fingerabdruckschlüssels für den Sicherheitscode.

kPasscodeFingerprintKeyLen

SHA-1-Schlüssellänge des Sicherheitscodes.

kPasscodeFingerprintLen

Länge des Sicherheitscodes für den Fingerabdruck.

kPasscodeMaxEncryptedLen

Maximale Länge des verschlüsselten Sicherheitscodes.

kPasscodeMaxLen

Maximale Dauer des Sicherheitscodes ohne Einschränkungen.

kPasscodePaddedLen

Länge des Sicherheitscodes (aufgefüllt auf die AES-128-Blocklänge).

kPasscodeTotalDerivedKeyLen

Gesamtlänge des Schlüsselcodes (Verschlüsselung und Integrität).

Variablen

kPasscodeEncKeyDiversifier

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

Diversifizierer, der für die Ableitung des Weave-Sicherheitsschlüssels verwendet wird.

Dieser Wert stellt die ersten 4 Byte des SHA-1-Hashes des Nest Passcode-EK und des AK-Ausdrucks dar.

kPasscodeFingerprintKeyDiversifier

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

Diversifizierer, der für die Ableitung des Weave-Sicherheitsschlüssels verwendet wird.

Dieser Wert stellt die ersten 4 Byte des SHA-1-Hashes des Nest Passcode-EK und des AK-Ausdrucks dar.

Funktionen

Entschlüsselungscode

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

Entschlüsseln Sie einen Sicherheitscode, der mit dem Nest Passcode-Verschlüsselungsschema verschlüsselt wurde.

Details
Parameter
[in] encPasscode
Ein Zeiger auf den verschlüsselten Sicherheitscode-Puffer.
[in] encPasscodeLen
Die Länge des verschlüsselten Sicherheitscodes.
[in] passcodeBuf
Ein Zeiger auf einen Puffer, um den entschlüsselten Sicherheitscode zu erhalten.
[in] passcodeBufSize
Die Größe des Puffers, auf den Sicherheitscode Buf verweist.
[out] passcodeLen
Geben Sie die Länge des entschlüsselten Sicherheitscodes an.
[in] groupKeyStore
Ein Zeiger auf den Gruppenschlüsselspeicherobjekt.
Rückgabewerte
WEAVE_NO_ERROR
Erfolg.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Wenn die angegebene Sicherheitscodekonfiguration nicht unterstützt wird.
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
Falls die Authentifizierung per Sicherheitscode fehlschlägt,
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
Gibt an, ob der Fingerabdruck für den Sicherheitscode fehlschlägt.
WEAVE_ERROR_INVALID_KEY_ID
Wenn der angeforderte Schlüssel eine ungültige Schlüssel-ID hat
WEAVE_ERROR_BUFFER_TOO_SMALL
Der angegebene Puffer für den Sicherheitscode ist zu klein.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn der verschlüsselte Sicherheitscode zu kurz oder zu lang ist oder wenn der Mauszeiger auf den Gruppenschlüsselspeicher nicht gesetzt wurde oder der Schlüsselspeicher der Plattform ungültige Schlüsselparameter zurückgibt.
other
Andere plattformspezifische Fehler, die von den Plattformschlüsselspeicher-APIs zurückgegeben werden.

Entschlüsselungscode

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
)

Entschlüsseln Sie einen Sicherheitscode, der mit dem Nest Passcode-Verschlüsselungsschema verschlüsselt wurde.

Details
Parameter
[in] encPasscode
Ein Zeiger auf den verschlüsselten Sicherheitscode-Puffer.
[in] encPasscodeLen
Die Länge des verschlüsselten Sicherheitscodes.
[in] encKey
Ein Zeiger auf den Schlüssel, der zum Verschlüsseln des Sicherheitscodes verwendet werden soll. Die Länge des Schlüssels muss mit dem Verschlüsselungsalgorithmus der angegebenen Konfiguration übereinstimmen.
[in] authKey
Ein Zeiger auf den Schlüssel, der zum Authentifizieren des Sicherheitscodes verwendet werden soll. Die Länge des Schlüssels muss mit dem Authentifizierungsalgorithmus der angegebenen Konfiguration übereinstimmen.
[in] fingerprintKey
Ein Zeiger auf den Schlüssel, der zum Generieren des Sicherheitscode-Fingerabdrucks verwendet werden soll. Die Länge des Schlüssels muss mit dem Fingerabdruckalgorithmus übereinstimmen, der mit der angegebenen Konfiguration verknüpft ist.
[in] passcodeBuf
Ein Zeiger auf einen Puffer, um den entschlüsselten Sicherheitscode zu erhalten.
[in] passcodeBufSize
Die Größe des Puffers, auf den Sicherheitscode Buf verweist.
[out] passcodeLen
Geben Sie die Länge des entschlüsselten Sicherheitscodes an.
Rückgabewerte
WEAVE_NO_ERROR
Erfolg.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Wenn die angegebene Sicherheitscodekonfiguration nicht unterstützt wird.
WEAVE_ERROR_PASSCODE_AUTHENTICATION_FAILED
Falls die Authentifizierung per Sicherheitscode fehlschlägt,
WEAVE_ERROR_PASSCODE_FINGERPRINT_FAILED
Gibt an, ob der Fingerabdruck für den Sicherheitscode fehlschlägt.
WEAVE_ERROR_BUFFER_TOO_SMALL
Der angegebene Puffer für den Sicherheitscode ist zu klein.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn der verschlüsselte Code zu kurz oder zu lang ist

Verschlüsselungscode

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
)

Sicherheitscode mit dem Nest Passcode-Verschlüsselungsschema verschlüsseln.

Details
Parameter
[in] config
Die zu verwendende Konfiguration der Sicherheitscode-Verschlüsselung.
[in] keyId
Die angeforderte ID des Verschlüsselungsschlüssels für den Sicherheitscode.
[in] nonce
Ein eindeutiger Wert, der dem verschlüsselten Sicherheitscode zugewiesen ist.
[in] passcode
Ein Zeiger auf den Sicherheitscode, der verschlüsselt werden soll.
[in] passcodeLen
Die Länge des Sicherheitscodes.
[out] encPasscode
Ein Zeiger auf den Puffer, um den verschlüsselten Sicherheitscode zu speichern.
[in] encPasscodeBufSize
Die Größe des Zwischenspeichers für den verschlüsselten Sicherheitscode.
[out] encPasscodeLen
Die Länge des verschlüsselten Sicherheitscodes.
[in] groupKeyStore
Ein Zeiger auf den Gruppenschlüsselspeicherobjekt.
Rückgabewerte
WEAVE_NO_ERROR
Erfolg.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Wenn die angegebene Sicherheitscodekonfiguration nicht unterstützt wird.
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn angegeben, ist der Ausgabepuffer für den verschlüsselten Sicherheitscode zu klein.
WEAVE_ERROR_INVALID_KEY_ID
Wenn der angeforderte Schlüssel eine ungültige Schlüssel-ID hat
WEAVE_ERROR_INVALID_ARGUMENT
Wenn der angegebene Sicherheitscode zu kurz oder zu lang ist oder wenn der Mauszeiger auf den Gruppenschlüsselspeicher nicht gesetzt wurde oder der Schlüsselspeicher der Plattform ungültige Schlüsselparameter zurückgibt.
other
Andere plattformspezifische Fehler, die von den Plattformschlüsselspeicher-APIs zurückgegeben werden.

Verschlüsselungscode

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
)

Sicherheitscode mit dem Nest Passcode-Verschlüsselungsschema verschlüsseln.

Details
Parameter
[in] config
Die zu verwendende Weave-Sicherheitscodekonfiguration.
[in] keyId
Die angeforderte ID des Verschlüsselungsschlüssels für den Sicherheitscode.
[in] nonce
Das ist ein eindeutiger Wert, der dem Sicherheitscode zugewiesen ist.
[in] passcode
Ein Zeiger auf den Sicherheitscode, der verschlüsselt werden soll.
[in] passcodeLen
Die Länge des Sicherheitscodes.
[in] encKey
Ein Zeiger auf den Schlüssel, der zum Verschlüsseln des Sicherheitscodes verwendet werden soll. Die Länge des Schlüssels muss mit dem Verschlüsselungsalgorithmus der angegebenen Konfiguration übereinstimmen.
[in] authKey
Ein Zeiger auf den Schlüssel, der zum Authentifizieren des Sicherheitscodes verwendet werden soll. Die Länge des Schlüssels muss mit dem Authentifizierungsalgorithmus der angegebenen Konfiguration übereinstimmen.
[in] fingerprintKey
Ein Zeiger auf den Schlüssel, der zum Generieren des Sicherheitscode-Fingerabdrucks verwendet werden soll. Die Länge des Schlüssels muss mit dem Fingerabdruckalgorithmus übereinstimmen, der mit der angegebenen Konfiguration verknüpft ist.
[out] encPasscode
Ein Zeiger auf einen Zwischenspeicher, in dem der verschlüsselte Sicherheitscode gespeichert wird. Dieser Puffer muss mindestens kPasscodeMaxEncryptedLen haben.
[in] encPasscodeBufSize
Die Größe des Zwischenspeichers, auf den encPasscode verweist.
[out] encPasscodeLen
Die Länge des verschlüsselten Sicherheitscodes.
Rückgabewerte
WEAVE_NO_ERROR
Erfolg.
WEAVE_ERROR_UNSUPPORTED_PASSCODE_CONFIG
Wenn die angegebene Sicherheitscodekonfiguration nicht unterstützt wird.
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn angegeben, ist der Ausgabepuffer für den verschlüsselten Sicherheitscode zu klein.
WEAVE_ERROR_INVALID_ARGUMENT
Der angegebene Sicherheitscode ist zu kurz oder zu lang.

GetEncryptedPasscodeConfig

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

Rufen Sie den Konfigurationstyp eines verschlüsselten Sicherheitscodes ab.

Details
Parameter
[in] encPasscode
Bewegen Sie den Mauszeiger auf einen Zwischenspeicher, der den verschlüsselten Sicherheitscode enthält.
[in] encPasscodeLen
Länge des verschlüsselten Sicherheitscodes.
[out] config
Die Verschlüsselungskonfiguration für Weave, die vom verschlüsselten Sicherheitscode verwendet wird.

GetEncryptedPasscodeFingerabdruck

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

Ermittle den Fingerabdruckwert, der mit einem verschlüsselten Sicherheitscode verknüpft ist.

Details
Parameter
[in] encPasscode
Bewegen Sie den Mauszeiger auf einen Zwischenspeicher, der den verschlüsselten Sicherheitscode enthält.
[in] encPasscodeLen
Länge des verschlüsselten Sicherheitscodes.
[in] fingerprintBuf
Ein Zwischenspeicher für den Empfang des Fingerabdruckwerts.
[in] fingerprintBufSize
Die Größe des Puffers, auf den Fingerabdruck verweist.
[out] fingerprintLen
Die Länge des zurückgegebenen Fingerabdruckwerts.

GetEncryptedPasscodeKeyId

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

Rufen Sie die ID des Schlüssels ab, mit dem ein verschlüsselter Sicherheitscode verschlüsselt wird.

Details
Parameter
[in] encPasscode
Bewegen Sie den Mauszeiger auf einen Zwischenspeicher, der den verschlüsselten Sicherheitscode enthält.
[in] encPasscodeLen
Länge des verschlüsselten Sicherheitscodes.
[out] keyId
Die ID des Schlüssels, der zum Verschlüsseln des verschlüsselten Sicherheitscodes verwendet wird.

GetEncryptedPasscodeNonce

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

Fordern Sie den mit einem verschlüsselten Sicherheitscode verknüpften Nonce-Wert an.

Details
Parameter
[in] encPasscode
Bewegen Sie den Mauszeiger auf einen Zwischenspeicher, der den verschlüsselten Sicherheitscode enthält.
[in] encPasscodeLen
Länge des verschlüsselten Sicherheitscodes.
[out] nonce
Der Wert, der mit einem verschlüsselten Sicherheitscode verknüpft ist.

isSupportedPasscodeEncryptionConfig

bool IsSupportedPasscodeEncryptionConfig(
  uint8_t config
)

Gibt „true“ zurück, wenn die Konfiguration für die Sicherheitscode-Verschlüsselung von den Sicherheitscode-Verschlüsselungs-/-Entschlüsselungs-APIs unterstützt wird.