Cripto - 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 delle chiavi.
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 chiavi.

Typedef

otCryptoContext typedef
otCryptoKey typedef
struct otCryptoKey
otCryptoKeyRef typedef
uint32_t
Questo tipo di dati rappresenta il riferimento per la chiave.

Functions

otPlatCryptoAesEncrypt(otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Cripta i dati forniti.
otPlatCryptoAesFree(otCryptoContext *aContext)
Libera il contesto AES.
otPlatCryptoAesInit(otCryptoContext *aContext)
Inizializzare l'operazione AES.
otPlatCryptoAesSetKey(otCryptoContext *aContext, const otCryptoKey *aKey)
Imposta la chiave per il funzionamento dell'algoritmo AES.
otPlatCryptoDestroyKey(otCryptoKeyRef aKeyRef)
Elimina una chiave archiviata in PSA ITS.
otPlatCryptoExportKey(otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
Esporta una chiave archiviata in PSA ITS.
otPlatCryptoHasKey(otCryptoKeyRef aKeyRef)
bool
Verifica se il riferimento della chiave trasmesso ha una chiave associata 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 operazione HMAC.
otPlatCryptoHmacSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Aggiorna l'operazione HMAC con il 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 Crittografia.
otPlatCryptoRandomDeinit(void)
void
DeInizializza il generatore di numeri pseudocasuali con protezione crittografica (CSPRNG).
otPlatCryptoRandomGet(uint8_t *aBuffer, uint16_t aSize)
Riempi un determinato buffer con byte casuali crittografici sicuri.
otPlatCryptoRandomInit(void)
void
Inizializza un generatore di numeri pseudocasuali con protezione crittografica (CSPRNG).
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.

Punti ristoro

otCryptoContext

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

otCryptoKey

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

Enumerazioni

enumerazione anonima

 anonymous enum

Questa enumerazione definisce i flag di utilizzo delle chiavi.

Proprietà
OT_CRYPTO_KEY_USAGE_DECRYPT

Utilizzo chiave: ECB AES.

OT_CRYPTO_KEY_USAGE_ENCRYPT

Utilizzo chiave: crittografia (definita dal fornitore).

OT_CRYPTO_KEY_USAGE_EXPORT

Utilizzo chiave: la chiave può essere esportata.

OT_CRYPTO_KEY_USAGE_NONE

Utilizzo chiave: l'utilizzo della chiave è vuoto.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

Utilizzo chiave: HMAC SHA-256.

otCryptoKeyAlgorithm

 otCryptoKeyAlgorithm

Questa enumerazione definisce gli algoritmi delle chiavi.

Proprietà
OT_CRYPTO_KEY_ALG_AES_ECB

Algoritmo chiave: ECB AES.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

Algoritmo chiave: HMAC SHA-256.

OT_CRYPTO_KEY_ALG_VENDOR

Algoritmo chiave: definito dal fornitore.

otCryptoKeyStorage

 otCryptoKeyStorage

Questa enumerazione definisce i tipi di archiviazione delle chiavi.

Proprietà
OT_CRYPTO_KEY_STORAGE_PERSISTENT

Persistenza della chiave: la chiave è persistente.

OT_CRYPTO_KEY_STORAGE_VOLATILE

Persistenza delle chiavi: la chiave è volatile.

otCryptoKeyType

 otCryptoKeyType

Questa enumerazione definisce i tipi di chiavi.

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.

Typedef

otCryptoContext

struct otCryptoContext otCryptoContext

OtCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

Questo tipo di dati rappresenta il riferimento per la chiave.

Functions

otPlatCryptoAesEncrypt

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

Cripta i dati forniti.

Dettagli
Parametri
[in] aContext
Contesto per l'operazione AES.
[in] aInput
Puntatore nel buffer di input.
[in] aOutput
Puntatore nel buffer di output.
Valori restituiti
OT_ERROR_NONE
Crittografia aInput riuscita.
OT_ERROR_FAILED
Impossibile criptare aInput.
OT_ERROR_INVALID_ARGS
aContext, aKey o aOutput erano NULL

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

Libera il contesto AES.

Dettagli
Parametri
[in] aContext
Contesto per l'operazione AES.
Valori restituiti
OT_ERROR_NONE
Il contesto AES è stato liberato.
OT_ERROR_FAILED
Impossibile liberare il contesto AES.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

Inizializzare l'operazione AES.

Dettagli
Parametri
[in] aContext
Contesto per l'operazione AES.
Valori restituiti
OT_ERROR_NONE
Operazione AES inizializzata correttamente.
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 dell'algoritmo AES.

Dettagli
Parametri
[in] aContext
Contesto per l'operazione AES.
[out] aKey
Chiave da utilizzare per l'operazione AES.
Valori restituiti
OT_ERROR_NONE
Impostazione della chiave per l'operazione AES completata.
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
)

Elimina una chiave archiviata in PSA ITS.

Dettagli
Parametri
[in] aKeyRef
Il riferimento della chiave da eliminare
Valori restituiti
OT_ERROR_NONE
Eliminazione della chiave riuscita.
OT_ERROR_FAILED
Impossibile eliminare la chiave.

Chiave otPlatCryptoExport

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 della chiave da utilizzare per le operazioni di crittografia.
[out] aBuffer
Puntatore nel buffer in cui è necessario esportare la chiave.
[in] aBufferLen
Lunghezza del buffer passata per memorizzare la chiave esportata.
[out] aKeyLen
Puntatore per restituire la lunghezza della chiave esportata.
Valori restituiti
OT_ERROR_NONE
Esportazione di aKeyRef riuscita.
OT_ERROR_FAILED
Esportazione di aKeyRef non riuscita.
OT_ERROR_INVALID_ARGS
aBuffer era NULL

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

Verifica se il riferimento della chiave trasmesso ha una chiave associata in PSA ITS.

Dettagli
Parametri
[in] aKeyRef
Il riferimento per il controllo.
Valori restituiti
TRUE
Esiste una chiave associata con aKeyRef.
FALSE
Non esiste alcuna chiave associata con aKeyRef.

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Annulla l'inizializzazione del contesto HKDF.

Dettagli
Parametri
[in] aContext
Contesto dell'operazione HKDF.
Valori restituiti
OT_ERROR_NONE
Operazione HKDF non inizializzata correttamente.
OT_ERROR_FAILED
Impossibile annullare l'inizializzazione dell'operazione HKDF.
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
Lunghezza della sequenza di informazioni.
[out] aOutputKey
Punta la chiave di output.
[in] aOutputKeyLength
Dimensioni del buffer delle chiavi di output.
Valori restituiti
OT_ERROR_NONE
L'espansione HKDF è riuscita.
OT_ERROR_FAILED
Espansione HKDF non riuscita.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHkdfEstratto

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
Punta al sale per l'HKDF.
[in] aSaltLength
Lunghezza del sale.
[in] aInputKey
Posiziona il puntatore del mouse sul tasto di immissione.
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 dell'operazione HKDF.
Valori restituiti
OT_ERROR_NONE
Operazione AES inizializzata correttamente.
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 dell'operazione HMAC.
Valori restituiti
OT_ERROR_NONE
Operazione HMAC non inizializzata correttamente.
OT_ERROR_FAILED
Operazione HMAC non inizializzata non riuscita.
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 dell'operazione 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 dell'operazione HMAC.
Valori restituiti
OT_ERROR_NONE
Inizializzazione dell'operazione HMAC riuscita.
OT_ERROR_FAILED
Impossibile inizializzare l'operazione HMAC.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHmacSha256Start

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

Avvia operazione HMAC.

Dettagli
Parametri
[in] aContext
Contesto dell'operazione HMAC.
[in] aKey
Materiale della 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

otPlatCryptoHmacSha256Update

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

Aggiorna l'operazione HMAC con il nuovo input.

Dettagli
Parametri
[in] aContext
Contesto dell'operazione 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 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 la chiave OT_CRYPTO_KEY_STORAGE_PERSISTENT viene trasmessa per AKeyPersistence, aKeyRef viene inserito e la piattaforma deve utilizzare il valore AKeyRef specificato e DEVE non modificarlo. Se OT_CRYPTO_KEY_STORAGE_VOLATILE viene trasmesso per una chiave di chiave, viene restituito aKeyRef e il valore iniziale non è rilevante, mentre l'API della piattaforma DEVE aggiornarlo per restituire il nuovo riferimento chiave.

Dettagli
Parametri
[in,out] aKeyRef
Posiziona il puntatore del mouse sul riferimento della chiave da utilizzare per le operazioni di crittografia.
[in] aKeyType
Codifica del tipo di chiave per la chiave.
[in] aKeyAlgorithm
Codifica dell'algoritmo per la chiave.
[in] aKeyUsage
Codifica Utilizzo chiave della chiave (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
Importazione della chiave riuscita.
OT_ERROR_FAILED
Impossibile importare la chiave.
OT_ERROR_INVALID_ARGS
aKey impostato 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 Crittografia.

otPlatCryptoShuffleDeinit

void otPlatCryptoRandomDeinit(
  void
)

DeInizializza il generatore di numeri pseudocasuali con protezione crittografica (CSPRNG).

otPlatCryptorandomGet

otError otPlatCryptoRandomGet(
  uint8_t *aBuffer,
  uint16_t aSize
)

Riempi un determinato buffer con byte casuali crittografici sicuri.

Dettagli
Parametri
[out] aBuffer
Puntatore a un buffer da riempire con i byte casuali.
[in] aSize
Dimensione del buffer (numero di byte da riempire).
Valori restituiti
OT_ERROR_NONE
Buffer completato con valori casuali.
OT_ERROR_FAILED
Operazione non riuscita.

otPlatCryptorandomInit

void otPlatCryptoRandomInit(
  void
)

Inizializza un generatore di numeri pseudocasuali con protezione crittografica (CSPRNG).

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

Annulla l'inizializzazione dell'operazione SHA-256.

Dettagli
Parametri
[in] aContext
Contesto per l'operazione SHA-256.
Valori restituiti
OT_ERROR_NONE
Operazione SHA-256 non inizializzata correttamente.
OT_ERROR_FAILED
Impossibile annullare l'inizializzazione di 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 l'operazione 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 l'operazione SHA-256.
Valori restituiti
OT_ERROR_NONE
Inizializzazione dell'operazione SHA-256 riuscita.
OT_ERROR_FAILED
Impossibile inizializzare l'operazione SHA-256.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoSha256Avvia

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

Avvia l'operazione SHA-256.

Dettagli
Parametri
[in] aContext
Contesto per l'operazione 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

otPlatCryptoSha256Update

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 l'operazione 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 nuova operazione di input.
OT_ERROR_FAILED
Impossibile aggiornare l'operazione SHA-256.
OT_ERROR_INVALID_ARGS
aContext o aBuf era NULL

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per ulteriori informazioni, o per contribuire alla nostra documentazione, consulta la pagina Risorse.