Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Crittografia - Piattaforma

Questo modulo include l'astrazione della piattaforma per la crittografia.

Riepilogo

Enumerazioni

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
Questa enumerazione definisce i flag di utilizzo delle chiavi.
otCryptoKeyAlgorithm{
  OT_CRYPTO_KEY_ALG_VENDOR,
  OT_CRYPTO_KEY_ALG_AES_ECB,
  OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
enum
Questa enumerazione definisce gli algoritmi chiave.
otCryptoKeyStorage{
  OT_CRYPTO_KEY_STORAGE_VOLATILE,
  OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
enum
Questa enumerazione definisce i tipi di archiviazione delle chiavi.
otCryptoKeyType{
  OT_CRYPTO_KEY_TYPE_RAW,
  OT_CRYPTO_KEY_TYPE_AES,
  OT_CRYPTO_KEY_TYPE_HMAC
}
enum
Questa enumerazione definisce i tipi di chiave.

Defin

otCryptoContext Typedef
otCryptoKey Typedef
struct otCryptoKey
otCryptoKeyRef Typedef
uint32_t
Questo tipo di dati rappresenta il riferimento chiave.
otPlatCryptoEcdsaKeyPair Typedef
otPlatCryptoEcdsaPublicKey Typedef
otPlatCryptoEcdsaSignature Typedef
otPlatCryptoSha256Hash Typedef
Questa struttura rappresenta un hash SHA-256.

Variabili

OT_TOOL_PACKED_END

Functions

otPlatCryptoAesEncrypt(otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Cripta i dati specificati.
otPlatCryptoAesFree(otCryptoContext *aContext)
Liberare il contesto AES.
otPlatCryptoAesInit(otCryptoContext *aContext)
Inizializzare l'operazione AES.
otPlatCryptoAesSetKey(otCryptoContext *aContext, const otCryptoKey *aKey)
Imposta la chiave per il funzionamento AES.
otPlatCryptoDestroyKey(otCryptoKeyRef aKeyRef)
Distruggi una chiave archiviata in PSA ITS.
otPlatCryptoEcdsaGenerateKey(otPlatCryptoEcdsaKeyPair *aKeyPair)
Genera e compila il buffer di output con una nuova coppia di chiavi ECDSA.
otPlatCryptoEcdsaGetPublicKey(const otPlatCryptoEcdsaKeyPair *aKeyPair, otPlatCryptoEcdsaPublicKey *aPublicKey)
Recupera la chiave pubblica associata dal contesto di input.
otPlatCryptoEcdsaSign(const otPlatCryptoEcdsaKeyPair *aKeyPair, const otPlatCryptoSha256Hash *aHash, otPlatCryptoEcdsaSignature *aSignature)
Calcola la firma ECDSA per un messaggio sottoposto ad hashing utilizzando la chiave privata nel contesto di input.
otPlatCryptoEcdsaVerify(const otPlatCryptoEcdsaPublicKey *aPublicKey, const otPlatCryptoSha256Hash *aHash, const otPlatCryptoEcdsaSignature *aSignature)
Utilizza la chiave del contesto di input per verificare la firma ECDSA di un messaggio sottoposto ad hashing.
otPlatCryptoExportKey(otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
Esporta una chiave archiviata in PSA ITS.
otPlatCryptoHasKey(otCryptoKeyRef aKeyRef)
bool
Controlla se al riferimento riferimento della chiave è associata una chiave in PSA ITS.
otPlatCryptoHkdfDeinit(otCryptoContext *aContext)
Annulla l'inizializzazione del contesto HKDF.
otPlatCryptoHkdfExpand(otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
Esegui il passaggio di espansione HKDF.
otPlatCryptoHkdfExtract(otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
Esegui il passaggio di estrazione HKDF.
otPlatCryptoHkdfInit(otCryptoContext *aContext)
Inizializzare il contesto HKDF.
otPlatCryptoHmacSha256Deinit(otCryptoContext *aContext)
Annulla l'inizializzazione dell'operazione HMAC.
otPlatCryptoHmacSha256Finish(otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
Completa l'operazione HMAC.
otPlatCryptoHmacSha256Init(otCryptoContext *aContext)
Inizializzare l'operazione HMAC.
otPlatCryptoHmacSha256Start(otCryptoContext *aContext, const otCryptoKey *aKey)
Avvia l'operazione HMAC.
otPlatCryptoHmacSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Aggiorna l'operazione HMAC con un nuovo input.
otPlatCryptoImportKey(otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
Importa una chiave in PSA ITS.
otPlatCryptoInit(void)
void
Inizializza il modulo Cripto.
otPlatCryptoRandomDeinit(void)
void
Deinizializzare il generatore di numeri pseudocasuali (CSPRNG) con sicurezza crittografica.
otPlatCryptoRandomGet(uint8_t *aBuffer, uint16_t aSize)
Riempie un determinato buffer con byte casuali protetti da crittografia.
otPlatCryptoRandomInit(void)
void
Inizializza generatore di numeri pseudocasuali (CSPRNG) con sicurezza crittografica.
otPlatCryptoSha256Deinit(otCryptoContext *aContext)
Annulla l'inizializzazione dell'operazione SHA-256.
otPlatCryptoSha256Finish(otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
Completa l'operazione SHA-256.
otPlatCryptoSha256Init(otCryptoContext *aContext)
Inizializza l'operazione SHA-256.
otPlatCryptoSha256Start(otCryptoContext *aContext)
Avvia l'operazione SHA-256.
otPlatCryptoSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Aggiorna l'operazione SHA-256 con il nuovo input.

Struttura

otCryptoContext

Questa struttura archivia l'oggetto di contesto per le API della piattaforma.

CryptoKey

Questa struttura rappresenta il materiale delle chiavi richiesto per le operazioni sulle criptovalute.

otPlatCryptoEcdsaKeyPair

Questa struttura rappresenta una coppia di chiavi ECDSA (chiavi pubbliche e private).

otPlatCryptoEcdsaPublicKey

Questo schema rappresenta una chiave pubblica ECDSA.

Firma otPlatCryptoEcdsa

Questa struttura rappresenta una firma ECDSA.

Hash di PlatCryptoSha256Hash

Questa struttura rappresenta un hash SHA-256.

Enumerazioni

enumerazione anonima

 anonymous enum

Questa enumerazione definisce i flag di utilizzo delle chiavi.

Proprietà
OT_CRYPTO_KEY_USAGE_DECRYPT

Utilizzo chiave: AES ECB.

OT_CRYPTO_KEY_USAGE_ENCRYPT

Utilizzo delle chiavi: crittografia (definita dal fornitore).

OT_CRYPTO_KEY_USAGE_EXPORT

Utilizzo della chiave: la chiave può essere esportata.

OT_CRYPTO_KEY_USAGE_NONE

Utilizzo chiave: utilizzo della chiave vuoto.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

Utilizzo delle chiavi: HMAC SHA-256.

Algoritmo otCryptoKey

 otCryptoKeyAlgorithm

Questa enumerazione definisce gli algoritmi chiave.

Proprietà
OT_CRYPTO_KEY_ALG_AES_ECB

Algoritmo chiave: AES ECB.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

Algoritmo chiave: HMAC SHA-256.

OT_CRYPTO_KEY_ALG_VENDOR

Algoritmo chiavi: definito dal fornitore.

CryptoKeyStorage

 otCryptoKeyStorage

Questa enumerazione definisce i tipi di archiviazione delle chiavi.

Proprietà
OT_CRYPTO_KEY_STORAGE_PERSISTENT

Persistenza della chiave: la chiave è permanente.

OT_CRYPTO_KEY_STORAGE_VOLATILE

Persistenza della chiave: la chiave è volatile.

otCryptoKeyType

 otCryptoKeyType

Questa enumerazione definisce i tipi di chiave.

Proprietà
OT_CRYPTO_KEY_TYPE_AES

Tipo di chiave: AES.

OT_CRYPTO_KEY_TYPE_HMAC

Tipo di chiave: HMAC.

OT_CRYPTO_KEY_TYPE_RAW

Tipo di chiave: dati non elaborati.

Defin

otCryptoContext

struct otCryptoContext otCryptoContext

CryptoKey

struct otCryptoKey otCryptoKey

OtCryptoKeyRef

uint32_t otCryptoKeyRef

Questo tipo di dati rappresenta il riferimento chiave.

otPlatCryptoEcdsaKeyPair

struct otPlatCryptoEcdsaKeyPair otPlatCryptoEcdsaKeyPair

otPlatCryptoEcdsaPublicKey

struct otPlatCryptoEcdsaPublicKey otPlatCryptoEcdsaPublicKey

Firma otPlatCryptoEcdsa

struct otPlatCryptoEcdsaSignature otPlatCryptoEcdsaSignature

otPlatCryptoSha256Hash

struct otPlatCryptoSha256Hash otPlatCryptoSha256Hash

Questa struttura rappresenta un hash SHA-256.

Variabili

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otPlatCryptoSha256Hash OT_TOOL_PACKED_END

Functions

Crittografia otPlat

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

Cripta i dati specificati.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento AES.
[in] aInput
Posiziona il puntatore del mouse sul buffer di input.
[in] aOutput
Posiziona il puntatore del mouse sul buffer di output.
Valori restituiti
OT_ERROR_NONE
aInput criptato correttamente.
OT_ERROR_FAILED
Impossibile criptare aInput.
OT_ERROR_INVALID_ARGS
aContext, aKey o aOutput erano NULL

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

Liberare il contesto AES.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento AES.
Valori restituiti
OT_ERROR_NONE
Il contesto AES è stato liberato.
OT_ERROR_FAILED
Liberazione del contesto AES non riuscita.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

Inizializzare l'operazione AES.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento AES.
Valori restituiti
OT_ERROR_NONE
Operazione AES inizializzata.
OT_ERROR_FAILED
Impossibile inizializzare l'operazione AES.
OT_ERROR_INVALID_ARGS
aContext era NULL
OT_ERROR_NO_BUFS
Impossibile allocare il contesto.

OtPlatCryptoAesSetKey

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

Imposta la chiave per il funzionamento AES.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento AES.
[out] aKey
Chiave da utilizzare per il funzionamento AES.
Valori restituiti
OT_ERROR_NONE
Impostazione della chiave per l'operazione AES riuscita.
OT_ERROR_FAILED
Impossibile impostare la chiave per l'operazione AES.
OT_ERROR_INVALID_ARGS
aContext o aKey era NULL

OtPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

Distruggi una chiave archiviata in PSA ITS.

Dettagli
Parametri
[in] aKeyRef
Il riferimento chiave da eliminare
Valori restituiti
OT_ERROR_NONE
Chiave eliminata correttamente.
OT_ERROR_FAILED
Impossibile eliminare la chiave.

otPlatCryptoEcdsaGenerateKey

otError otPlatCryptoEcdsaGenerateKey(
  otPlatCryptoEcdsaKeyPair *aKeyPair
)

Genera e compila il buffer di output con una nuova coppia di chiavi ECDSA.

Dettagli
Parametri
[out] aKeyPair
Un puntatore a una struttura di coppie di chiavi ECDSA in cui memorizzare la coppia di chiavi generata.
Valori restituiti
OT_ERROR_NONE
È stata generata una nuova coppia di chiavi.
OT_ERROR_NO_BUFS
Impossibile allocare il buffer per la generazione di chiavi.
OT_ERROR_NOT_CAPABLE
Funzione non supportata.
OT_ERROR_FAILED
Impossibile generare una coppia di chiavi.

otPlatCryptoEcdsaGetPublicKey

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

Recupera la chiave pubblica associata dal contesto di input.

Dettagli
Parametri
[in] aKeyPair
Un puntatore a una struttura di coppie di chiavi ECDSA in cui è archiviata.
[out] aPublicKey
Un puntatore a una struttura di chiavi pubbliche ECDSA per archiviare la chiave pubblica.
Valori restituiti
OT_ERROR_NONE
La chiave pubblica è stata recuperata. aBuffer è stato aggiornato.
OT_ERROR_PARSE
Impossibile analizzare il formato DER delle coppie di chiavi (formato non valido).
OT_ERROR_INVALID_ARGS
Il aContext è NULL.

OtPlatCryptoEcdsaSign

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

Calcola la firma ECDSA per un messaggio sottoposto ad hashing utilizzando la chiave privata nel contesto di input.

Questo metodo utilizza la procedura di generazione deterministica della firma digitale di RFC 6979.

Dettagli
Parametri
[in] aKeyPair
Un puntatore a una struttura di coppie di chiavi ECDSA in cui è archiviata.
[in] aHash
Un puntatore a una struttura hash SHA-256 in cui è archiviato il valore hash per il calcolo della firma.
[out] aSignature
Un puntatore a una struttura di firma ECDSA per generare la firma calcolata.
Valori restituiti
OT_ERROR_NONE
La firma è stata calcolata. Il giorno aSignature è stato aggiornato.
OT_ERROR_PARSE
Impossibile analizzare il formato DER delle coppie di chiavi (formato non valido).
OT_ERROR_NO_BUFS
Impossibile allocare il buffer per il calcolo della firma.
OT_ERROR_INVALID_ARGS
Il aContext è NULL.

otPlatCryptoEcdsaVerify

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

Utilizza la chiave del contesto di input per verificare la firma ECDSA di un messaggio sottoposto ad hashing.

Dettagli
Parametri
[in] aPublicKey
Un puntatore a una struttura di chiavi pubbliche ECDSA in cui è archiviata la chiave pubblica per la verifica della firma.
[in] aHash
Un puntatore a una struttura hash SHA-256 in cui è archiviato il valore hash per la verifica della firma.
[in] aSignature
Un puntatore a una struttura di firma ECDSA in cui è archiviato il valore della firma da verificare.
Valori restituiti
OT_ERROR_NONE
La firma è stata verificata.
OT_ERROR_SECURITY
La firma non è valida.
OT_ERROR_INVALID_ARGS
La chiave o l'hash non sono validi.
OT_ERROR_NO_BUFS
Impossibile allocare il buffer per la verifica della firma.

otPlatCryptoExportKey

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

Esporta una chiave archiviata in PSA ITS.

Dettagli
Parametri
[in] aKeyRef
Il riferimento chiave da utilizzare per le operazioni di crittografia.
[out] aBuffer
Posiziona il puntatore del mouse sul buffer dove deve essere esportata la chiave.
[in] aBufferLen
Lunghezza del buffer passato per l'archiviazione della chiave esportata.
[out] aKeyLen
Puntatore per restituire la lunghezza della chiave esportata.
Valori restituiti
OT_ERROR_NONE
Esportazione di aKeyRef completata.
OT_ERROR_FAILED
Impossibile esportare aKeyRef.
OT_ERROR_INVALID_ARGS
aBuffer era NULL

OtPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

Controlla se al riferimento riferimento della chiave è associata una chiave in PSA ITS.

Dettagli
Parametri
[in] aKeyRef
Il riferimento chiave da controllare.
Valori restituiti
TRUE
Esiste una chiave associata con aKeyRef.
FALSE
Non esiste alcuna chiave associata a aKeyRef.

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Annulla l'inizializzazione del contesto HKDF.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento HKDF.
Valori restituiti
OT_ERROR_NONE
Operazione HKDF annullata.
OT_ERROR_FAILED
Impossibile annullare l'operazione HKDF inizializzata.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHkdfEspandi

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

Esegui il passaggio di espansione HKDF.

Dettagli
Parametri
[in] aContext
Contesto dell'operazione per l'operazione HKDF.
[in] aInfo
Posiziona il cursore del mouse sulla sequenza di informazioni.
[in] aInfoLength
Durata della sequenza di informazioni.
[out] aOutputKey
Posiziona il puntatore del mouse sulla chiave di output.
[in] aOutputKeyLength
Dimensione del buffer della chiave di output.
Valori restituiti
OT_ERROR_NONE
Espansione del numero HKDF riuscita.
OT_ERROR_FAILED
Espansione HKDF non riuscita.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHkdfEstrai

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

Esegui il passaggio di estrazione HKDF.

Dettagli
Parametri
[in] aContext
Contesto dell'operazione per l'operazione HKDF.
[in] aSalt
Puntatore al sale per HKDF.
[in] aSaltLength
Lunghezza del sale.
[in] aInputKey
Posiziona il puntatore del mouse sul tasto di ingresso.
Valori restituiti
OT_ERROR_NONE
L'estrazione HKDF è riuscita.
OT_ERROR_FAILED
Estrazione HKDF non riuscita.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

Inizializzare il contesto HKDF.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento HKDF.
Valori restituiti
OT_ERROR_NONE
Operazione AES inizializzata.
OT_ERROR_FAILED
Impossibile inizializzare l'operazione AES.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

Annulla l'inizializzazione dell'operazione HMAC.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento HMAC.
Valori restituiti
OT_ERROR_NONE
Operazione HMAC annullata.
OT_ERROR_FAILED
Impossibile inizializzare l'operazione HMAC.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHmacSha256Fine

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

Completa l'operazione HMAC.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento HMAC.
[out] aBuf
Un puntatore al buffer di output.
[in] aBufLength
La lunghezza di aBuf in byte.
Valori restituiti
OT_ERROR_NONE
Operazione HMAC completata.
OT_ERROR_FAILED
Impossibile completare l'operazione HMAC.
OT_ERROR_INVALID_ARGS
aContext o aBuf era NULL

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

Inizializzare l'operazione HMAC.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento HMAC.
Valori restituiti
OT_ERROR_NONE
Operazione HMAC inizializzata.
OT_ERROR_FAILED
Impossibile inizializzare l'operazione HMAC.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHmacSha256Avvia

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

Avvia l'operazione HMAC.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento HMAC.
[in] aKey
Materiale chiave da utilizzare per il funzionamento HMAC.
Valori restituiti
OT_ERROR_NONE
Operazione HMAC avviata.
OT_ERROR_FAILED
Impossibile avviare l'operazione HMAC.
OT_ERROR_INVALID_ARGS
aContext o aKey era NULL

Aggiornamento otPlatCryptoHmacSha256

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

Aggiorna l'operazione HMAC con un nuovo input.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento HMAC.
[in] aBuf
Un puntatore al buffer di input.
[in] aBufLength
La lunghezza di aBuf in byte.
Valori restituiti
OT_ERROR_NONE
HMAC aggiornato con una nuova operazione di input.
OT_ERROR_FAILED
Impossibile aggiornare l'operazione HMAC.
OT_ERROR_INVALID_ARGS
aContext o aBuf era NULL

otPlatCryptoImportKey

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

Importa una chiave in PSA ITS.

Nota: se OT_CRYPTO_KEY_STORAGE_PERSISTENT viene passato per aKeyPersistence, viene inserito aKeyRef e la piattaforma deve utilizzare il valore aKeyRef specificato e DEVE non modificarlo. Se viene trasmesso OT_CRYPTO_KEY_STORAGE_VOLATILE per aKeyPersistence, viene prodotto aKeyRef, il valore iniziale non è importante. L'API della piattaforma DEVE aggiornarla per restituire il nuovo riferimento chiave.

Dettagli
Parametri
[in,out] aKeyRef
Posiziona il puntatore del mouse sul riferimento chiave da utilizzare per le operazioni di crittografia.
[in] aKeyType
Codifica del tipo di chiave per la chiave.
[in] aKeyAlgorithm
Codifica dell'algoritmo della chiave per la chiave.
[in] aKeyUsage
Codifica dell'utilizzo delle chiavi (combinazioni di OT_CRYPTO_KEY_USAGE_*).
[in] aKeyPersistence
Persistenza della chiave per questa chiave
[in] aKey
Chiave effettiva da importare.
[in] aKeyLen
Lunghezza della chiave da importare.
Valori restituiti
OT_ERROR_NONE
Chiave importata correttamente.
OT_ERROR_FAILED
Impossibile importare la chiave.
OT_ERROR_INVALID_ARGS
L'impostazione aKey è stata impostata su NULL.

Questa API viene utilizzata dal core OT solo quando OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE è abilitato.

otPlatCryptoInit

void otPlatCryptoInit(
  void
)

Inizializza il modulo Cripto.

otPlatCryptorandomDeinit

void otPlatCryptoRandomDeinit(
  void
)

Deinizializzare il generatore di numeri pseudocasuali (CSPRNG) con sicurezza crittografica.

otPlatCryptorandomGet

otError otPlatCryptoRandomGet(
  uint8_t *aBuffer,
  uint16_t aSize
)

Riempie un determinato buffer con byte casuali protetti da crittografia.

Dettagli
Parametri
[out] aBuffer
Un puntatore a un buffer da riempire con i byte casuali.
[in] aSize
Dimensioni del buffer (numero di byte da riempire).
Valori restituiti
OT_ERROR_NONE
Riempimento del buffer con valori casuali riuscito.
OT_ERROR_FAILED
Operazione non riuscita.

otPlatCryptorandomInit

void otPlatCryptoRandomInit(
  void
)

Inizializza generatore di numeri pseudocasuali (CSPRNG) con sicurezza crittografica.

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

Annulla l'inizializzazione dell'operazione SHA-256.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento SHA-256.
Valori restituiti
OT_ERROR_NONE
Operazione SHA-256 inizializzazione annullata.
OT_ERROR_FAILED
Impossibile annullare l'inizializzazione dell'operazione SHA-256.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoSha256Fine

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

Completa l'operazione SHA-256.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento SHA-256.
[in] aHash
Un puntatore al buffer di output, in cui deve essere memorizzato l'hash.
[in] aHashSize
La lunghezza di aHash in byte.
Valori restituiti
OT_ERROR_NONE
Operazione SHA-256 completata.
OT_ERROR_FAILED
Impossibile completare l'operazione SHA-256.
OT_ERROR_INVALID_ARGS
aContext o aHash era NULL

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

Inizializza l'operazione SHA-256.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento SHA-256.
Valori restituiti
OT_ERROR_NONE
Operazione SHA-256 inizializzata correttamente.
OT_ERROR_FAILED
Impossibile inizializzare l'operazione SHA-256.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoSha256Start

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

Avvia l'operazione SHA-256.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento SHA-256.
Valori restituiti
OT_ERROR_NONE
Operazione SHA-256 avviata.
OT_ERROR_FAILED
Impossibile avviare l'operazione SHA-256.
OT_ERROR_INVALID_ARGS
aContext era NULL

Aggiornamento otPlatCryptoSha256

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

Aggiorna l'operazione SHA-256 con il nuovo input.

Dettagli
Parametri
[in] aContext
Contesto per il funzionamento SHA-256.
[in] aBuf
Un puntatore al buffer di input.
[in] aBufLength
La lunghezza di aBuf in byte.
Valori restituiti
OT_ERROR_NONE
SHA-256 aggiornato con una nuova operazione di input.
OT_ERROR_FAILED
Impossibile aggiornare l'operazione SHA-256.
OT_ERROR_INVALID_ARGS
aContext o aBuf era NULL

Macro

OT_CRYPTO_ECDSA_MAX_DER_SIZE

 OT_CRYPTO_ECDSA_MAX_DER_SIZE 125

Dimensione massima del buffer (in byte) per rappresentare la coppia di chiavi EDCSA in formato DER.

OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE

 OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE 64

Dimensioni del buffer (in byte) per rappresentare la chiave pubblica EDCSA.

OT_CRYPTO_ECDSA_SIGNATURE_SIZE

 OT_CRYPTO_ECDSA_SIGNATURE_SIZE 64

Dimensioni del buffer (in byte) per rappresentare la firma EDCSA.

OT_CRYPTO_SHA256_HASH_SIZE

 OT_CRYPTO_SHA256_HASH_SIZE 32

Lunghezza dell'hash SHA256 (in byte).

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per scoprire di più o per contribuire alla nostra documentazione, consulta le Risorse.