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

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.

Typdefs

otCryptoContext Typdef
otCryptoKey Typdef
struct otCryptoKey
otCryptoKeyRef Typdef
uint32_t
Dieser Datentyp stellt die Schlüsselreferenz dar.
otPlatCryptoEcdsaKeyPair Typdef
otPlatCryptoEcdsaPublicKey Typdef
otPlatCryptoEcdsaSignature Typdef
otPlatCryptoSha256Hash Typdef
Diese Struktur stellt einen SHA-256-Hash dar.

Variablen

OT_TOOL_PACKED_END

Funktionen

otPlatCryptoAesEncrypt(otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Verschlüsseln Sie die angegebenen Daten.
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)
Löschen Sie einen in PSA ITS gespeicherten Schlüssel.
otPlatCryptoEcdsaGenerateKey(otPlatCryptoEcdsaKeyPair *aKeyPair)
Generieren Sie den Ausgabepuffer und füllen Sie ihn mit einem neuen ECDSA-Schlüsselpaar.
otPlatCryptoEcdsaGetPublicKey(const otPlatCryptoEcdsaKeyPair *aKeyPair, otPlatCryptoEcdsaPublicKey *aPublicKey)
Ruft den zugehörigen öffentlichen Schlüssel aus dem Eingabekontext ab.
otPlatCryptoEcdsaSign(const otPlatCryptoEcdsaKeyPair *aKeyPair, const otPlatCryptoSha256Hash *aHash, otPlatCryptoEcdsaSignature *aSignature)
Berechnet die ECDSA-Signatur für eine Hash-Nachricht mit dem privaten Schlüssel aus dem Eingabekontext.
otPlatCryptoEcdsaVerify(const otPlatCryptoEcdsaPublicKey *aPublicKey, const otPlatCryptoSha256Hash *aHash, const otPlatCryptoEcdsaSignature *aSignature)
Verwenden Sie den Schlüssel aus dem Eingabekontext, um die ECDSA-Signatur einer gehashten Nachricht zu prüfen.
otPlatCryptoExportKey(otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
Exportieren Sie einen in PSA ITS gespeicherten Schlüssel.
otPlatCryptoHasKey(otCryptoKeyRef aKeyRef)
bool
Prüfen Sie, ob die übergebene Schlüsselreferenz in der PSA-ITS verknüpft ist.
otPlatCryptoHkdfDeinit(otCryptoContext *aContext)
Initialisieren Sie den HKDF-Kontext.
otPlatCryptoHkdfExpand(otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
Führen Sie den Schritt „HKDF-Maximierung“ 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)
Schließen Sie den HMAC-Vorgang ab.
otPlatCryptoHmacSha256Init(otCryptoContext *aContext)
Initialisieren Sie den HMAC-Vorgang.
otPlatCryptoHmacSha256Start(otCryptoContext *aContext, const otCryptoKey *aKey)
HMAC-Vorgang starten.
otPlatCryptoHmacSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
HMAC-Vorgang mit neuer Eingabe aktualisieren.
otPlatCryptoImportKey(otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
Importieren Sie einen Schlüssel in PSA ITS.
otPlatCryptoInit(void)
void
Initialisieren Sie das Crypto-Modul.
otPlatCryptoPbkdf2GenerateKey(const uint8_t *aPassword, uint16_t aPasswordLen, const uint8_t *aSalt, uint16_t aSaltLen, uint32_t aIterationCounter, uint16_t aKeyLen, uint8_t *aKey)
void
Führen Sie PKCS#5 PBKDF2 mit CMAC (AES-CMAC-PRF-128) aus.
otPlatCryptoRandomDeinit(void)
void
Deinitialisieren Sie kryptografisch verschlüsselte Pseudozufallszahlen (CSPRNG).
otPlatCryptoRandomGet(uint8_t *aBuffer, uint16_t aSize)
Füllt einen bestimmten Puffer mit kryptografisch sicheren zufälligen Byte aus.
otPlatCryptoRandomInit(void)
void
Einen kryptografisch sicheren Pseudozufallszahlengenerator (CSPRNG) initialisieren.
otPlatCryptoSha256Deinit(otCryptoContext *aContext)
Initialisieren Sie den SHA-256-Vorgang.
otPlatCryptoSha256Finish(otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
SHA-256-Vorgang abschließen.
otPlatCryptoSha256Init(otCryptoContext *aContext)
SHA-256-Vorgang initialisieren
otPlatCryptoSha256Start(otCryptoContext *aContext)
SHA-256-Vorgang starten.
otPlatCryptoSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
SHA-256-Vorgang mit neuer Eingabe aktualisieren.

Structs

otCryptoContext

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

otCryptoKey

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

otPlatCryptoEcdsaKeyPair

Diese Struktur stellt ein ECDSA-Schlüsselpaar dar (öffentliche und private Schlüssel).

otPlatCryptoEcdsaPublicKey

Diese Struktur stellt einen öffentlichen ECDSA-Schlüssel dar.

otPlatCryptoEcdsaSignature

Diese Struktur stellt eine ECDSA-Signatur dar.

otPlatCryptoSha256Hash

Diese Struktur stellt einen SHA-256-Hash 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: 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.

OTCryptoKey-Algorithmus

 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: Anbieter definiert.

otCryptoKeySpeicher

 otCryptoKeyStorage

Diese Aufzählung definiert die wichtigsten Speichertypen.

Attribute
OT_CRYPTO_KEY_STORAGE_PERSISTENT

Schlüsselpersistenz: Schlüssel ist persistent.

OT_CRYPTO_KEY_STORAGE_VOLATILE

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

Typ „otCryptoKey“

 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.

Typdefs

otCryptoContext

struct otCryptoContext otCryptoContext

OTCryptoKey

struct otCryptoKey otCryptoKey

OtCryptoKeyRef

uint32_t otCryptoKeyRef

Dieser Datentyp stellt die Schlüsselreferenz dar.

otPlatCryptoEcdsaSchlüsselpaar

struct otPlatCryptoEcdsaKeyPair otPlatCryptoEcdsaKeyPair

otPlatCryptoEcdsaPublicKey

struct otPlatCryptoEcdsaPublicKey otPlatCryptoEcdsaPublicKey

otPlatCryptoEcdsa-Signatur

struct otPlatCryptoEcdsaSignature otPlatCryptoEcdsaSignature

otPlatCryptoSha256Hash

struct otPlatCryptoSha256Hash otPlatCryptoSha256Hash

Diese Struktur stellt einen SHA-256-Hash dar.

Variablen

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otPlatCryptoSha256Hash OT_TOOL_PACKED_END

Funktionen

otPlatCryptoAesEncrypt

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

Verschlüsseln Sie die angegebenen Daten.

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

otPlatCryptoAesKostenlos

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 zugeordnet 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
Schlüssel für AES-Vorgang wurde festgelegt.
OT_ERROR_FAILED
Schlüssel für AES-Vorgang konnte nicht festgelegt werden.
OT_ERROR_INVALID_ARGS
aContext oder aKey war NULL

otPlatCryptoDestroySchlüssel

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

Löschen Sie einen in PSA ITS gespeicherten Schlüssel.

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

otPlatCryptoEcdsaGenerateKey (in englischer Sprache)

otError otPlatCryptoEcdsaGenerateKey(
  otPlatCryptoEcdsaKeyPair *aKeyPair
)

Generieren Sie den Ausgabepuffer und füllen Sie ihn mit einem neuen ECDSA-Schlüsselpaar.

Details
Parameter
[out] aKeyPair
Ein Zeiger auf eine ECDSA-Schlüsselpaarstruktur zum Speichern des generierten Schlüsselpaars.
Rückgabewerte
OT_ERROR_NONE
Ein neues Schlüsselpaar wurde generiert.
OT_ERROR_NO_BUFS
Fehler beim Zuweisen des Puffers für die Schlüsselgenerierung.
OT_ERROR_NOT_CAPABLE
Funktion nicht unterstützt.
OT_ERROR_FAILED
Schlüsselpaar konnte nicht generiert werden.

otPlatCryptoEcdsaGetPublicKey

otError otPlatCryptoEcdsaGetPublicKey(
  const otPlatCryptoEcdsaKeyPair *aKeyPair,
  otPlatCryptoEcdsaPublicKey *aPublicKey
)

Ruft den zugehörigen öffentlichen Schlüssel aus dem Eingabekontext ab.

Details
Parameter
[in] aKeyPair
Ein Zeiger auf eine ECDSA-Schlüsselpaarstruktur, in der das Schlüsselpaar gespeichert ist.
[out] aPublicKey
Ein Zeiger auf eine öffentliche ECDSA-Schlüsselstruktur zum Speichern des öffentlichen Schlüssels.
Rückgabewerte
OT_ERROR_NONE
Der öffentliche Schlüssel wurde abgerufen und aBuffer wird aktualisiert.
OT_ERROR_PARSE
Das DER-Format des Schlüsselpaars konnte nicht geparst werden (ungültiges Format).
OT_ERROR_INVALID_ARGS
aContext ist NULL.

otPlatCryptoEcdsaSign

otError otPlatCryptoEcdsaSign(
  const otPlatCryptoEcdsaKeyPair *aKeyPair,
  const otPlatCryptoSha256Hash *aHash,
  otPlatCryptoEcdsaSignature *aSignature
)

Berechnet die ECDSA-Signatur für eine Hash-Nachricht mit dem privaten Schlüssel aus dem Eingabekontext.

Diese Methode verwendet das deterministische Verfahren zur Generierung digitaler Signaturen aus RFC 6979.

Details
Parameter
[in] aKeyPair
Ein Zeiger auf eine ECDSA-Schlüsselpaarstruktur, in der das Schlüsselpaar gespeichert ist.
[in] aHash
Ein Zeiger auf eine SHA-256-Hash-Struktur, in der der Hash-Wert für die Signaturberechnung gespeichert wird.
[out] aSignature
Ein Zeiger auf eine ECDSA-Signaturstruktur zur Ausgabe der berechneten Signatur.
Rückgabewerte
OT_ERROR_NONE
Die Signatur wurde berechnet. aSignature wurde aktualisiert.
OT_ERROR_PARSE
Das DER-Format des Schlüsselpaars konnte nicht geparst werden (ungültiges Format).
OT_ERROR_NO_BUFS
Zwischenspeicher für Signaturberechnung konnte nicht zugewiesen werden.
OT_ERROR_INVALID_ARGS
aContext ist NULL.

otPlatCryptoEcdsaBestätigen

otError otPlatCryptoEcdsaVerify(
  const otPlatCryptoEcdsaPublicKey *aPublicKey,
  const otPlatCryptoSha256Hash *aHash,
  const otPlatCryptoEcdsaSignature *aSignature
)

Verwenden Sie den Schlüssel aus dem Eingabekontext, um die ECDSA-Signatur einer gehashten Nachricht zu prüfen.

Details
Parameter
[in] aPublicKey
Ein Zeiger auf eine öffentliche ECDSA-Schlüsselstruktur, in der der öffentliche Schlüssel für die Signaturprüfung gespeichert ist.
[in] aHash
Zeiger auf eine SHA-256-Hash-Struktur, in der der Hash-Wert für die Signaturprüfung gespeichert ist.
[in] aSignature
Ein Zeiger auf eine ECDSA-Signaturstruktur, in der der zu überprüfende Signaturwert gespeichert wird.
Rückgabewerte
OT_ERROR_NONE
Die Signatur wurde bestätigt.
OT_ERROR_SECURITY
Die Signatur ist ungültig.
OT_ERROR_INVALID_ARGS
Der Schlüssel oder Hash ist ungültig.
OT_ERROR_NO_BUFS
Fehler beim Zuweisen des Puffers für die Signaturüberprüfung.

otPlatCryptoExportKey

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

Exportieren Sie einen in PSA ITS gespeicherten Schlüssel.

Details
Parameter
[in] aKeyRef
Der Schlüssel, der für kryptografische Vorgänge verwendet werden soll.
[out] aBuffer
Zeiger auf den Puffer, in den der Schlüssel exportiert werden muss.
[in] aBufferLen
Länge des Zwischenspeichers, der zum Speichern des exportierten Schlüssels übergeben wird.
[out] aKeyLen
Zeiger zur Rückgabe der Länge des exportierten Schlüssels.
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 die übergebene Schlüsselreferenz in der PSA-ITS verknüpft ist.

Details
Parameter
[in] aKeyRef
Die zu prüfende Schlüsselreferenz
Rückgabewerte
TRUE
aKeyRef ist ein Schlüssel zugeordnet.
FALSE
aKeyRef ist kein Schlüssel zugeordnet.

otPlatCryptoHkdf – Deinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Initialisieren Sie den HKDF-Kontext.

Details
Parameter
[in] aContext
Kontext für HKDF-Vorgang.
Rückgabewerte
OT_ERROR_NONE
HKDF-Vorgang wurde nicht initialisiert.
OT_ERROR_FAILED
Initialisieren des HKDF-Vorgangs fehlgeschlagen.
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ühren Sie den Schritt „HKDF-Maximierung“ aus.

Details
Parameter
[in] aContext
Vorgangskontext für HKDF-Vorgang.
[in] aInfo
Zeiger auf die Informationssequenz.
[in] aInfoLength
Länge der Infosequenz.
[out] aOutputKey
Zeiger auf den Ausgabeschlüssel.
[in] aOutputKeyLength
Größe des Zwischenspeichers für Ausgabeschlüssel.
Rückgabewerte
OT_ERROR_NONE
HKDF-Erweiterung war erfolgreich.
OT_ERROR_FAILED
HKDF-Erweiterung fehlgeschlagen.
OT_ERROR_INVALID_ARGS
aContext war NULL

otPlatCryptoHkdfExtract

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
Vorgangskontext für HKDF-Vorgang.
[in] aSalt
Zeige auf den Salt für HKDF.
[in] aSaltLength
Salzlänge.
[in] aInputKey
Zeiger auf den Eingabeschlüssel.
Rückgabewerte
OT_ERROR_NONE
HKDF Extract war erfolgreich.
OT_ERROR_FAILED
HKDF-Extrahierung fehlgeschlagen.

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 Initialisieren des HMAC-Vorgangs.
OT_ERROR_INVALID_ARGS
aContext war NULL

Ende der otPlatCryptoHmacSha256-Ausführung

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

Schließen Sie den HMAC-Vorgang ab.

Details
Parameter
[in] aContext
Kontext für HMAC-Vorgang.
[out] aBuf
Ein Zeiger auf den Ausgabepuffer.
[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 war NULL

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

Initialisieren Sie den HMAC-Vorgang.

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

otPlatCryptoHmacSha256Start

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

HMAC-Vorgang starten.

Details
Parameter
[in] aContext
Kontext für HMAC-Vorgang.
[in] aKey
Schlüsselmaterial, das für HMAC-Vorgänge verwendet werden soll.
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 war NULL

otPlatCryptoHmacSha256Update

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

HMAC-Vorgang mit neuer Eingabe aktualisieren.

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 aktualisiert und hat einen neuen Eingabevorgang.
OT_ERROR_FAILED
HMAC-Vorgang konnte nicht aktualisiert werden.
OT_ERROR_INVALID_ARGS
aContext oder aBuf war NULL

otPlatCryptoImportKey

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

Importieren Sie einen Schlüssel in PSA ITS.

Hinweis: Wenn OT_CRYPTO_KEY_STORAGE_PERSISTENT für aKeyPersistence übergeben wird, ist aKeyRef eine Eingabe und die Plattform sollte die angegebene aKeyRef verwenden und darf sie nicht ändern. Wenn OT_CRYPTO_KEY_STORAGE_VOLATILE für aKeyPersistence übergeben wird, dann wird aKeyRef ausgegeben. Der Anfangswert ist unerheblich und die Plattform-API MUSS ihn aktualisieren, um den neuen Schlüsselverweis zurückzugeben.

Details
Parameter
[in,out] aKeyRef
Zeiger auf den Schlüsselverweis, der für kryptografische Vorgänge verwendet werden soll.
[in] aKeyType
Schlüsseltypcodierung für den Schlüssel.
[in] aKeyAlgorithm
Schlüsselalgorithmuscodierung für den Schlüssel.
[in] aKeyUsage
Key Usage-Codierung 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 festgelegt.

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.

otPlatCryptoPbkdf2GenerateKey (in englischer Sprache)

void otPlatCryptoPbkdf2GenerateKey(
  const uint8_t *aPassword,
  uint16_t aPasswordLen,
  const uint8_t *aSalt,
  uint16_t aSaltLen,
  uint32_t aIterationCounter,
  uint16_t aKeyLen,
  uint8_t *aKey
)

Führen Sie PKCS#5 PBKDF2 mit CMAC (AES-CMAC-PRF-128) aus.

Details
Parameter
[in] aPassword
Passwort, das beim Generieren des Schlüssels verwendet wird.
[in] aPasswordLen
Länge des Passworts.
[in] aSalt
Salt zum Generieren des Schlüssels.
[in] aSaltLen
Salzlänge.
[in] aIterationCounter
Anzahl der Iterationen.
[in] aKeyLen
Länge des generierten Schlüssels in Byte.
[out] aKey
Ein Zeiger auf den generierten Schlüssel.

otPlatCryptoRandomIhrit

void otPlatCryptoRandomDeinit(
  void
)

Deinitialisieren Sie kryptografisch verschlüsselte Pseudozufallszahlen (CSPRNG).

otPlatCryptoRandomGets

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
Der Puffer wurde mit zufälligen Werten gefüllt.
OT_ERROR_FAILED
Der Vorgang ist fehlgeschlagen.

otPlatCryptoRandomInit

void otPlatCryptoRandomInit(
  void
)

Einen kryptografisch sicheren Pseudozufallszahlengenerator (CSPRNG) initialisieren.

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

Initialisieren 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

Ende der otPlatCryptoSha256-Ausführung

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 Ausgabepuffer, in dem 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 war NULL

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

SHA-256-Vorgang 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 neuem Eingabevorgang aktualisiert.
OT_ERROR_FAILED
SHA-256-Vorgang konnte nicht aktualisiert werden.
OT_ERROR_INVALID_ARGS
aContext oder aBuf war NULL

Makros

OT_CRYPTO_ECDSA_MAX_DER_SIZE

 OT_CRYPTO_ECDSA_MAX_DER_SIZE 125

Maximale Puffergröße in Byte für das EDCSA-Schlüsselpaar im DER-Format.

OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE

 OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE 64

Puffergröße (in Byte) für den öffentlichen EDCSA-Schlüssel.

OT_CRYPTO_ECDSA_SIGNATURE_SIZE

 OT_CRYPTO_ECDSA_SIGNATURE_SIZE 64

Puffergröße in Byte für die Darstellung der EDCSA-Signatur.

OT_CRYPTO_PBDKF2_MAX_SALT_SIZE

 OT_CRYPTO_PBDKF2_MAX_SALT_SIZE 30

Max. PBKDF2-SALT-Länge: Salzpräfix (6) + erweiterter Panid (8) + Netzwerkname (16)

OT_CRYPTO_SHA256_HASH_SIZE

 OT_CRYPTO_SHA256_HASH_SIZE 32

Länge von SHA256-Hash (in Byte).

Ressourcen

Die OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen sowie Informationen zu unserer Dokumentation finden Sie unter Ressourcen.