Kryptowährung – Plattform

Dieses Modul enthält die Plattformabstraktion für Crypto.

Zusammenfassung

Aufzählungen

anonymous enum{
  OT_CRYPTO_KEY_USAGE_NONE = 0,
  OT_CRYPTO_KEY_USAGE_EXPORT = 1 << 0,
  OT_CRYPTO_KEY_USAGE_ENCRYPT = 1 << 1,
  OT_CRYPTO_KEY_USAGE_DECRYPT = 1 << 2,
  OT_CRYPTO_KEY_USAGE_SIGN_HASH = 1 << 3
}
enum
Diese Aufzählung definiert die wichtigsten Nutzungs-Flags.
otCryptoKeyAlgorithm{
  OT_CRYPTO_KEY_ALG_VENDOR,
  OT_CRYPTO_KEY_ALG_AES_ECB,
  OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
enum
Diese Aufzählung definiert die wichtigsten Algorithmen.
otCryptoKeyStorage{
  OT_CRYPTO_KEY_STORAGE_VOLATILE,
  OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
enum
Diese Aufzählung definiert die wichtigsten Speichertypen.
otCryptoKeyType{
  OT_CRYPTO_KEY_TYPE_RAW,
  OT_CRYPTO_KEY_TYPE_AES,
  OT_CRYPTO_KEY_TYPE_HMAC
}
enum
Diese Aufzählung definiert die Schlüsseltypen.

Typdef.

otCryptoContext Typdef
otCryptoKey Typdef
struct otCryptoKey
otCryptoKeyRef Typdef
uint32_t
Dieser Datentyp stellt die Schlüsselreferenz dar.

Funktionen

otPlatCryptoAesEncrypt(otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Die angegebenen Daten verschlüsseln.
otPlatCryptoAesFree(otCryptoContext *aContext)
AES-Kontext freigeben.
otPlatCryptoAesInit(otCryptoContext *aContext)
AES-Vorgang initialisieren.
otPlatCryptoAesSetKey(otCryptoContext *aContext, const otCryptoKey *aKey)
Legen Sie den Schlüssel für den AES-Vorgang fest.
otPlatCryptoDestroyKey(otCryptoKeyRef aKeyRef)
Einen in PSA-ITS gespeicherten Schlüssel löschen
otPlatCryptoExportKey(otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
Einen in PSA-ITS gespeicherten Schlüssel exportieren
otPlatCryptoHasKey(otCryptoKeyRef aKeyRef)
bool
Prüfen Sie, ob der übergebene Schlüsselverweis in der PSA-ITS mit einem Schlüssel verknüpft ist.
otPlatCryptoHkdfDeinit(otCryptoContext *aContext)
Deaktivieren Sie den HKDF-Kontext.
otPlatCryptoHkdfExpand(otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
Führe den Schritt „HKDF-Maximieren“ aus.
otPlatCryptoHkdfExtract(otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
Führen Sie den Schritt „HKDF Extract“ aus.
otPlatCryptoHkdfInit(otCryptoContext *aContext)
HKDF-Kontext initialisieren
otPlatCryptoHmacSha256Deinit(otCryptoContext *aContext)
Initialisieren Sie den HMAC-Vorgang.
otPlatCryptoHmacSha256Finish(otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
Führen Sie den HMAC-Vorgang aus.
otPlatCryptoHmacSha256Init(otCryptoContext *aContext)
HMAC-Vorgang initialisieren.
otPlatCryptoHmacSha256Start(otCryptoContext *aContext, const otCryptoKey *aKey)
HMAC-Vorgang starten.
otPlatCryptoHmacSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Aktualisieren Sie den HMAC-Vorgang mit einer neuen Eingabe.
otPlatCryptoImportKey(otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
Einen Schlüssel in PSA-ITS importieren.
otPlatCryptoInit(void)
void
Initialisieren Sie das Crypto-Modul.
otPlatCryptoRandomDeinit(void)
void
DeInitialisieren Sie den kryptografisch kryptografisch sicheren Pseudogenerator (CSPRNG).
otPlatCryptoRandomGet(uint8_t *aBuffer, uint16_t aSize)
Füllt einen bestimmten Puffer mit kryptografisch sicheren zufälligen Byte aus.
otPlatCryptoRandomInit(void)
void
Initialisiert einen kryptografisch sicheren Pseudozahlengenerator (CSPRNG).
otPlatCryptoSha256Deinit(otCryptoContext *aContext)
Deaktivieren Sie den SHA-256-Vorgang.
otPlatCryptoSha256Finish(otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
SHA-256-Vorgang abschließen.
otPlatCryptoSha256Init(otCryptoContext *aContext)
SHA-256-Initialisieren.
otPlatCryptoSha256Start(otCryptoContext *aContext)
SHA-256-Vorgang starten.
otPlatCryptoSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
SHA-256-Vorgang mit neuer Eingabe aktualisieren.

Strebenklemmen

otCryptoContext

In dieser Struktur wird das Kontextobjekt für Plattform-APIs gespeichert.

OTCryptoKey

Diese Struktur stellt das für Crypto-Vorgänge erforderliche Schlüsselmaterial dar.

Aufzählungen

Anonyme Aufzählung

 anonymous enum

Diese Aufzählung definiert die wichtigsten Nutzungs-Flags.

Attribute
OT_CRYPTO_KEY_USAGE_DECRYPT

Schlüsselverwendung: AES ECB.

OT_CRYPTO_KEY_USAGE_ENCRYPT

Schlüsselverwendung: Verschlüsselung (vom Anbieter definiert).

OT_CRYPTO_KEY_USAGE_EXPORT

Schlüsselverwendung: Der Schlüssel kann exportiert werden.

OT_CRYPTO_KEY_USAGE_NONE

Schlüsselverwendung: Die Schlüsselverwendung ist leer.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

Schlüsselverwendung: HMAC SHA-256.

OTCryptoKeyAlgorithmus

 otCryptoKeyAlgorithm

Diese Aufzählung definiert die wichtigsten Algorithmen.

Attribute
OT_CRYPTO_KEY_ALG_AES_ECB

Schlüsselalgorithmus: AES ECB.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

Schlüsselalgorithmus: HMAC-SHA-256

OT_CRYPTO_KEY_ALG_VENDOR

Schlüsselalgorithmus: Anbieterdefiniert.

otCryptoKeyStorage

 otCryptoKeyStorage

Diese Aufzählung definiert die wichtigsten Speichertypen.

Attribute
OT_CRYPTO_KEY_STORAGE_PERSISTENT

Schlüsselpersistenz: Schlüssel ist dauerhaft.

OT_CRYPTO_KEY_STORAGE_VOLATILE

Schlüsselpersistenz: Der Schlüssel ist flüchtig.

OTCryptoKeyType

 otCryptoKeyType

Diese Aufzählung definiert die Schlüsseltypen.

Attribute
OT_CRYPTO_KEY_TYPE_AES

Schlüsseltyp: AES.

OT_CRYPTO_KEY_TYPE_HMAC

Schlüsseltyp: HMAC.

OT_CRYPTO_KEY_TYPE_RAW

Schlüsseltyp: Rohdaten

Typdef.

otCryptoContext

struct otCryptoContext otCryptoContext

OTCryptoKey

struct otCryptoKey otCryptoKey

OTCryptoKey

uint32_t otCryptoKeyRef

Dieser Datentyp stellt die Schlüsselreferenz dar.

Funktionen

otPlatCryptoAesEncrypt

otError otPlatCryptoAesEncrypt(
  otCryptoContext *aContext,
  const uint8_t *aInput,
  uint8_t *aOutput
)

Die angegebenen Daten verschlüsseln.

Details
Parameter
[in] aContext
Kontext für AES-Vorgang.
[in] aInput
Mauszeiger auf den Eingabezwischenspeicher.
[in] aOutput
Mauszeiger auf den Ausgabezwischenspeicher.
Rückgabewerte
OT_ERROR_NONE
aInput wurde erfolgreich verschlüsselt.
OT_ERROR_FAILED
aInput konnte nicht verschlüsselt werden.
OT_ERROR_INVALID_ARGS
aContext, aKey oder aOutput waren NULL

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

AES-Kontext freigeben.

Details
Parameter
[in] aContext
Kontext für AES-Vorgang.
Rückgabewerte
OT_ERROR_NONE
AES-Kontext wurde freigegeben.
OT_ERROR_FAILED
AES-Kontext konnte nicht freigegeben werden.
OT_ERROR_INVALID_ARGS
aContext war NULL

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

AES-Vorgang initialisieren.

Details
Parameter
[in] aContext
Kontext für AES-Vorgang.
Rückgabewerte
OT_ERROR_NONE
AES-Vorgang wurde initialisiert.
OT_ERROR_FAILED
AES-Vorgang konnte nicht initialisiert werden.
OT_ERROR_INVALID_ARGS
aContext war NULL
OT_ERROR_NO_BUFS
Der Kontext kann nicht zugewiesen werden.

otPlatCryptoAesSetKey

otError otPlatCryptoAesSetKey(
  otCryptoContext *aContext,
  const otCryptoKey *aKey
)

Legen Sie den Schlüssel für den AES-Vorgang fest.

Details
Parameter
[in] aContext
Kontext für AES-Vorgang.
[out] aKey
Schlüssel für den AES-Vorgang.
Rückgabewerte
OT_ERROR_NONE
Der Schlüssel für den AES-Vorgang wurde festgelegt.
OT_ERROR_FAILED
Fehler beim Festlegen des Schlüssels für den AES-Vorgang.
OT_ERROR_INVALID_ARGS
aContext oder aKey waren NULL

otPlatCryptoDestroySchlüssel

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

Einen in PSA-ITS gespeicherten Schlüssel löschen

Details
Parameter
[in] aKeyRef
Der zu löschende Schlüsselverweis
Rückgabewerte
OT_ERROR_NONE
Der Schlüssel wurde gelöscht.
OT_ERROR_FAILED
Der Schlüssel konnte nicht gelöscht werden.

otPlatCryptoExportSchlüssel

otError otPlatCryptoExportKey(
  otCryptoKeyRef aKeyRef,
  uint8_t *aBuffer,
  size_t aBufferLen,
  size_t *aKeyLen
)

Einen in PSA-ITS gespeicherten Schlüssel exportieren

Details
Parameter
[in] aKeyRef
Der Schlüssel, der für Krypto-Operationen verwendet werden soll.
[out] aBuffer
Bewegen Sie den Mauszeiger auf den Zwischenspeicher, an den der Schlüssel exportiert werden soll.
[in] aBufferLen
Die Länge des Zwischenspeichers, der zum Speichern des exportierten Schlüssels übergeben wurde.
[out] aKeyLen
Mauszeiger, um die Länge des exportierten Schlüssels zurückzugeben.
Rückgabewerte
OT_ERROR_NONE
aKeyRef wurde exportiert.
OT_ERROR_FAILED
aKeyRef konnte nicht exportiert werden.
OT_ERROR_INVALID_ARGS
aBuffer war NULL

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

Prüfen Sie, ob der übergebene Schlüsselverweis in der PSA-ITS mit einem Schlüssel verknüpft ist.

Details
Parameter
[in] aKeyRef
Der zu überprüfende Schlüssel.
Rückgabewerte
TRUE
Mit aKeyRef ist ein Schlüssel verknüpft.
FALSE
Mit aKeyRef ist kein Schlüssel verknüpft.

otPlatCryptoHkdfIhrit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Deaktivieren Sie den HKDF-Kontext.

Details
Parameter
[in] aContext
Kontext für HKDF-Vorgang.
Rückgabewerte
OT_ERROR_NONE
Der HKDF-Vorgang wurde nicht initialisiert.
OT_ERROR_FAILED
Fehler beim Aufheben der Initialisierung des HKDF-Vorgangs.
OT_ERROR_INVALID_ARGS
aContext war NULL

otPlatCryptoHkdfExpand

otError otPlatCryptoHkdfExpand(
  otCryptoContext *aContext,
  const uint8_t *aInfo,
  uint16_t aInfoLength,
  uint8_t *aOutputKey,
  uint16_t aOutputKeyLength
)

Führe den Schritt „HKDF-Maximieren“ aus.

Details
Parameter
[in] aContext
Betriebskontext für HKDF-Vorgang.
[in] aInfo
Bewegen Sie den Mauszeiger auf die Informationssequenz.
[in] aInfoLength
Länge der Infosequenz.
[out] aOutputKey
Mauszeiger auf den Ausgabeschlüssel.
[in] aOutputKeyLength
Größe des Ausgabeschlüsselpuffers.
Rückgabewerte
OT_ERROR_NONE
HKDF wurde maximiert.
OT_ERROR_FAILED
Fehler beim HKDF-Maximieren.
OT_ERROR_INVALID_ARGS
aContext war NULL

otPlatCryptoHkdfExtra

otError otPlatCryptoHkdfExtract(
  otCryptoContext *aContext,
  const uint8_t *aSalt,
  uint16_t aSaltLength,
  const otCryptoKey *aInputKey
)

Führen Sie den Schritt „HKDF Extract“ aus.

Details
Parameter
[in] aContext
Betriebskontext für HKDF-Vorgang.
[in] aSalt
Verweis auf den Salzgehalt für HKDF.
[in] aSaltLength
Salzlänge.
[in] aInputKey
Bewegen Sie den Mauszeiger auf den Eingabeschlüssel.
Rückgabewerte
OT_ERROR_NONE
HKDF Extract war erfolgreich.
OT_ERROR_FAILED
HKDF-Extra funktioniert.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

HKDF-Kontext initialisieren

Details
Parameter
[in] aContext
Kontext für HKDF-Vorgang.
Rückgabewerte
OT_ERROR_NONE
AES-Vorgang wurde initialisiert.
OT_ERROR_FAILED
AES-Vorgang konnte nicht initialisiert werden.
OT_ERROR_INVALID_ARGS
aContext war NULL

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

Initialisieren Sie den HMAC-Vorgang.

Details
Parameter
[in] aContext
Kontext für HMAC-Vorgang.
Rückgabewerte
OT_ERROR_NONE
HMAC-Vorgang wurde nicht initialisiert.
OT_ERROR_FAILED
Fehler beim Aufheben der Initialisierung des HMAC-Vorgangs.
OT_ERROR_INVALID_ARGS
aContext war NULL

otPlatCryptoHmacSha256Fertigstellen

otError otPlatCryptoHmacSha256Finish(
  otCryptoContext *aContext,
  uint8_t *aBuf,
  size_t aBufLength
)

Führen Sie den HMAC-Vorgang aus.

Details
Parameter
[in] aContext
Kontext für HMAC-Vorgang.
[out] aBuf
Ein Zeiger auf den Ausgabezwischenspeicher.
[in] aBufLength
Die Länge von aBuf in Byte.
Rückgabewerte
OT_ERROR_NONE
HMAC-Vorgang wurde abgeschlossen.
OT_ERROR_FAILED
HMAC-Vorgang konnte nicht abgeschlossen werden.
OT_ERROR_INVALID_ARGS
aContext oder aBuf waren NULL

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

HMAC-Vorgang initialisieren.

Details
Parameter
[in] aContext
Kontext für HMAC-Vorgang.
Rückgabewerte
OT_ERROR_NONE
HMAC-Vorgang wurde initialisiert.
OT_ERROR_FAILED
HMAC-Vorgang konnte nicht initialisiert werden.
OT_ERROR_INVALID_ARGS
aContext war NULL

otPlatCryptoHmacSha256

otError otPlatCryptoHmacSha256Start(
  otCryptoContext *aContext,
  const otCryptoKey *aKey
)

HMAC-Vorgang starten.

Details
Parameter
[in] aContext
Kontext für HMAC-Vorgang.
[in] aKey
Schlüsselmaterial für den HMAC-Vorgang.
Rückgabewerte
OT_ERROR_NONE
HMAC-Vorgang wurde gestartet.
OT_ERROR_FAILED
HMAC-Vorgang konnte nicht gestartet werden.
OT_ERROR_INVALID_ARGS
aContext oder aKey waren NULL

otPlatCryptoHmacSha256Update

otError otPlatCryptoHmacSha256Update(
  otCryptoContext *aContext,
  const void *aBuf,
  uint16_t aBufLength
)

Aktualisieren Sie den HMAC-Vorgang mit einer neuen Eingabe.

Details
Parameter
[in] aContext
Kontext für HMAC-Vorgang.
[in] aBuf
Ein Zeiger auf den Eingabezwischenspeicher.
[in] aBufLength
Die Länge von aBuf in Byte.
Rückgabewerte
OT_ERROR_NONE
HMAC wurde mit neuem Eingabevorgang aktualisiert.
OT_ERROR_FAILED
HMAC-Vorgang konnte nicht aktualisiert werden.
OT_ERROR_INVALID_ARGS
aContext oder aBuf waren NULL

otPlatCryptoImportKey

otError otPlatCryptoImportKey(
  otCryptoKeyRef *aKeyRef,
  otCryptoKeyType aKeyType,
  otCryptoKeyAlgorithm aKeyAlgorithm,
  int aKeyUsage,
  otCryptoKeyStorage aKeyPersistence,
  const uint8_t *aKey,
  size_t aKeyLen
)

Einen Schlüssel in PSA-ITS importieren.

Hinweis:Wenn OT_CRYPTO_KEY_STORAGE_PERSISTENT für „AKeyPersistence“ übergeben wird, muss „aKeyRef“ eingegeben werden und die Plattform sollte den angegebenen „KeyKey“ verwenden und DARF nicht ändern. Wenn OT_CRYPTO_KEY_STORAGE_VOLATILE für aKeyPersistence übergeben wird, wird aKeyRef ausgegeben. Der Anfangswert spielt dabei keine Rolle und die Plattform-API muss sie aktualisieren, um den neuen Schlüsselverweis zu liefern.

Details
Parameter
[in,out] aKeyRef
Mauszeiger auf den Schlüssel, der für Krypto-Operationen verwendet werden soll.
[in] aKeyType
Schlüsseltypcodierung für den Schlüssel.
[in] aKeyAlgorithm
Schlüsselalgorithmus für den Schlüssel.
[in] aKeyUsage
Schlüsselverwendung für den Schlüssel (Kombinationen von OT_CRYPTO_KEY_USAGE_*).
[in] aKeyPersistence
Schlüsselpersistenz für diesen Schlüssel
[in] aKey
Zu importierender tatsächlicher Schlüssel.
[in] aKeyLen
Länge des zu importierenden Schlüssels.
Rückgabewerte
OT_ERROR_NONE
Der Schlüssel wurde importiert.
OT_ERROR_FAILED
Der Schlüssel konnte nicht importiert werden.
OT_ERROR_INVALID_ARGS
aKey wurde auf NULL gesetzt.

Diese API wird nur vom OT Core verwendet, wenn OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE aktiviert ist.

otPlatCryptoInit

void otPlatCryptoInit(
  void
)

Initialisieren Sie das Crypto-Modul.

otPlatCryptoZufallsEigeneit

void otPlatCryptoRandomDeinit(
  void
)

DeInitialisieren Sie den kryptografisch kryptografisch sicheren Pseudogenerator (CSPRNG).

otPlatCryptoZufallsGet

otError otPlatCryptoRandomGet(
  uint8_t *aBuffer,
  uint16_t aSize
)

Füllt einen bestimmten Puffer mit kryptografisch sicheren zufälligen Byte aus.

Details
Parameter
[out] aBuffer
Ein Zeiger auf einen Puffer, der mit den zufälligen Byte gefüllt wird.
[in] aSize
Größe des Puffers (Anzahl der zu füllenden Byte).
Rückgabewerte
OT_ERROR_NONE
Puffer mit Zufallswerten wurde gefüllt.
OT_ERROR_FAILED
Der Vorgang konnte nicht ausgeführt werden.

otPlatCryptoZufallsinit

void otPlatCryptoRandomInit(
  void
)

Initialisiert einen kryptografisch sicheren Pseudozahlengenerator (CSPRNG).

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

Deaktivieren Sie den SHA-256-Vorgang.

Details
Parameter
[in] aContext
Kontext für SHA-256-Vorgang.
Rückgabewerte
OT_ERROR_NONE
SHA-256-Vorgang wurde nicht initialisiert.
OT_ERROR_FAILED
SHA-256-Vorgang konnte nicht initialisiert werden.
OT_ERROR_INVALID_ARGS
aContext war NULL

otPlatCryptoSha256Finish

otError otPlatCryptoSha256Finish(
  otCryptoContext *aContext,
  uint8_t *aHash,
  uint16_t aHashSize
)

SHA-256-Vorgang abschließen.

Details
Parameter
[in] aContext
Kontext für SHA-256-Vorgang.
[in] aHash
Ein Zeiger auf den Ausgabezwischenspeicher, wo der Hash gespeichert werden muss.
[in] aHashSize
Die Länge von aHash in Byte.
Rückgabewerte
OT_ERROR_NONE
SHA-256-Vorgang wurde abgeschlossen.
OT_ERROR_FAILED
SHA-256-Vorgang konnte nicht abgeschlossen werden.
OT_ERROR_INVALID_ARGS
aContext oder aHash waren NULL

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

SHA-256-Initialisieren.

Details
Parameter
[in] aContext
Kontext für SHA-256-Vorgang.
Rückgabewerte
OT_ERROR_NONE
SHA-256-Vorgang wurde initialisiert.
OT_ERROR_FAILED
SHA-256-Vorgang konnte nicht initialisiert werden.
OT_ERROR_INVALID_ARGS
aContext war NULL

otPlatCryptoSha256Start

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

SHA-256-Vorgang starten.

Details
Parameter
[in] aContext
Kontext für SHA-256-Vorgang.
Rückgabewerte
OT_ERROR_NONE
SHA-256-Vorgang wurde gestartet.
OT_ERROR_FAILED
SHA-256-Vorgang konnte nicht gestartet werden.
OT_ERROR_INVALID_ARGS
aContext war NULL

otPlatCryptoSha256Update

otError otPlatCryptoSha256Update(
  otCryptoContext *aContext,
  const void *aBuf,
  uint16_t aBufLength
)

SHA-256-Vorgang mit neuer Eingabe aktualisieren.

Details
Parameter
[in] aContext
Kontext für SHA-256-Vorgang.
[in] aBuf
Ein Zeiger auf den Eingabezwischenspeicher.
[in] aBufLength
Die Länge von aBuf in Byte.
Rückgabewerte
OT_ERROR_NONE
SHA-256 wurde mit einem neuen Eingabevorgang aktualisiert.
OT_ERROR_FAILED
SHA-256-Vorgang konnte nicht aktualisiert werden.
OT_ERROR_INVALID_ARGS
aContext oder aBuf waren NULL

Ressourcen

Die Themen der Referenzthread API basieren auf dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen sowie die Möglichkeit, in unserer Dokumentation mitzuwirken, finden Sie unter Ressourcen.