O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Plat-crypto

Este módulo inclui a abstração da plataforma para Crypto.

Resumo

Enumerações

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
Essa enumeração define os sinalizadores de uso da chave.
otCryptoKeyAlgorithm {
OT_CRYPTO_KEY_ALG_VENDOR ,
OT_CRYPTO_KEY_ALG_AES_ECB ,
OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
enum
Essa enumeração define os algoritmos principais.
otCryptoKeyStorage {
OT_CRYPTO_KEY_STORAGE_VOLATILE ,
OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
enum
Essa enumeração define os tipos de armazenamento de chave.
otCryptoKeyType {
OT_CRYPTO_KEY_TYPE_RAW ,
OT_CRYPTO_KEY_TYPE_AES ,
OT_CRYPTO_KEY_TYPE_HMAC
}
enum
Essa enumeração define os tipos de chave.

Typedefs

otCryptoContext typedef
otCryptoKey typedef
struct otCryptoKey
otCryptoKeyRef typedef
uint32_t
Este tipo de dados representa a referência da chave.

Funções

otPlatCryptoAesEncrypt ( otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Criptografe os dados fornecidos.
otPlatCryptoAesFree ( otCryptoContext *aContext)
Liberte o contexto AES.
otPlatCryptoAesInit ( otCryptoContext *aContext)
Inicialize a operação AES.
otPlatCryptoAesSetKey ( otCryptoContext *aContext, const otCryptoKey *aKey)
Defina a chave para a operação AES.
otPlatCryptoDestroyKey ( otCryptoKeyRef aKeyRef)
Destrua uma chave armazenada no PSA ITS.
otPlatCryptoExportKey ( otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
Exporte uma chave armazenada em PSA ITS.
otPlatCryptoHasKey ( otCryptoKeyRef aKeyRef)
bool
Verifique se a referência da chave aprovada possui uma chave associada no PSA ITS.
otPlatCryptoHkdfDeinit ( otCryptoContext *aContext)
Desinicialize o contexto HKDF.
otPlatCryptoHkdfExpand ( otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
Execute a etapa de expansão de HKDF.
otPlatCryptoHkdfExtract ( otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
Execute a etapa de extração de HKDF.
otPlatCryptoHkdfInit ( otCryptoContext *aContext)
Inicialize o contexto HKDF.
otPlatCryptoHmacSha256Deinit ( otCryptoContext *aContext)
Desinicialize a operação HMAC.
otPlatCryptoHmacSha256Finish ( otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
Conclua a operação HMAC.
otPlatCryptoHmacSha256Init ( otCryptoContext *aContext)
Inicialize a operação HMAC.
otPlatCryptoHmacSha256Start ( otCryptoContext *aContext, const otCryptoKey *aKey)
Inicie a operação HMAC.
otPlatCryptoHmacSha256Update ( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Atualize a operação HMAC com uma nova entrada.
otPlatCryptoImportKey ( otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
Importe uma chave para PSA ITS.
otPlatCryptoInit (void)
Inicialize o módulo Crypto.
otPlatCryptoSha256Deinit ( otCryptoContext *aContext)
Desinicialize a operação SHA-256.
otPlatCryptoSha256Finish ( otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
Conclua a operação SHA-256.
otPlatCryptoSha256Init ( otCryptoContext *aContext)
Inicialize a operação SHA-256.
otPlatCryptoSha256Start ( otCryptoContext *aContext)
Inicie a operação SHA-256.
otPlatCryptoSha256Update ( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Atualize a operação SHA-256 com uma nova entrada.

Structs

otCryptoContext

Essa estrutura armazena o objeto de contexto para APIs de plataforma.

otCryptoKey

Esta estrutura representa o material chave necessário para operações de criptografia.

Enumerações

enum anônimo

 anonymous enum

Essa enumeração define os sinalizadores de uso da chave.

Propriedades
OT_CRYPTO_KEY_USAGE_DECRYPT

Uso da chave: AES ECB.

OT_CRYPTO_KEY_USAGE_ENCRYPT

Uso da chave: criptografia (definido pelo fornecedor).

OT_CRYPTO_KEY_USAGE_EXPORT

Uso da chave: A chave pode ser exportada.

OT_CRYPTO_KEY_USAGE_NONE

Uso da chave: o uso da chave está vazio.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

Uso da chave: HMAC SHA-256.

otCryptoKeyAlgorithm

 otCryptoKeyAlgorithm

Essa enumeração define os algoritmos principais.

Propriedades
OT_CRYPTO_KEY_ALG_AES_ECB

Algoritmo-chave: AES ECB.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

Algoritmo de chave: HMAC SHA-256.

OT_CRYPTO_KEY_ALG_VENDOR

Algoritmo chave: definido pelo fornecedor.

otCryptoKeyStorage

 otCryptoKeyStorage

Essa enumeração define os tipos de armazenamento de chave.

Propriedades
OT_CRYPTO_KEY_STORAGE_PERSISTENT

Persistência da chave: a chave é persistente.

OT_CRYPTO_KEY_STORAGE_VOLATILE

Persistência da chave: a chave é volátil.

otCryptoKeyType

 otCryptoKeyType

Essa enumeração define os tipos de chave.

Propriedades
OT_CRYPTO_KEY_TYPE_AES

Tipo de chave: AES.

OT_CRYPTO_KEY_TYPE_HMAC

Tipo de chave: HMAC.

OT_CRYPTO_KEY_TYPE_RAW

Tipo de chave: dados brutos.

Typedefs

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

Este tipo de dados representa a referência da chave.

Funções

otPlatCryptoAesEncrypt

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

Criptografe os dados fornecidos.

Detalhes
Parâmetros
[in] aContext
Contexto para operação AES.
[in] aInput
Ponteiro para o buffer de entrada.
[in] aOutput
Ponteiro para o buffer de saída.
Valores Retornados
OT_ERROR_NONE
Com sucesso criptografado aInput .
OT_ERROR_FAILED
Falha ao criptografar aInput .
OT_ERROR_INVALID_ARGS
aContext ou aKey ou aOutput foram NULL

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

Liberte o contexto AES.

Detalhes
Parâmetros
[in] aContext
Contexto para operação AES.
Valores Retornados
OT_ERROR_NONE
Contexto AES liberado com sucesso.
OT_ERROR_FAILED
Falha ao liberar o contexto AES.
OT_ERROR_INVALID_ARGS
aContext foi NULL

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

Inicialize a operação AES.

Detalhes
Parâmetros
[in] aContext
Contexto para operação AES.
Valores Retornados
OT_ERROR_NONE
Operação AES inicializada com sucesso.
OT_ERROR_FAILED
Falha ao inicializar a operação AES.
OT_ERROR_INVALID_ARGS
aContext foi NULL
OT_ERROR_NO_BUFS
Não é possível alocar o contexto.

otPlatCryptoAesSetKey

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

Defina a chave para a operação AES.

Detalhes
Parâmetros
[in] aContext
Contexto para operação AES.
[out] aKey
Chave a ser usada para operação AES.
Valores Retornados
OT_ERROR_NONE
Defina com sucesso a chave para a operação AES.
OT_ERROR_FAILED
Falha ao definir a chave para operação AES.
OT_ERROR_INVALID_ARGS
aContext ou aKey foi NULL

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

Destrua uma chave armazenada no PSA ITS.

Detalhes
Parâmetros
[in] aKeyRef
A chave ref a ser destruída
Valores Retornados
OT_ERROR_NONE
Destruiu a chave com sucesso.
OT_ERROR_FAILED
Falha ao destruir a chave.

otPlatCryptoExportKey

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

Exporte uma chave armazenada em PSA ITS.

Detalhes
Parâmetros
[in] aKeyRef
A chave ref a ser usada para operações criptográficas.
[out] aBuffer
Ponteiro para o buffer onde a chave precisa ser exportada.
[in] aBufferLen
Comprimento do buffer passado para armazenar a chave exportada.
[out] aKeyLen
Ponteiro para retornar o comprimento da chave exportada.
Valores Retornados
OT_ERROR_NONE
Com sucesso exportados aKeyRef .
OT_ERROR_FAILED
Falha ao exportar aKeyRef .
OT_ERROR_INVALID_ARGS
aBuffer foi NULL

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

Verifique se a referência da chave aprovada possui uma chave associada no PSA ITS.

Detalhes
Parâmetros
[in] aKeyRef
A referência chave para verificar.
Valores Retornados
TRUE
Há uma chave associada com aKeyRef .
FALSE
Não existe uma chave associada com aKeyRef .

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Desinicialize o contexto HKDF.

Detalhes
Parâmetros
[in] aContext
Contexto para operação HKDF.
Valores Retornados
OT_ERROR_NONE
Operação HKDF não inicializada com sucesso.
OT_ERROR_FAILED
Falha na operação HKDF não inicializada.
OT_ERROR_INVALID_ARGS
aContext foi NULL

otPlatCryptoHkdfExpand

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

Execute a etapa de expansão de HKDF.

Detalhes
Parâmetros
[in] aContext
Contexto de operação para operação HKDF.
[in] aInfo
Ponteiro para a sequência de informações.
[in] aInfoLength
Comprimento da sequência de informações.
[out] aOutputKey
Ponteiro para a chave de saída.
[in] aOutputKeyLength
Tamanho do buffer da chave de saída.
Valores Retornados
OT_ERROR_NONE
A expansão de HKDF foi bem-sucedida.
OT_ERROR_FAILED
Falha na expansão de HKDF.
OT_ERROR_INVALID_ARGS
aContext foi NULL

otPlatCryptoHkdfExtract

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

Execute a etapa de extração de HKDF.

Detalhes
Parâmetros
[in] aContext
Contexto de operação para operação HKDF.
[in] aSalt
Ponteiro para o Sal para HKDF.
[in] aInfoLength
comprimento de sal.
[in] aInputKey
Ponteiro para a chave de entrada.
Valores Retornados
OT_ERROR_NONE
A extração de HKDF foi bem-sucedida.
OT_ERROR_FAILED
A extração de HKDF falhou.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

Inicialize o contexto HKDF.

Detalhes
Parâmetros
[in] aContext
Contexto para operação HKDF.
Valores Retornados
OT_ERROR_NONE
Operação AES inicializada com sucesso.
OT_ERROR_FAILED
Falha ao inicializar a operação AES.
OT_ERROR_INVALID_ARGS
aContext foi NULL

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

Desinicialize a operação HMAC.

Detalhes
Parâmetros
[in] aContext
Contexto para operação HMAC.
Valores Retornados
OT_ERROR_NONE
Operação HMAC não inicializada com sucesso.
OT_ERROR_FAILED
Falha ao não inicializar a operação HMAC.
OT_ERROR_INVALID_ARGS
aContext foi NULL

otPlatCryptoHmacSha256Finish

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

Conclua a operação HMAC.

Detalhes
Parâmetros
[in] aContext
Contexto para operação HMAC.
[out] aBuf
Um ponteiro para o buffer de saída.
[in] aBufLength
O comprimento de aBuf em bytes.
Valores Retornados
OT_ERROR_NONE
Operação HMAC concluída com êxito.
OT_ERROR_FAILED
Falha ao concluir a operação HMAC.
OT_ERROR_INVALID_ARGS
aContext ou aBuf foi NULL

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

Inicialize a operação HMAC.

Detalhes
Parâmetros
[in] aContext
Contexto para operação HMAC.
Valores Retornados
OT_ERROR_NONE
Operação HMAC inicializada com sucesso.
OT_ERROR_FAILED
Falha ao inicializar a operação HMAC.
OT_ERROR_INVALID_ARGS
aContext foi NULL

otPlatCryptoHmacSha256Start

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

Inicie a operação HMAC.

Detalhes
Parâmetros
[in] aContext
Contexto para operação HMAC.
[in] aKey
Material chave a ser usado para a operação HMAC.
Valores Retornados
OT_ERROR_NONE
Operação HMAC iniciada com sucesso.
OT_ERROR_FAILED
Falha ao iniciar a operação HMAC.
OT_ERROR_INVALID_ARGS
aContext ou aKey foi NULL

otPlatCryptoHmacSha256Update

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

Atualize a operação HMAC com uma nova entrada.

Detalhes
Parâmetros
[in] aContext
Contexto para operação HMAC.
[in] aBuf
Um ponteiro para o buffer de entrada.
[in] aBufLength
O comprimento de aBuf em bytes.
Valores Retornados
OT_ERROR_NONE
HMAC atualizado com sucesso com nova operação de entrada.
OT_ERROR_FAILED
Falha ao atualizar a operação HMAC.
OT_ERROR_INVALID_ARGS
aContext ou aBuf foi NULL

otPlatCryptoImportKey

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

Importe uma chave para PSA ITS.

Nota: Se OT_CRYPTO_KEY_STORAGE_PERSISTENT é passado para aKeyPersistence então aKeyRef é entrada e plataforma deve usar o dado aKeyRef e não deve alterá-lo. Se OT_CRYPTO_KEY_STORAGE_VOLATILE é passado para aKeyPersistence então aKeyRef é emitido, o valor inicial não importa e plataforma API deve atualizá-lo para retornar a nova chave ref.

Detalhes
Parâmetros
[in,out] aKeyRef
Ponteiro para a referência da chave a ser usada para operações criptográficas.
[in] aKeyType
Codificação do tipo de chave para a chave.
[in] aKeyAlgorithm
Codificação de algoritmo de chave para a chave.
[in] aKeyUsage
Codificação de uso de chave para a chave (combinações de OT_CRYPTO_KEY_USAGE_* ).
[in] aKeyPersistence
Persistência de chave para esta chave
[in] aKey
Chave real a ser importada.
[in] aKeyLen
Comprimento da chave a ser importada.
Valores Retornados
OT_ERROR_NONE
Importou a chave com sucesso.
OT_ERROR_FAILED
Falha ao importar a chave.
OT_ERROR_INVALID_ARGS
aKey foi definido como NULL.

Esta API é utilizado apenas por núcleo OT quando OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE está habilitado.

otPlatCryptoInit

otError otPlatCryptoInit(
  void
)

Inicialize o módulo Crypto.

Detalhes
Valores Retornados
OT_ERROR_NONE
Módulo criptográfico inicializado com sucesso.
OT_ERROR_FAILED
Falha ao inicializar o módulo Crypto.

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

Desinicialize a operação SHA-256.

Detalhes
Parâmetros
[in] aContext
Contexto para operação SHA-256.
Valores Retornados
OT_ERROR_NONE
Operação SHA-256 não inicializada com sucesso.
OT_ERROR_FAILED
Falha na operação SHA-256 não inicializada.
OT_ERROR_INVALID_ARGS
aContext foi NULL

otPlatCryptoSha256Finish

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

Conclua a operação SHA-256.

Detalhes
Parâmetros
[in] aContext
Contexto para operação SHA-256.
[in] aContextSize
Operação SHA-256 de tamanho de contexto.
[in] aHash
Um ponteiro para o buffer de saída, onde o hash precisa ser armazenado.
[in] aHashSize
O comprimento de aHash em bytes.
Valores Retornados
OT_ERROR_NONE
Concluída com sucesso a operação SHA-256.
OT_ERROR_FAILED
Falha ao concluir a operação SHA-256.
OT_ERROR_INVALID_ARGS
aContext ou aHash foi NULL

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

Inicialize a operação SHA-256.

Detalhes
Parâmetros
[in] aContext
Contexto para operação SHA-256.
Valores Retornados
OT_ERROR_NONE
Operação SHA-256 inicializada com sucesso.
OT_ERROR_FAILED
Falha ao inicializar a operação SHA-256.
OT_ERROR_INVALID_ARGS
aContext foi NULL

otPlatCryptoSha256Start

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

Inicie a operação SHA-256.

Detalhes
Parâmetros
[in] aContext
Contexto para operação SHA-256.
Valores Retornados
OT_ERROR_NONE
Operação SHA-256 iniciada com sucesso.
OT_ERROR_FAILED
Falha ao iniciar a operação SHA-256.
OT_ERROR_INVALID_ARGS
aContext foi NULL

otPlatCryptoSha256Update

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

Atualize a operação SHA-256 com uma nova entrada.

Detalhes
Parâmetros
[in] aContext
Contexto para operação SHA-256.
[in] aBuf
Um ponteiro para o buffer de entrada.
[in] aBufLength
O comprimento de aBuf em bytes.
Valores Retornados
OT_ERROR_NONE
SHA-256 atualizado com sucesso com nova operação de entrada.
OT_ERROR_FAILED
Falha ao atualizar a operação SHA-256.
OT_ERROR_INVALID_ARGS
aContext ou aBuf foi NULL