Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Crypto: Platform

Este módulo incluye la abstracción de plataformas para criptografía.

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
}
Enum
En esta enumeración se definen las marcas de uso de claves.
otCryptoKeyAlgorithm{
  OT_CRYPTO_KEY_ALG_VENDOR,
  OT_CRYPTO_KEY_ALG_AES_ECB,
  OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
Enum
Esta enumeración define los algoritmos clave.
otCryptoKeyStorage{
  OT_CRYPTO_KEY_STORAGE_VOLATILE,
  OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
Enum
En esta enumeración se definen los tipos de almacenamiento de claves.
otCryptoKeyType{
  OT_CRYPTO_KEY_TYPE_RAW,
  OT_CRYPTO_KEY_TYPE_AES,
  OT_CRYPTO_KEY_TYPE_HMAC
}
Enum
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 de clave.
otPlatCryptoEcdsaKeyPair typedef
otPlatCryptoEcdsaPublicKey typedef
otPlatCryptoEcdsaSignature typedef
otPlatCryptoSha256Hash typedef
Esta estructura representa un hash SHA-256.

Variables

OT_TOOL_PACKED_END

Funciones

otPlatCryptoAesEncrypt(otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Encriptar los datos proporcionados
otPlatCryptoAesFree(otCryptoContext *aContext)
Libera el contexto AES.
otPlatCryptoAesInit(otCryptoContext *aContext)
Inicializa la operación AES.
otPlatCryptoAesSetKey(otCryptoContext *aContext, const otCryptoKey *aKey)
Configura la clave para la operación AES.
otPlatCryptoDestroyKey(otCryptoKeyRef aKeyRef)
Destruir una clave almacenada en PSA ITS.
otPlatCryptoEcdsaGenerateKey(otPlatCryptoEcdsaKeyPair *aKeyPair)
Genera y propaga el búfer de salida con un nuevo par de claves ECDSA.
otPlatCryptoEcdsaGetPublicKey(const otPlatCryptoEcdsaKeyPair *aKeyPair, otPlatCryptoEcdsaPublicKey *aPublicKey)
Obtén la clave pública asociada del contexto de entrada.
otPlatCryptoEcdsaSign(const otPlatCryptoEcdsaKeyPair *aKeyPair, const otPlatCryptoSha256Hash *aHash, otPlatCryptoEcdsaSignature *aSignature)
Calcula la firma ECDSA para un mensaje con hash mediante la clave privada del contexto de entrada.
otPlatCryptoEcdsaVerify(const otPlatCryptoEcdsaPublicKey *aPublicKey, const otPlatCryptoSha256Hash *aHash, const otPlatCryptoEcdsaSignature *aSignature)
Usa la clave del contexto de entrada para verificar la firma ECDSA de un mensaje con hash.
otPlatCryptoExportKey(otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
Exporta una clave almacenada en PSA ITS.
otPlatCryptoHasKey(otCryptoKeyRef aKeyRef)
bool
Revisa si la referencia de clave aprobada tiene una clave asociada en PSA ITS.
otPlatCryptoHkdfDeinit(otCryptoContext *aContext)
Anula la inicialización del contexto de HKDF.
otPlatCryptoHkdfExpand(otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
Realiza el paso de expansión de HKDF.
otPlatCryptoHkdfExtract(otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
Realiza el paso de extracción de HKDF.
otPlatCryptoHkdfInit(otCryptoContext *aContext)
Inicializa el contexto de HKDF.
otPlatCryptoHmacSha256Deinit(otCryptoContext *aContext)
Anula la inicialización de la operación HMAC.
otPlatCryptoHmacSha256Finish(otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
Completa la operación HMAC.
otPlatCryptoHmacSha256Init(otCryptoContext *aContext)
Inicializa la operación HMAC.
otPlatCryptoHmacSha256Start(otCryptoContext *aContext, const otCryptoKey *aKey)
Inicia la operación HMAC.
otPlatCryptoHmacSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Actualiza la operación de HMAC con entradas nuevas.
otPlatCryptoImportKey(otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
Importa una clave a ITSA PSA.
otPlatCryptoInit(void)
void
Inicializa el módulo de Crypto.
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
Ejecuta PKCS#5 PBKDF2 con CMAC (AES-CMAC-PRF-128).
otPlatCryptoRandomDeinit(void)
void
Inicializa el generador de números seudoaleatorios seguro y criptográficamente seguro (CSPRNG).
otPlatCryptoRandomGet(uint8_t *aBuffer, uint16_t aSize)
Rellena un búfer determinado con bytes aleatorios criptográficamente seguros.
otPlatCryptoRandomInit(void)
void
Inicializa el generador de números seudoaleatorios criptográficamente seguro (CSPRNG).
otPlatCryptoSha256Deinit(otCryptoContext *aContext)
Anula 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)
Inicializa la operación SHA-256.
otPlatCryptoSha256Start(otCryptoContext *aContext)
Inicia la operación SHA-256.
otPlatCryptoSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Actualiza la operación SHA-256 con una entrada nueva.

Structs

otCryptoContext

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

otCryptoKey.

Esta estructura representa el material de claves requerido para las operaciones criptográficas.

otPlatCryptoEcdsaKeyPair

Esta estructura representa un par de claves ECDSA (claves públicas y privadas).

otPlatCryptoEcdsaPublicKey

Esta estructura representa una clave pública ECDSA.

otPlatCryptoEcdsaSignature

Esta estructura representa una firma de ECDSA.

otPlatCryptoSha256Hash

Esta estructura representa un hash SHA-256.

Enumeraciones

enumeración anónima

 anonymous enum

En esta enumeración se definen las marcas de uso de claves.

Propiedades
OT_CRYPTO_KEY_USAGE_DECRYPT

Uso de la clave: AES ECB.

OT_CRYPTO_KEY_USAGE_ENCRYPT

Uso de la clave: Encriptación (definida por el proveedor).

OT_CRYPTO_KEY_USAGE_EXPORT

Uso de la clave: La clave se puede exportar.

OT_CRYPTO_KEY_USAGE_NONE

Uso de la clave: el uso de la clave está vacío.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

Uso de la 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

En esta enumeración se definen 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.

Tipo de CryptoKey de ot

 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 sin procesar.

Typedefs

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

Este tipo de datos representa la referencia de clave.

otPlatCryptoEcdsaKeyPair

struct otPlatCryptoEcdsaKeyPair otPlatCryptoEcdsaKeyPair

oPlACryptoEcdsaPublicKey

struct otPlatCryptoEcdsaPublicKey otPlatCryptoEcdsaPublicKey

oPlPlCryptoCryptoEcdsaSignature

struct otPlatCryptoEcdsaSignature otPlatCryptoEcdsaSignature

otPlatCryptoSha256Hash

struct otPlatCryptoSha256Hash otPlatCryptoSha256Hash

Esta estructura representa un hash SHA-256.

Variables

PO_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otPlatCryptoSha256Hash OT_TOOL_PACKED_END

Funciones

otPlatCryptoAesEncrypt

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

Encriptar los datos proporcionados

Detalles
Parámetros
[in] aContext
Contexto para la operación AES.
[in] aInput
Es el puntero al búfer de entrada.
[in] aOutput
Es el puntero al búfer de salida.
Valores de retorno
OT_ERROR_NONE
Se encriptó aInput correctamente.
OT_ERROR_FAILED
No se pudo encriptar aInput.
OT_ERROR_INVALID_ARGS
aContext, aKey o aOutput eran NULL

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

Libera el contexto AES.

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

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

Inicializa la operación AES.

Detalles
Parámetros
[in] aContext
Contexto para la operación AES.
Valores de retorno
OT_ERROR_NONE
Se inició correctamente la operación AES.
OT_ERROR_FAILED
No se pudo 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
)

Configura la clave para la operación AES.

Detalles
Parámetros
[in] aContext
Contexto para la operación AES.
[out] aKey
Clave para usar en la operación AES.
Valores de retorno
OT_ERROR_NONE
Se configuró 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
)

Destruir una clave almacenada en PSA ITS.

Detalles
Parámetros
[in] aKeyRef
La referencia de clave que se destruirá
Valores de retorno
OT_ERROR_NONE
La clave se destruyó correctamente.
OT_ERROR_FAILED
No se pudo destruir la clave.

otPlatCryptoEcdsaGenerateKey

otError otPlatCryptoEcdsaGenerateKey(
  otPlatCryptoEcdsaKeyPair *aKeyPair
)

Genera y propaga el búfer de salida con un nuevo par de claves ECDSA.

Detalles
Parámetros
[out] aKeyPair
Un puntero para una estructura de par de claves ECDSA para almacenar el par de claves generado.
Valores de retorno
OT_ERROR_NONE
Se generó correctamente un nuevo par de claves.
OT_ERROR_NO_BUFS
No se pudo asignar el búfer para la generación de claves.
OT_ERROR_NOT_CAPABLE
Función no compatible.
OT_ERROR_FAILED
No se pudo generar el par de claves.

otPlatCryptoEcdsaGetPublicKey;

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

Obtén la clave pública asociada del contexto de entrada.

Detalles
Parámetros
[in] aKeyPair
Un puntero para una estructura de par de claves ECDSA donde se almacena el par de claves.
[out] aPublicKey
Un puntero a una estructura de clave pública ECDSA para almacenar la clave pública.
Valores de retorno
OT_ERROR_NONE
La clave pública se recuperó correctamente y se actualizó aBuffer.
OT_ERROR_PARSE
No se pudo analizar el formato DER del par de claves (formato no válido).
OT_ERROR_INVALID_ARGS
El valor aContext es NULL.

otPlatCryptoEcdsaSign

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

Calcula la firma ECDSA para un mensaje con hash mediante la clave privada del contexto de entrada.

Este método usa el procedimiento de generación digital de firmas determinista de RFC 6979.

Detalles
Parámetros
[in] aKeyPair
Un puntero para una estructura de par de claves ECDSA donde se almacena el par de claves.
[in] aHash
Un puntero a una estructura de hash SHA-256 en la que se almacena el valor de hash para el cálculo de la firma.
[out] aSignature
Un puntero para una estructura de firma ECDSA para generar la firma calculada.
Valores de retorno
OT_ERROR_NONE
Se calculó correctamente la firma y se actualizó aSignature.
OT_ERROR_PARSE
No se pudo analizar el formato DER del par de claves (formato no válido).
OT_ERROR_NO_BUFS
No se pudo asignar el búfer para el cálculo de la firma.
OT_ERROR_INVALID_ARGS
El valor aContext es NULL.

otPlATCryptoEcdsaVerify

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

Usa la clave del contexto de entrada para verificar la firma ECDSA de un mensaje con hash.

Detalles
Parámetros
[in] aPublicKey
Un puntero a una estructura de clave pública de ECDSA en la que se almacena la clave pública para la verificación de firma.
[in] aHash
Un puntero a una estructura de hash SHA-256 en la que se almacena el valor de hash para la verificación de firma.
[in] aSignature
Un puntero para una estructura de firma ECDSA donde se almacena el valor de firma que se debe verificar.
Valores de retorno
OT_ERROR_NONE
Se verificó correctamente la firma.
OT_ERROR_SECURITY
La firma no es válida.
OT_ERROR_INVALID_ARGS
La clave o el hash no son válidos.
OT_ERROR_NO_BUFS
No se pudo asignar el búfer para la verificación de firmas.

otPlCryptoCryptoExport

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

Exporta una clave almacenada en PSA ITS.

Detalles
Parámetros
[in] aKeyRef
Es la referencia de clave que se usará para las operaciones criptográficas.
[out] aBuffer
Es el puntero al búfer en el que se debe exportar la clave.
[in] aBufferLen
Longitud del búfer que se pasa para almacenar la clave exportada.
[out] aKeyLen
Es el puntero para mostrar la longitud de la clave exportada.
Valores de retorno
OT_ERROR_NONE
Se exportó correctamente aKeyRef.
OT_ERROR_FAILED
No se pudo exportar aKeyRef.
OT_ERROR_INVALID_ARGS
aBuffer era NULL

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

Revisa si la referencia de clave aprobada tiene una clave asociada en PSA ITS.

Detalles
Parámetros
[in] aKeyRef
La referencia de clave que se debe verificar.
Valores de retorno
TRUE
Hay una clave asociada con aKeyRef.
FALSE
No hay clave asociada con aKeyRef.

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Anula la inicialización del contexto de HKDF.

Detalles
Parámetros
[in] aContext
Contexto para la operación HKDF.
Valores de retorno
OT_ERROR_NONE
Se anuló correctamente la inicialización de la operación HKDF.
OT_ERROR_FAILED
No se pudo anular la inicialización de 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
)

Realiza el paso de expansión de HKDF.

Detalles
Parámetros
[in] aContext
Contexto de operación para operación HKDF
[in] aInfo
Es el puntero a la secuencia de información.
[in] aInfoLength
Longitud de la secuencia de información.
[out] aOutputKey
Es el puntero a la clave de salida.
[in] aOutputKeyLength
Tamaño del búfer de clave de salida.
Valores de retorno
OT_ERROR_NONE
La expansión de HKDF se realizó correctamente.
OT_ERROR_FAILED
Error de expansión de HKDF
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHkdfExtract

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

Realiza el paso de extracción de HKDF.

Detalles
Parámetros
[in] aContext
Contexto de operación para operación HKDF
[in] aSalt
Puntero a la sal para HKDF.
[in] aSaltLength
Longitud de la sal.
[in] aInputKey
Es el puntero a la tecla de entrada.
Valores de retorno
OT_ERROR_NONE
El extracto de HKDF se realizó correctamente.
OT_ERROR_FAILED
No se pudo extraer el HKDF.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

Inicializa el contexto de HKDF.

Detalles
Parámetros
[in] aContext
Contexto para la operación HKDF.
Valores de retorno
OT_ERROR_NONE
Se inició correctamente la operación AES.
OT_ERROR_FAILED
No se pudo inicializar la operación AES.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

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

Detalles
Parámetros
[in] aContext
Contexto para el funcionamiento de HMAC.
Valores de retorno
OT_ERROR_NONE
Se anuló correctamente la inicialización de la operación HMAC.
OT_ERROR_FAILED
No se pudo anular la inicialización de la operación HMAC.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHmacSha256Finish

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

Completa la operación HMAC.

Detalles
Parámetros
[in] aContext
Contexto para el funcionamiento de HMAC.
[out] aBuf
Un puntero para el búfer de salida.
[in] aBufLength
La longitud de aBuf en bytes.
Valores de retorno
OT_ERROR_NONE
La operación de HMAC se completó correctamente.
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
)

Inicializa la operación HMAC.

Detalles
Parámetros
[in] aContext
Contexto para el funcionamiento de HMAC.
Valores de retorno
OT_ERROR_NONE
Se inicializó correctamente la operación HMAC.
OT_ERROR_FAILED
No se pudo inicializar la operación HMAC.
OT_ERROR_INVALID_ARGS
aContext era NULL

otPlatCryptoHmacSha256Inicio

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

Inicia la operación HMAC.

Detalles
Parámetros
[in] aContext
Contexto para el funcionamiento de HMAC.
[in] aKey
Material de claves que se usará para el funcionamiento de HMAC.
Valores de retorno
OT_ERROR_NONE
La operación HMAC se inició correctamente.
OT_ERROR_FAILED
No se pudo iniciar la operación HMAC.
OT_ERROR_INVALID_ARGS
aContext o aKey era NULL

Actualización de otPlatCryptoHmacSha256

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

Actualiza la operación de HMAC con entradas nuevas.

Detalles
Parámetros
[in] aContext
Contexto para el funcionamiento de HMAC.
[in] aBuf
Un puntero para el búfer de entrada.
[in] aBufLength
La longitud de aBuf en bytes.
Valores de retorno
OT_ERROR_NONE
Se actualizó correctamente el HMAC con la nueva operación de entrada.
OT_ERROR_FAILED
No se pudo actualizar la operación 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 clave a ITSA PSA.

Nota: Si se pasa OT_CRYPTO_KEY_STORAGE_PERSISTENT para aKeyPersistence, aKeyRef es la entrada y la plataforma debe usar el parámetro aKeyRef, y DEBE no cambiarlo. Si se pasa OT_CRYPTO_KEY_STORAGE_VOLATILE para aKeyPersistence, se muestra aKeyRef, el valor inicial no importa y la API de la plataforma DEBE actualizarla para mostrar la nueva referencia de clave.

Detalles
Parámetros
[in,out] aKeyRef
Es el puntero a la referencia de claves que se usará para las operaciones criptográficas.
[in] aKeyType
Codificación de tipo de clave para la clave.
[in] aKeyAlgorithm
Codificación de algoritmos de claves para la clave.
[in] aKeyUsage
Codificación de uso de claves para la clave (combinaciones de OT_CRYPTO_KEY_USAGE_*).
[in] aKeyPersistence
Persistencia de la clave
[in] aKey
Clave real que se importará.
[in] aKeyLen
Longitud de la clave que se importará.
Valores de retorno
OT_ERROR_NONE
La clave se importó correctamente.
OT_ERROR_FAILED
No se pudo importar la clave.
OT_ERROR_INVALID_ARGS
aKey se configuró como NULL.

El núcleo de PO solo usa esta API cuando OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE está habilitado.

otPlatCryptoInit

void otPlatCryptoInit(
  void
)

Inicializa el módulo de Crypto.

otPlatCryptoPbkdf2GenerateKey

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
)

Ejecuta PKCS#5 PBKDF2 con CMAC (AES-CMAC-PRF-128).

Detalles
Parámetros
[in] aPassword
Contraseña para generar clave.
[in] aPasswordLen
Longitud de la contraseña
[in] aSalt
Sal que se usará cuando se genere la clave.
[in] aSaltLen
Longitud de la sal.
[in] aIterationCounter
Número de repeticiones.
[in] aKeyLen
Longitud de la clave generada en bytes.
[out] aKey
Un puntero para la clave generada.

otPlatCryptoRandomDeinit

void otPlatCryptoRandomDeinit(
  void
)

Inicializa el generador de números seudoaleatorios seguro y criptográficamente seguro (CSPRNG).

otPlatCryptoRandomGet

otError otPlatCryptoRandomGet(
  uint8_t *aBuffer,
  uint16_t aSize
)

Rellena un búfer determinado con bytes aleatorios criptográficamente seguros.

Detalles
Parámetros
[out] aBuffer
Un puntero para un búfer que se llenará con los bytes aleatorios.
[in] aSize
Tamaño del búfer (cantidad de bytes que se llenarán)
Valores de retorno
OT_ERROR_NONE
Se llenó correctamente el búfer con valores aleatorios.
OT_ERROR_FAILED
No se pudo realizar la operación.

otPlatCryptoRandomInit

void otPlatCryptoRandomInit(
  void
)

Inicializa el generador de números seudoaleatorios criptográficamente seguro (CSPRNG).

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

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

Detalles
Parámetros
[in] aContext
Contexto para la operación SHA-256.
Valores de retorno
OT_ERROR_NONE
Se anuló correctamente la operación de SHA-256 no inicializada.
OT_ERROR_FAILED
No se pudo 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] aHash
Un puntero para el búfer de salida, donde se debe almacenar el hash.
[in] aHashSize
La longitud de aHash en bytes.
Valores de retorno
OT_ERROR_NONE
La operación SHA-256 se completó correctamente.
OT_ERROR_FAILED
No se pudo completar la operación de SHA-256.
OT_ERROR_INVALID_ARGS
aContext o aHash era NULL

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

Inicializa la operación SHA-256.

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

otPlatCryptoSha256Inicio

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

Inicia la operación SHA-256.

Detalles
Parámetros
[in] aContext
Contexto para la operación SHA-256.
Valores de retorno
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
)

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

