Krypto – platforma

Ten moduł zawiera abstrakcję platformy do kryptografii.

Podsumowanie

Wyliczenia

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,
  OT_CRYPTO_KEY_USAGE_VERIFY_HASH = 1 << 4
}
enum | typ wyliczeniowy
Definiuje flagi użycia klucza.
otCryptoKeyAlgorithm{
  OT_CRYPTO_KEY_ALG_VENDOR,
  OT_CRYPTO_KEY_ALG_AES_ECB,
  OT_CRYPTO_KEY_ALG_HMAC_SHA_256,
  OT_CRYPTO_KEY_ALG_ECDSA
}
enum | typ wyliczeniowy
Definiuje główne algorytmy.
otCryptoKeyStorage{
  OT_CRYPTO_KEY_STORAGE_VOLATILE,
  OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
enum | typ wyliczeniowy
Określa typy pamięci kluczy.
otCryptoKeyType{
  OT_CRYPTO_KEY_TYPE_RAW,
  OT_CRYPTO_KEY_TYPE_AES,
  OT_CRYPTO_KEY_TYPE_HMAC,
  OT_CRYPTO_KEY_TYPE_ECDSA
}
enum | typ wyliczeniowy
Określa typy kluczy.

Definicje typów

otCryptoContext typedef
otCryptoKey typedef
struct otCryptoKey
otCryptoKeyRef typedef
uint32_t
Ten typ danych reprezentuje odwołanie do klucza.
otPlatCryptoEcdsaKeyPair typedef
otPlatCryptoEcdsaPublicKey typedef
otPlatCryptoEcdsaSignature typedef
otPlatCryptoSha256Hash typedef
Reprezentuje hasz SHA-256.

Zmienne

OT_TOOL_PACKED_END

Funkcje

otPlatCryptoAesEncrypt(otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Zaszyfruj podane dane.
otPlatCryptoAesFree(otCryptoContext *aContext)
Uwolnij kontekst AES.
otPlatCryptoAesInit(otCryptoContext *aContext)
Zainicjuj operację AES.
otPlatCryptoAesSetKey(otCryptoContext *aContext, const otCryptoKey *aKey)
Ustaw klucz operacji AES.
otPlatCryptoDestroyKey(otCryptoKeyRef aKeyRef)
Zniszcz klucz przechowywany w PSA ITS.
otPlatCryptoEcdsaExportPublicKey(otCryptoKeyRef aKeyRef, otPlatCryptoEcdsaPublicKey *aPublicKey)
Pobierz powiązany klucz publiczny z przekazanego odniesienia do klucza.
otPlatCryptoEcdsaGenerateAndImportKey(otCryptoKeyRef aKeyRef)
Wygeneruj i zaimportuj nową parę kluczy ECDSA, gdy zaliczono odwołanie.
otPlatCryptoEcdsaGenerateKey(otPlatCryptoEcdsaKeyPair *aKeyPair)
Wygeneruj i wypełnij bufor wyjściowy nową parą kluczy ECDSA.
otPlatCryptoEcdsaGetPublicKey(const otPlatCryptoEcdsaKeyPair *aKeyPair, otPlatCryptoEcdsaPublicKey *aPublicKey)
Pobierz powiązany klucz publiczny z kontekstu danych wejściowych.
otPlatCryptoEcdsaSign(const otPlatCryptoEcdsaKeyPair *aKeyPair, const otPlatCryptoSha256Hash *aHash, otPlatCryptoEcdsaSignature *aSignature)
Oblicz podpis ECDSA dla zaszyfrowanej wiadomości przy użyciu klucza prywatnego z kontekstu wejściowego.
otPlatCryptoEcdsaSignUsingKeyRef(otCryptoKeyRef aKeyRef, const otPlatCryptoSha256Hash *aHash, otPlatCryptoEcdsaSignature *aSignature)
Oblicz podpis ECDSA dla zaszyfrowanej wiadomości przy użyciu przekazanego odniesienia do klucza.
otPlatCryptoEcdsaVerify(const otPlatCryptoEcdsaPublicKey *aPublicKey, const otPlatCryptoSha256Hash *aHash, const otPlatCryptoEcdsaSignature *aSignature)
Aby sprawdzić podpis ECDSA w zaszyfrowanej wiadomości, użyj klucza z kontekstu wejściowego.
otPlatCryptoEcdsaVerifyUsingKeyRef(otCryptoKeyRef aKeyRef, const otPlatCryptoSha256Hash *aHash, const otPlatCryptoEcdsaSignature *aSignature)
Sprawdź podpis ECDSA w zaszyfrowanej wiadomości, korzystając z argumentu keyref.
otPlatCryptoExportKey(otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
Wyeksportuj klucz przechowywany w PSA ITS.
otPlatCryptoHasKey(otCryptoKeyRef aKeyRef)
bool
Sprawdź, czy przekazane odwołanie do klucza ma powiązany klucz w usłudze PSA ITS.
otPlatCryptoHkdfDeinit(otCryptoContext *aContext)
Cofnij zainicjowanie kontekstu HKDF.
otPlatCryptoHkdfExpand(otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
Wykonaj krok rozwinięcia HKDF.
otPlatCryptoHkdfExtract(otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
Wykonaj krok wyodrębniania HKDF.
otPlatCryptoHkdfInit(otCryptoContext *aContext)
Zainicjuj kontekst HKDF.
otPlatCryptoHmacSha256Deinit(otCryptoContext *aContext)
Cofnij zainicjowanie operacji HMAC.
otPlatCryptoHmacSha256Finish(otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
Wykonaj operację HMAC.
otPlatCryptoHmacSha256Init(otCryptoContext *aContext)
Zainicjuj operację HMAC.
otPlatCryptoHmacSha256Start(otCryptoContext *aContext, const otCryptoKey *aKey)
Uruchom operację HMAC.
otPlatCryptoHmacSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Zaktualizuj operację HMAC, podając nowe dane wejściowe.
otPlatCryptoImportKey(otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
Zaimportuj klucz do systemu PSA ITS.
otPlatCryptoInit(void)
void
Zainicjuj moduł kryptograficzny.
otPlatCryptoPbkdf2GenerateKey(const uint8_t *aPassword, uint16_t aPasswordLen, const uint8_t *aSalt, uint16_t aSaltLen, uint32_t aIterationCounter, uint16_t aKeyLen, uint8_t *aKey)
Wykonaj PKCS#5 PBKDF2 przy użyciu CMAC (AES-CMAC-PRF-128).
otPlatCryptoRandomDeinit(void)
void
Deinicjuj zabezpieczony kryptograficznie generator liczb pseudolosowych (CSPRNG).
otPlatCryptoRandomGet(uint8_t *aBuffer, uint16_t aSize)
Wypełnia dany bufor zabezpieczonymi kryptograficznie losowymi bajtami.
otPlatCryptoRandomInit(void)
void
Zainicjuj zabezpieczony kryptograficznie generator pseudolosowych liczb (CSPRNG).
otPlatCryptoSha256Deinit(otCryptoContext *aContext)
Cofnij zainicjowanie operacji SHA-256.
otPlatCryptoSha256Finish(otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
Zakończ operację SHA-256.
otPlatCryptoSha256Init(otCryptoContext *aContext)
Zainicjuj operację SHA-256.
otPlatCryptoSha256Start(otCryptoContext *aContext)
Rozpocznij operację SHA-256.
otPlatCryptoSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Zaktualizuj operację SHA-256 o nowe dane wejściowe.

Konstrukcja

otCryptoContext

Przechowuje obiekt kontekstu dla interfejsów API platformy.

otCryptoKey

Reprezentuje materiał klucza wymagany do operacji kryptograficznych.

otPlatCryptoEcdsaKeyPair

Reprezentuje parę kluczy ECDSA (klucze publiczne i prywatne).

otPlatCryptoEcdsaPublicKey

Reprezentuje klucz publiczny ECDSA.

otPlatCryptoEcdsaSignature

Reprezentuje podpis ECDSA.

otPlatCryptoSha256Hash

Reprezentuje hasz SHA-256.

Wyliczenia

anonimowe wyliczenie

 anonymous enum

Definiuje flagi użycia klucza.

Właściwości
OT_CRYPTO_KEY_USAGE_DECRYPT

Użycie klucza: AES ECB.

OT_CRYPTO_KEY_USAGE_ENCRYPT

Użycie klucza: szyfrowanie (określone przez dostawcę).

OT_CRYPTO_KEY_USAGE_EXPORT

Użycie klucza: klucz można eksportować.

OT_CRYPTO_KEY_USAGE_NONE

Użycie klucza: użycie klucza jest puste.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

Użycie klucza: znak Hasz.

OT_CRYPTO_KEY_USAGE_VERIFY_HASH

Użycie klucza: zweryfikuj hasz.

otCryptoKeyAlgorithm

 otCryptoKeyAlgorithm

Definiuje główne algorytmy.

Właściwości
OT_CRYPTO_KEY_ALG_AES_ECB

Algorytm klucza: AES ECB.

OT_CRYPTO_KEY_ALG_ECDSA

Algorytm klucza: ECDSA.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

Algorytm klucza: HMAC SHA-256.

OT_CRYPTO_KEY_ALG_VENDOR

Algorytm klucza: definiowany przez dostawcę.

otCryptoKeyStorage

 otCryptoKeyStorage

Określa typy pamięci kluczy.

Właściwości
OT_CRYPTO_KEY_STORAGE_PERSISTENT

Trwałość klucza: klucz jest trwały.

OT_CRYPTO_KEY_STORAGE_VOLATILE

Trwałość klucza: klucz jest zmienny.

otCryptoKeyType

 otCryptoKeyType

Określa typy kluczy.

Właściwości
OT_CRYPTO_KEY_TYPE_AES

Typ klucza: AES.

OT_CRYPTO_KEY_TYPE_ECDSA

Typ klucza: ECDSA.

OT_CRYPTO_KEY_TYPE_HMAC

Typ klucza: HMAC.

OT_CRYPTO_KEY_TYPE_RAW

Typ klucza: nieprzetworzone dane.

Definicje typów

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

Ten typ danych reprezentuje odwołanie do klucza.

otPlatCryptoEcdsaKeyPair

struct otPlatCryptoEcdsaKeyPair otPlatCryptoEcdsaKeyPair

otPlatCryptoEcdsaPublicKey

struct otPlatCryptoEcdsaPublicKey otPlatCryptoEcdsaPublicKey

otPlatCryptoEcdsaSignature

struct otPlatCryptoEcdsaSignature otPlatCryptoEcdsaSignature

otPlatCryptoSha256Hash

struct otPlatCryptoSha256Hash otPlatCryptoSha256Hash

Reprezentuje hasz SHA-256.

Zmienne

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otPlatCryptoSha256Hash OT_TOOL_PACKED_END

Funkcje

otPlatCryptoAesEncrypt

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

Zaszyfruj podane dane.

Szczegóły
Parametry
[in] aContext
Kontekst operacji AES.
[in] aInput
Wskaźnik do bufora wejściowego.
[in] aOutput
Wskaźnik do bufora wyjściowego.
Zwracane wartości
OT_ERROR_NONE
Plik aInput został zaszyfrowany.
OT_ERROR_FAILED
Nie udało się zaszyfrować pliku aInput.
OT_ERROR_INVALID_ARGS
Wartości aContext, aKey lub aOutput miały wartość NULL

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

Uwolnij kontekst AES.

Szczegóły
Parametry
[in] aContext
Kontekst operacji AES.
Zwracane wartości
OT_ERROR_NONE
Kontekst AES został zwolniony.
OT_ERROR_FAILED
Nie udało się zwolnić kontekstu AES.
OT_ERROR_INVALID_ARGS
aContext zawiera wartość NULL

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

Zainicjuj operację AES.

Szczegóły
Parametry
[in] aContext
Kontekst operacji AES.
Zwracane wartości
OT_ERROR_NONE
Operacja AES została zainicjowana.
OT_ERROR_FAILED
Nie udało się zainicjować operacji AES.
OT_ERROR_INVALID_ARGS
aContext zawiera wartość NULL
OT_ERROR_NO_BUFS
Nie można przydzielić kontekstu.

otPlatCryptoAesSetKey

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

Ustaw klucz operacji AES.

Szczegóły
Parametry
[in] aContext
Kontekst operacji AES.
[out] aKey
Klucz używany w operacji AES.
Zwracane wartości
OT_ERROR_NONE
Klucz operacji AES został ustawiony.
OT_ERROR_FAILED
Nie udało się ustawić klucza operacji AES.
OT_ERROR_INVALID_ARGS
Wartość w kolumnie aContext lub aKey zawiera wartość NULL

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

Zniszcz klucz przechowywany w PSA ITS.

Szczegóły
Parametry
[in] aKeyRef
Odwołanie klucza do zniszczenia
Zwracane wartości
OT_ERROR_NONE
Klucz został zniszczony.
OT_ERROR_FAILED
Nie udało się zniszczyć klucza.

otPlatCryptoEcdsaExportPublicKey

otError otPlatCryptoEcdsaExportPublicKey(
  otCryptoKeyRef aKeyRef,
  otPlatCryptoEcdsaPublicKey *aPublicKey
)

Pobierz powiązany klucz publiczny z przekazanego odniesienia do klucza.

Klucz publiczny jest przechowywany w różny sposób w zależności od używanej biblioteki kryptograficznej backendu (OPENTHREAD_CONFIG_CRYPTO_LIB).

Ten interfejs API musi zwracać klucz publiczny jako reprezentację sekwencji bajtów nieskompresowanego punktu krzywej (RFC 6605–sek. 4)

Szczegóły
Parametry
[in] aKeyRef
Odniesienie do miejsca, w którym jest przechowywana para kluczy.
[out] aPublicKey
Wskaźnik do struktury klucza publicznego ECDSA do przechowywania klucza publicznego.
Zwracane wartości
OT_ERROR_NONE
Klucz publiczny został pobrany, a klucz aBuffer został zaktualizowany.
OT_ERROR_PARSE
Nie udało się przeanalizować formatu DER pary kluczy (nieprawidłowy format).
OT_ERROR_INVALID_ARGS
Wartość aContext ma wartość NULL.

otPlatCryptoEcdsaGenerateAndImportKey

otError otPlatCryptoEcdsaGenerateAndImportKey(
  otCryptoKeyRef aKeyRef
)

Wygeneruj i zaimportuj nową parę kluczy ECDSA, gdy zaliczono odwołanie.

Szczegóły
Parametry
[in] aKeyRef
Odniesienie do miejsca, w którym jest przechowywana para kluczy.
Zwracane wartości
OT_ERROR_NONE
Wygenerowano nową parę kluczy.
OT_ERROR_NO_BUFS
Nie udało się przydzielić bufora do generowania klucza.
OT_ERROR_NOT_CAPABLE
Funkcja nie jest obsługiwana.
OT_ERROR_FAILED
Nie udało się wygenerować pary kluczy.

otPlatCryptoEcdsaGenerateKey

otError otPlatCryptoEcdsaGenerateKey(
  otPlatCryptoEcdsaKeyPair *aKeyPair
)

Wygeneruj i wypełnij bufor wyjściowy nową parą kluczy ECDSA.

Szczegóły
Parametry
[out] aKeyPair
Wskaźnik do struktury pary kluczy ECDSA, który służy do przechowywania wygenerowanej pary kluczy.
Zwracane wartości
OT_ERROR_NONE
Wygenerowano nową parę kluczy.
OT_ERROR_NO_BUFS
Nie udało się przydzielić bufora do generowania klucza.
OT_ERROR_NOT_CAPABLE
Funkcja nie jest obsługiwana.
OT_ERROR_FAILED
Nie udało się wygenerować pary kluczy.

otPlatCryptoEcdsaGetPublicKey

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

Pobierz powiązany klucz publiczny z kontekstu danych wejściowych.

Szczegóły
Parametry
[in] aKeyPair
Wskaźnik do struktury pary kluczy ECDSA, w której jest przechowywana para kluczy.
[out] aPublicKey
Wskaźnik do struktury klucza publicznego ECDSA do przechowywania klucza publicznego.
Zwracane wartości
OT_ERROR_NONE
Klucz publiczny został pobrany, a klucz aBuffer został zaktualizowany.
OT_ERROR_PARSE
Nie udało się przeanalizować formatu DER pary kluczy (nieprawidłowy format).
OT_ERROR_INVALID_ARGS
Wartość aContext ma wartość NULL.

otPlatCryptoEcdsaSign

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

Oblicz podpis ECDSA dla zaszyfrowanej wiadomości przy użyciu klucza prywatnego z kontekstu wejściowego.

Używa deterministycznej procedury generowania podpisu cyfrowego ze standardu RFC 6979.

Szczegóły
Parametry
[in] aKeyPair
Wskaźnik do struktury pary kluczy ECDSA, w której jest przechowywana para kluczy.
[in] aHash
Wskaźnik struktury skrótu SHA-256, w której przechowywana jest wartość skrótu do obliczenia podpisu.
[out] aSignature
Wskaźnik do struktury podpisu ECDSA, który generuje obliczony podpis.
Zwracane wartości
OT_ERROR_NONE
Podpis został obliczony poprawnie, zaktualizowano aSignature.
OT_ERROR_PARSE
Nie udało się przeanalizować formatu DER pary kluczy (nieprawidłowy format).
OT_ERROR_NO_BUFS
Nie udało się przydzielić bufora do obliczania podpisu.
OT_ERROR_INVALID_ARGS
Wartość aContext ma wartość NULL.

otPlatCryptoEcdsaSignUsingKeyRef

otError otPlatCryptoEcdsaSignUsingKeyRef(
  otCryptoKeyRef aKeyRef,
  const otPlatCryptoSha256Hash *aHash,
  otPlatCryptoEcdsaSignature *aSignature
)

Oblicz podpis ECDSA dla zaszyfrowanej wiadomości przy użyciu przekazanego odniesienia do klucza.

Używa deterministycznej procedury generowania podpisu cyfrowego ze standardu RFC 6979.

Szczegóły
Parametry
[in] aKeyRef
Odniesienie do miejsca, w którym jest przechowywana para kluczy.
[in] aHash
Wskaźnik struktury skrótu SHA-256, w której przechowywana jest wartość skrótu do obliczenia podpisu.
[out] aSignature
Wskaźnik do struktury podpisu ECDSA, który generuje obliczony podpis.
Zwracane wartości
OT_ERROR_NONE
Podpis został obliczony poprawnie, zaktualizowano aSignature.
OT_ERROR_PARSE
Nie udało się przeanalizować formatu DER pary kluczy (nieprawidłowy format).
OT_ERROR_NO_BUFS
Nie udało się przydzielić bufora do obliczania podpisu.
OT_ERROR_INVALID_ARGS
Wartość aContext ma wartość NULL.

otPlatCryptoEcdsaVerify

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

Aby sprawdzić podpis ECDSA w zaszyfrowanej wiadomości, użyj klucza z kontekstu wejściowego.

Szczegóły
Parametry
[in] aPublicKey
Wskaźnik do struktury klucza publicznego ECDSA, w której przechowywany jest klucz publiczny do weryfikacji podpisu.
[in] aHash
Wskaźnik struktury skrótu SHA-256, w której przechowywana jest wartość skrótu do weryfikacji podpisu.
[in] aSignature
Wskaźnik do struktury podpisu ECDSA, w której przechowywana jest wartość podpisu do weryfikacji.
Zwracane wartości
OT_ERROR_NONE
Podpis został zweryfikowany.
OT_ERROR_SECURITY
Podpis jest nieprawidłowy.
OT_ERROR_INVALID_ARGS
Klucz lub hasz jest nieprawidłowy.
OT_ERROR_NO_BUFS
Nie udało się przydzielić bufora do weryfikacji podpisu.

otPlatCryptoEcdsaVerifyUsingKeyRef

otError otPlatCryptoEcdsaVerifyUsingKeyRef(
  otCryptoKeyRef aKeyRef,
  const otPlatCryptoSha256Hash *aHash,
  const otPlatCryptoEcdsaSignature *aSignature
)

Sprawdź podpis ECDSA w zaszyfrowanej wiadomości, korzystając z argumentu keyref.

Szczegóły
Parametry
[in] aKeyRef
Odniesienie do miejsca, w którym jest przechowywana para kluczy.
[in] aHash
Wskaźnik struktury skrótu SHA-256, w której przechowywana jest wartość skrótu do weryfikacji podpisu.
[in] aSignature
Wskaźnik do struktury podpisu ECDSA, w której przechowywana jest wartość podpisu do weryfikacji.
Zwracane wartości
OT_ERROR_NONE
Podpis został zweryfikowany.
OT_ERROR_SECURITY
Podpis jest nieprawidłowy.
OT_ERROR_INVALID_ARGS
Klucz lub hasz jest nieprawidłowy.
OT_ERROR_NO_BUFS
Nie udało się przydzielić bufora do weryfikacji podpisu.

otPlatCryptoExportKey

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

Wyeksportuj klucz przechowywany w PSA ITS.

Szczegóły
Parametry
[in] aKeyRef
Informacja o kluczu, która ma być używana podczas operacji kryptograficznych.
[out] aBuffer
Wskaźnik do bufora, gdzie trzeba wyeksportować klucz.
[in] aBufferLen
Długość bufora przekazanego do przechowywania wyeksportowanego klucza.
[out] aKeyLen
Wskaźnik zwracający długość wyeksportowanego klucza.
Zwracane wartości
OT_ERROR_NONE
Wyeksportowano aKeyRef.
OT_ERROR_FAILED
Nie udało się wyeksportować pliku aKeyRef.
OT_ERROR_INVALID_ARGS
aBuffer zawiera wartość NULL

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

Sprawdź, czy przekazane odwołanie do klucza ma powiązany klucz w usłudze PSA ITS.

Szczegóły
Parametry
[in] aKeyRef
Odwołanie klucza do sprawdzenia.
Zwracane wartości
TRUE
Jest powiązany klucz z usługą aKeyRef.
FALSE
Z usługą aKeyRef nie jest powiązany żaden klucz.

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Cofnij zainicjowanie kontekstu HKDF.

Szczegóły
Parametry
[in] aContext
Kontekst operacji HKDF.
Zwracane wartości
OT_ERROR_NONE
Zainicjowana operacja HKDF została cofnięta.
OT_ERROR_FAILED
Nie udało się cofnąć zainicjowanej operacji HKDF.
OT_ERROR_INVALID_ARGS
aContext zawiera wartość NULL

otPlatCryptoHkdfExpand

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

Wykonaj krok rozwinięcia HKDF.

Szczegóły
Parametry
[in] aContext
Kontekst operacji dla operacji HKDF.
[in] aInfo
Wskaźnik do sekwencji informacji.
[in] aInfoLength
Długość sekwencji Info.
[out] aOutputKey
Wskaźnik do klucza wyjściowego.
[in] aOutputKeyLength
Rozmiar bufora klucza wyjściowego.
Zwracane wartości
OT_ERROR_NONE
Udało się rozwinąć w HKDF.
OT_ERROR_FAILED
Nie udało się rozwinąć HKDF.
OT_ERROR_INVALID_ARGS
aContext zawiera wartość NULL

otPlatCryptoHkdfExtract

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

Wykonaj krok wyodrębniania HKDF.

Szczegóły
Parametry
[in] aContext
Kontekst operacji dla operacji HKDF.
[in] aSalt
Wyznacz sól dla HKDF.
[in] aSaltLength
Długość soli.
[in] aInputKey
Wskaźnik do klawisza wprowadzania.
Zwracane wartości
OT_ERROR_NONE
Wyodrębnianie HKDF zostało zakończone.
OT_ERROR_FAILED
Nie udało się wyodrębnić HKDF.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

Zainicjuj kontekst HKDF.

Szczegóły
Parametry
[in] aContext
Kontekst operacji HKDF.
Zwracane wartości
OT_ERROR_NONE
Operacja AES została zainicjowana.
OT_ERROR_FAILED
Nie udało się zainicjować operacji AES.
OT_ERROR_INVALID_ARGS
aContext zawiera wartość NULL

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

Cofnij zainicjowanie operacji HMAC.

Szczegóły
Parametry
[in] aContext
Kontekst operacji HMAC.
Zwracane wartości
OT_ERROR_NONE
Nie zainicjowano operacji HMAC.
OT_ERROR_FAILED
Nie udało się nie zainicjować operacji HMAC.
OT_ERROR_INVALID_ARGS
aContext zawiera wartość NULL

otPlatCryptoHmacSha256Finish

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

Wykonaj operację HMAC.

Szczegóły
Parametry
[in] aContext
Kontekst operacji HMAC.
[out] aBuf
Wskaźnik do bufora wyjściowego.
[in] aBufLength
Długość pliku aBuf w bajtach.
Zwracane wartości
OT_ERROR_NONE
Operacja HMAC została wykonana.
OT_ERROR_FAILED
Nie udało się ukończyć operacji HMAC.
OT_ERROR_INVALID_ARGS
Wartość w kolumnie aContext lub aBuf zawiera wartość NULL

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

Zainicjuj operację HMAC.

Szczegóły
Parametry
[in] aContext
Kontekst operacji HMAC.
Zwracane wartości
OT_ERROR_NONE
Operacja HMAC została zainicjowana.
OT_ERROR_FAILED
Nie udało się zainicjować operacji HMAC.
OT_ERROR_INVALID_ARGS
aContext zawiera wartość NULL

otPlatCryptoHmacSha256Start

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

Uruchom operację HMAC.

Szczegóły
Parametry
[in] aContext
Kontekst operacji HMAC.
[in] aKey
Materiał klucza, który ma być używany w operacji HMAC.
Zwracane wartości
OT_ERROR_NONE
Operacja HMAC została rozpoczęta.
OT_ERROR_FAILED
Nie udało się uruchomić operacji HMAC.
OT_ERROR_INVALID_ARGS
Wartość w kolumnie aContext lub aKey zawiera wartość NULL

otPlatCryptoHmacSha256Update

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

Zaktualizuj operację HMAC, podając nowe dane wejściowe.

Szczegóły
Parametry
[in] aContext
Kontekst operacji HMAC.
[in] aBuf
Wskaźnik do bufora wejściowego.
[in] aBufLength
Długość pliku aBuf w bajtach.
Zwracane wartości
OT_ERROR_NONE
Zaktualizowano HMAC przy użyciu nowej operacji wprowadzania.
OT_ERROR_FAILED
Nie udało się zaktualizować operacji HMAC.
OT_ERROR_INVALID_ARGS
Wartość w kolumnie aContext lub aBuf zawiera wartość NULL

otPlatCryptoImportKey

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

Zaimportuj klucz do systemu PSA ITS.

Jeśli metoda OT_CRYPTO_KEY_STORAGE_VOLATILE zostanie przekazana dla parametru aKeyPersistence, wartość aKeyRef zostanie zwrócona, wartość początkowa nie ma znaczenia, a interfejs API platformy MUSI zaktualizować ją tak, by zwracała nowe odwołanie od klucza.

Szczegóły
Parametry
[in,out] aKeyRef
Wskaźnik do odwołania klucza, który ma być używany w operacjach kryptograficznych.
[in] aKeyType
Kodowanie typu klucza.
[in] aKeyAlgorithm
Kodowanie algorytmu klucza.
[in] aKeyUsage
Kodowanie użycia klucza dla klucza (kombinacje wartości OT_CRYPTO_KEY_USAGE_*).
[in] aKeyPersistence
Trwałość klucza dla tego klucza
[in] aKey
Rzeczywisty klucz do zaimportowania.
[in] aKeyLen
Długość klucza do zaimportowania.
Zwracane wartości
OT_ERROR_NONE
Klucz został zaimportowany.
OT_ERROR_FAILED
Nie udało się zaimportować klucza.
OT_ERROR_INVALID_ARGS
aKey ma wartość NULL.

Ten interfejs API jest używany przez OT core, gdy włączony jest interfejs OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE.

otPlatCryptoInit

void otPlatCryptoInit(
  void
)

Zainicjuj moduł kryptograficzny.

otPlatCryptoPbkdf2WygenerujKlucz

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

Wykonaj PKCS#5 PBKDF2 przy użyciu CMAC (AES-CMAC-PRF-128).

Szczegóły
Parametry
[in] aPassword
Hasło do użycia podczas generowania klucza.
[in] aPasswordLen
Długość hasła.
[in] aSalt
Sól do użycia podczas generowania klucza.
[in] aSaltLen
Długość soli.
[in] aIterationCounter
Liczba iteracji.
[in] aKeyLen
Długość wygenerowanego klucza w bajtach.
[out] aKey
Wskaźnik do wygenerowanego klucza.
Zwracane wartości
OT_ERROR_NONE
Wygenerowano nową parę kluczy.
OT_ERROR_NO_BUFS
Nie udało się przydzielić bufora do generowania klucza.
OT_ERROR_NOT_CAPABLE
Funkcja nie jest obsługiwana.
OT_ERROR_FAILED
Nie udało się wygenerować klucza.

otPlatCryptoRandomDeinit

void otPlatCryptoRandomDeinit(
  void
)

Deinicjuj zabezpieczony kryptograficznie generator liczb pseudolosowych (CSPRNG).

otPlatCryptoRandomGet

otError otPlatCryptoRandomGet(
  uint8_t *aBuffer,
  uint16_t aSize
)

Wypełnia dany bufor zabezpieczonymi kryptograficznie losowymi bajtami.

Szczegóły
Parametry
[out] aBuffer
Wskaźnik do bufora, który ma być wypełniany losowymi bajtami.
[in] aSize
Rozmiar bufora (liczba bajtów do wypełnienia).
Zwracane wartości
OT_ERROR_NONE
Bufor został wypełniony losowymi wartościami.
OT_ERROR_FAILED
Nie udało się wykonać operacji.

otPlatCryptoRandomInit

void otPlatCryptoRandomInit(
  void
)

Zainicjuj zabezpieczony kryptograficznie generator pseudolosowych liczb (CSPRNG).

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

Cofnij zainicjowanie operacji SHA-256.

Szczegóły
Parametry
[in] aContext
Kontekst operacji SHA-256.
Zwracane wartości
OT_ERROR_NONE
Zainicjowana operacja SHA-256 została cofnięta.
OT_ERROR_FAILED
Nie udało się cofnąć zainicjowania operacji SHA-256.
OT_ERROR_INVALID_ARGS
aContext zawiera wartość NULL

otPlatCryptoSha256Finish

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

Zakończ operację SHA-256.

Szczegóły
Parametry
[in] aContext
Kontekst operacji SHA-256.
[in] aHash
Wskaźnik do bufora danych wyjściowych, w którym musi być zapisany hasz.
[in] aHashSize
Długość pliku aHash w bajtach.
Zwracane wartości
OT_ERROR_NONE
Operacja dotycząca SHA-256 została wykonana.
OT_ERROR_FAILED
Nie udało się ukończyć operacji z użyciem SHA-256.
OT_ERROR_INVALID_ARGS
Wartość w kolumnie aContext lub aHash zawiera wartość NULL

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

Zainicjuj operację SHA-256.

Szczegóły
Parametry
[in] aContext
Kontekst operacji SHA-256.
Zwracane wartości
OT_ERROR_NONE
Operacja SHA-256 została zainicjowana.
OT_ERROR_FAILED
Nie udało się zainicjować operacji SHA-256.
OT_ERROR_INVALID_ARGS
aContext zawiera wartość NULL

otPlatCryptoSha256Start

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

Rozpocznij operację SHA-256.

Szczegóły
Parametry
[in] aContext
Kontekst operacji SHA-256.
Zwracane wartości
OT_ERROR_NONE
Operacja SHA-256 została rozpoczęta.
OT_ERROR_FAILED
Nie udało się uruchomić operacji z użyciem SHA-256.
OT_ERROR_INVALID_ARGS
aContext zawiera wartość NULL

otPlatCryptoSha256Update

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

Zaktualizuj operację SHA-256 o nowe dane wejściowe.

Szczegóły
Parametry
[in] aContext
Kontekst operacji SHA-256.
[in] aBuf
Wskaźnik do bufora wejściowego.
[in] aBufLength
Długość pliku aBuf w bajtach.
Zwracane wartości
OT_ERROR_NONE
SHA-256 został zaktualizowany z nową operacją wejściową.
OT_ERROR_FAILED
Nie udało się zaktualizować operacji SHA-256.
OT_ERROR_INVALID_ARGS
Wartość w kolumnie aContext lub aBuf zawiera wartość NULL

Makra

OT_CRYPTO_ECDSA_MAX_DER_SIZE

 OT_CRYPTO_ECDSA_MAX_DER_SIZE 125

Maksymalny rozmiar bufora (w bajtach) do reprezentowania pary kluczy EDCSA w formacie DER.

OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE

 OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE 64

Rozmiar bufora (w bajtach) na potrzeby reprezentowania klucza publicznego EDCSA.

OT_CRYPTO_ECDSA_SIGNATURE_SIZE

 OT_CRYPTO_ECDSA_SIGNATURE_SIZE 64

Rozmiar bufora (w bajtach) na potrzeby reprezentowania podpisu EDCSA.

OT_CRYPTO_PBDKF2_MAX_SALT_SIZE

 OT_CRYPTO_PBDKF2_MAX_SALT_SIZE 30

Maksymalna długość SALT w przypadku PBKDF2: prefiks z sól (6) + rozszerzona reguła panid (8) + nazwa sieci (16)

OT_CRYPTO_SHA256_HASH_SIZE

 OT_CRYPTO_SHA256_HASH_SIZE 32

Długość skrótu SHA256 (w bajtach).

Zasoby

Tematy referencyjne interfejsu OpenThread API pochodzą z kodu źródłowego dostępnego w GitHub. Aby dowiedzieć się więcej lub dołączyć do naszej dokumentacji, skorzystaj z sekcji Zasoby.