Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Plat-cripto

Este módulo incluye la abstracción de la plataforma para Crypto.

Resumen

Enumeraciones

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
}
enumeración
Esta enumeración define los indicadores de uso de claves.
otCryptoKeyAlgorithm {
OT_CRYPTO_KEY_ALG_VENDOR ,
OT_CRYPTO_KEY_ALG_AES_ECB ,
OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
enumeración
Esta enumeración define los algoritmos clave.
otCryptoKeyStorage {
OT_CRYPTO_KEY_STORAGE_VOLATILE ,
OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
enumeración
Esta enumeración define los tipos de almacenamiento de claves.
otCryptoKeyType {
OT_CRYPTO_KEY_TYPE_RAW ,
OT_CRYPTO_KEY_TYPE_AES ,
OT_CRYPTO_KEY_TYPE_HMAC
}
enumeración
Esta enumeración define los tipos de claves.

Typedefs

otCryptoContext typedef
otCryptoKey typedef
struct otCryptoKey
otCryptoKeyRef typedef
uint32_t
Este tipo de datos representa la referencia clave.

Funciones

otPlatCryptoAesEncrypt ( otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Cifre los datos proporcionados.
otPlatCryptoAesFree ( otCryptoContext *aContext)
Libera el contexto AES.
otPlatCryptoAesInit ( otCryptoContext *aContext)
Inicialice la operación AES.
otPlatCryptoAesSetKey ( otCryptoContext *aContext, const otCryptoKey *aKey)
Configure la clave para la operación AES.
otPlatCryptoDestroyKey ( otCryptoKeyRef aKeyRef)
Destruye una clave almacenada en PSA ITS.
otPlatCryptoExportKey ( otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
Exportar una clave almacenada en PSA ITS.
otPlatCryptoHasKey ( otCryptoKeyRef aKeyRef)
bool
Compruebe si la referencia de clave pasada tiene una clave asociada en PSA ITS.
otPlatCryptoHkdfDeinit ( otCryptoContext *aContext)
Anule la inicialización del contexto HKDF.
otPlatCryptoHkdfExpand ( otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
Realice el paso Expandir HKDF.
otPlatCryptoHkdfExtract ( otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
Realice el paso de extracción de HKDF.
otPlatCryptoHkdfInit ( otCryptoContext *aContext)
Inicialice el contexto HKDF.
otPlatCryptoHmacSha256Deinit ( otCryptoContext *aContext)
Anule la inicialización de la operación HMAC.
otPlatCryptoHmacSha256Finish ( otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
Complete la operación HMAC.
otPlatCryptoHmacSha256Init ( otCryptoContext *aContext)
Inicialice la operación HMAC.
otPlatCryptoHmacSha256Start ( otCryptoContext *aContext, const otCryptoKey *aKey)
Inicie la operación HMAC.
otPlatCryptoHmacSha256Update ( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Actualice la operación de HMAC con una nueva entrada.
otPlatCryptoImportKey ( otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
Importe una clave en PSA ITS.
otPlatCryptoInit (void)
Inicialice el módulo Crypto.
otPlatCryptoSha256Deinit ( otCryptoContext *aContext)
Anule la inicialización de la operación SHA-256.
otPlatCryptoSha256Finish ( otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
Finaliza la operación SHA-256.
otPlatCryptoSha256Init ( otCryptoContext *aContext)
Inicialice la operación SHA-256.
otPlatCryptoSha256Start ( otCryptoContext *aContext)
Inicie la operación SHA-256.
otPlatCryptoSha256Update ( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Actualice la operación SHA-256 con una nueva entrada.

Estructuras

otCryptoContext

Esta estructura almacena el objeto de contexto para las API de la plataforma.

otCryptoKey

Esta estructura representa el material clave necesario para las operaciones de cifrado.

Enumeraciones

enumeración anónima

 anonymous enum

Esta enumeración define los indicadores de uso de claves.

Propiedades
OT_CRYPTO_KEY_USAGE_DECRYPT

Uso clave: AES ECB.

OT_CRYPTO_KEY_USAGE_ENCRYPT

Uso de la clave: cifrado (definido por el proveedor).

OT_CRYPTO_KEY_USAGE_EXPORT

Uso de la clave: la clave se puede exportar.

OT_CRYPTO_KEY_USAGE_NONE

Uso de clave: El uso de clave está vacío.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

Uso de clave: HMAC SHA-256.

otCryptoKeyAlgorithm

 otCryptoKeyAlgorithm

Esta enumeración define los algoritmos clave.

Propiedades
OT_CRYPTO_KEY_ALG_AES_ECB

Algoritmo clave: AES ECB.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

Algoritmo clave: HMAC SHA-256.

OT_CRYPTO_KEY_ALG_VENDOR

Algoritmo clave: definido por el proveedor.

otCryptoKeyStorage

 otCryptoKeyStorage

Esta enumeración define los tipos de almacenamiento de claves.

Propiedades
OT_CRYPTO_KEY_STORAGE_PERSISTENT

Persistencia de la clave: la clave es persistente.

OT_CRYPTO_KEY_STORAGE_VOLATILE

Persistencia de la clave: la clave es volátil.

otCryptoKeyType

 otCryptoKeyType

Esta enumeración define los tipos de claves.

Propiedades
OT_CRYPTO_KEY_TYPE_AES

Tipo de clave: AES.

OT_CRYPTO_KEY_TYPE_HMAC

Tipo de clave: HMAC.

OT_CRYPTO_KEY_TYPE_RAW

Tipo de clave: datos brutos.

Typedefs

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

Este tipo de datos representa la referencia clave.

Funciones

otPlatCryptoAesEncrypt

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

Cifre los datos proporcionados.

Detalles
Parámetros
[in] aContext
Contexto de la operación AES.
[in] aInput
Puntero al búfer de entrada.
[in] aOutput
Puntero al búfer de salida.
Valores devueltos
OT_ERROR_NONE
Con éxito cifrado aInput .
OT_ERROR_FAILED
No se pudo cifrar aInput .
OT_ERROR_INVALID_ARGS
aContext o aKey o aOutput eran NULL

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

Libera el contexto AES.

Detalles
Parámetros
[in] aContext
Contexto de la operación AES.
Valores devueltos
OT_ERROR_NONE
Se liberó con éxito el contexto AES.
OT_ERROR_FAILED
No se pudo liberar el contexto de AES.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

Inicialice la operación AES.

Detalles
Parámetros
[in] aContext
Contexto de la operación AES.
Valores devueltos
OT_ERROR_NONE
Operación AES inicializada con éxito.
OT_ERROR_FAILED
Error al inicializar la operación AES.
OT_ERROR_INVALID_ARGS
aContext era NULL
OT_ERROR_NO_BUFS
No se puede asignar el contexto.

otPlatCryptoAesSetKey

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

Configure la clave para la operación AES.

Detalles
Parámetros
[in] aContext
Contexto de la operación AES.
[out] aKey
Clave a utilizar para la operación AES.
Valores devueltos
OT_ERROR_NONE
Estableció correctamente la clave para la operación AES.
OT_ERROR_FAILED
No se pudo configurar la clave para la operación AES.
OT_ERROR_INVALID_ARGS
aContext o aKey era NULL

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

Destruye una clave almacenada en PSA ITS.

Detalles
Parámetros
[in] aKeyRef
La referencia clave para ser destruida
Valores devueltos
OT_ERROR_NONE
Destruyó con éxito la llave.
OT_ERROR_FAILED
No se pudo destruir la llave.

otPlatCryptoExportKey

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

Exportar una clave almacenada en PSA ITS.

Detalles
Parámetros
[in] aKeyRef
La referencia de clave que se utilizará para operaciones criptográficas.
[out] aBuffer
Puntero al búfer donde se debe exportar la clave.
[in] aBufferLen
Longitud del búfer pasado para almacenar la clave exportada.
[out] aKeyLen
Puntero para devolver la longitud de la clave exportada.
Valores devueltos
OT_ERROR_NONE
Exportados satisfactoriamente aKeyRef .
OT_ERROR_FAILED
No se ha podido exportar aKeyRef .
OT_ERROR_INVALID_ARGS
aBuffer era NULL

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

Compruebe si la referencia de clave pasada tiene una clave asociada en PSA ITS.

Detalles
Parámetros
[in] aKeyRef
La referencia clave para comprobar.
Valores devueltos
TRUE
Hay una clave asociada con aKeyRef .
FALSE
No hay una clave asociada con aKeyRef .

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Anule la inicialización del contexto HKDF.

Detalles
Parámetros
[in] aContext
Contexto para la operación HKDF.
Valores devueltos
OT_ERROR_NONE
Operación HKDF sin inicializar correctamente.
OT_ERROR_FAILED
Error al no inicializar la operación HKDF.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHkdfExpand

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

Realice el paso Expandir HKDF.

Detalles
Parámetros
[in] aContext
Contexto de operación para la operación HKDF.
[in] aInfo
Puntero a la secuencia de información.
[in] aInfoLength
Duración de la secuencia de información.
[out] aOutputKey
Puntero a la clave de salida.
[in] aOutputKeyLength
Tamaño del búfer de clave de salida.
Valores devueltos
OT_ERROR_NONE
HKDF Expand se realizó correctamente.
OT_ERROR_FAILED
Error al expandir HKDF.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHkdfExtract

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

Realice el paso de extracción de HKDF.

Detalles
Parámetros
[in] aContext
Contexto de operación para la operación HKDF.
[in] aSalt
Puntero a la sal para HKDF.
[in] aInfoLength
longitud de sal.
[in] aInputKey
Puntero a la tecla de entrada.
Valores devueltos
OT_ERROR_NONE
El extracto de HKDF se realizó correctamente.
OT_ERROR_FAILED
Error en la extracción de HKDF.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

Inicialice el contexto HKDF.

Detalles
Parámetros
[in] aContext
Contexto para la operación de HKDF.
Valores devueltos
OT_ERROR_NONE
Operación AES inicializada con éxito.
OT_ERROR_FAILED
Error al inicializar la operación AES.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

Anule la inicialización de la operación HMAC.

Detalles
Parámetros
[in] aContext
Contexto para la operación de HMAC.
Valores devueltos
OT_ERROR_NONE
Operación HMAC sin inicializar con éxito.
OT_ERROR_FAILED
Error al no inicializar la operación de HMAC.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHmacSha256Finish

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

Complete la operación HMAC.

Detalles
Parámetros
[in] aContext
Contexto para la operación de HMAC.
[out] aBuf
Un puntero al búfer de salida.
[in] aBufLength
La longitud de aBuf en bytes.
Valores devueltos
OT_ERROR_NONE
Operación HMAC completada con éxito.
OT_ERROR_FAILED
No se pudo completar la operación de HMAC.
OT_ERROR_INVALID_ARGS
aContext o aBuf era NULL

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

Inicialice la operación HMAC.

Detalles
Parámetros
[in] aContext
Contexto para la operación de HMAC.
Valores devueltos
OT_ERROR_NONE
Operación de HMAC inicializada con éxito.
OT_ERROR_FAILED
No se pudo inicializar la operación de HMAC.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHmacSha256Start

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

Inicie la operación HMAC.

Detalles
Parámetros
[in] aContext
Contexto para la operación de HMAC.
[in] aKey
Material clave que se utilizará para la operación de HMAC.
Valores devueltos
OT_ERROR_NONE
Se inició con éxito la operación de HMAC.
OT_ERROR_FAILED
No se pudo iniciar la operación de HMAC.
OT_ERROR_INVALID_ARGS
aContext o aKey era NULL

otPlatCryptoHmacSha256Update

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

Actualice la operación de HMAC con una nueva entrada.

Detalles
Parámetros
[in] aContext
Contexto para la operación de HMAC.
[in] aBuf
Un puntero al búfer de entrada.
[in] aBufLength
La longitud de aBuf en bytes.
Valores devueltos
OT_ERROR_NONE
HMAC actualizado con éxito con una nueva operación de entrada.
OT_ERROR_FAILED
No se pudo actualizar la operación de 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
)

Importe una clave en PSA ITS.

Nota: Si se pasa de OT_CRYPTO_KEY_STORAGE_PERSISTENT aKeyPersistence continuación aKeyRef es la entrada y la plataforma deben usar el aKeyRef dado y no debe cambiarlo. Si OT_CRYPTO_KEY_STORAGE_VOLATILE se pasa a continuación aKeyPersistence aKeyRef se emite, el valor inicial no importa y API plataforma debe actualizarlo para devolver la nueva llave ref.

Detalles
Parámetros
[in,out] aKeyRef
Puntero a la referencia de clave que se utilizará para operaciones criptográficas.
[in] aKeyType
Codificación del tipo de clave para la clave.
[in] aKeyAlgorithm
Codificación del algoritmo de clave para la clave.
[in] aKeyUsage
Key codificación Uso para la clave (combinaciones de OT_CRYPTO_KEY_USAGE_* ).
[in] aKeyPersistence
Persistencia de clave para esta clave
[in] aKey
Clave real a importar.
[in] aKeyLen
Longitud de la clave a importar.
Valores devueltos
OT_ERROR_NONE
Importó correctamente la clave.
OT_ERROR_FAILED
No se pudo importar la clave.
OT_ERROR_INVALID_ARGS
aKey se establece en NULL.

Esta API se utiliza solamente por el núcleo OT cuando OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE está activado.

otPlatCryptoInit

otError otPlatCryptoInit(
  void
)

Inicialice el módulo Crypto.

Detalles
Valores devueltos
OT_ERROR_NONE
Módulo Crypto inicializado con éxito.
OT_ERROR_FAILED
No se pudo inicializar el módulo Crypto.

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

Anule la inicialización de la operación SHA-256.

Detalles
Parámetros
[in] aContext
Contexto para la operación SHA-256.
Valores devueltos
OT_ERROR_NONE
Operación SHA-256 sin inicializar correctamente.
OT_ERROR_FAILED
Error al no inicializar la operación SHA-256.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoSha256Finish

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

Finaliza la operación SHA-256.

Detalles
Parámetros
[in] aContext
Contexto para la operación SHA-256.
[in] aContextSize
Operación SHA-256 de tamaño de contexto.
[in] aHash
Un puntero al búfer de salida, donde se debe almacenar el hash.
[in] aHashSize
La longitud de aHash en bytes.
Valores devueltos
OT_ERROR_NONE
Completó con éxito la operación SHA-256.
OT_ERROR_FAILED
No se pudo completar la operación SHA-256.
OT_ERROR_INVALID_ARGS
aContext o aHash era NULL

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

Inicialice la operación SHA-256.

Detalles
Parámetros
[in] aContext
Contexto para la operación SHA-256.
Valores devueltos
OT_ERROR_NONE
Operación SHA-256 inicializada con éxito.
OT_ERROR_FAILED
Error al inicializar la operación SHA-256.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoSha256Start

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

Inicie la operación SHA-256.

Detalles
Parámetros
[in] aContext
Contexto para la operación SHA-256.
Valores devueltos
OT_ERROR_NONE
Se inició correctamente la operación SHA-256.
OT_ERROR_FAILED
No se pudo iniciar la operación SHA-256.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoSha256Update

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

Actualice la operación SHA-256 con una nueva entrada.

Detalles
Parámetros
[in] aContext
Contexto para la operación SHA-256.
[in] aBuf
Un puntero al búfer de entrada.
[in] aBufLength
La longitud de aBuf en bytes.
Valores devueltos
OT_ERROR_NONE
SHA-256 actualizado con éxito con una nueva operación de entrada.
OT_ERROR_FAILED
No se pudo actualizar la operación SHA-256.
OT_ERROR_INVALID_ARGS
aContext o aBuf era NULL