Detalles
Parámetros
[in] aContext
Contexto para la operación SHA-256.
[in] aBuf
Un puntero para el búfer de entrada.
[in] aBufLength
La longitud de aBuf en bytes.
Valores de retorno
OT_ERROR_NONE
Se actualizó correctamente SHA-256 con la 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

Macros

TS_CRYPTO_ECDSA_MAX_DER_SIZE

 OT_CRYPTO_ECDSA_MAX_DER_SIZE 125

Tamaño máximo del búfer (en bytes) para representar el par de claves EDCSA en formato DER.

TS_CRYPTO_ECDSA_PUBLIC_KEY_SIZE

 OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE 64

Tamaño del búfer (en bytes) para representar la clave pública EDCSA

PR_CRYPTO_ECDSA_SIGNATURE_SIZE

 OT_CRYPTO_ECDSA_SIGNATURE_SIZE 64

Tamaño del búfer (en bytes) para representar la firma EDCSA

TC_CRYPTO_PBDKF2_MAX_SALT_SIZE

 OT_CRYPTO_PBDKF2_MAX_SALT_SIZE 30

Longitud máxima de PBKDF2 SALT: Prefijo sal (6) + panid extendido (8) + nombre de la red (16)

TS_CRYPTO_SHA256_HASH_SIZE

 OT_CRYPTO_SHA256_HASH_SIZE 32

Longitud del hash SHA256 (en bytes).

Recursos

Los temas de referencia de la API de OpenThread se originan en el código fuente, disponible en GitHub. Para obtener más información o colaborar con nuestra documentación, consulta Recursos.