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

Criptografia - Plataforma

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
}
enumerar
Essa enumeração define os sinalizadores de uso de chave.
otCryptoKeyAlgorithm {
OT_CRYPTO_KEY_ALG_VENDOR ,
OT_CRYPTO_KEY_ALG_AES_ECB ,
OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
enumerar
Essa enumeração define os algoritmos de chave.
otCryptoKeyStorage {
OT_CRYPTO_KEY_STORAGE_VOLATILE ,
OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
enumerar
Essa enumeração define os tipos de armazenamento de chaves.
otCryptoKeyType {
OT_CRYPTO_KEY_TYPE_RAW ,
OT_CRYPTO_KEY_TYPE_AES ,
OT_CRYPTO_KEY_TYPE_HMAC
}
enumerar
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 de 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 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 no PSA ITS.
otPlatCryptoHasKey ( otCryptoKeyRef aKeyRef)
bool
Verifique se a chave ref passada possui uma chave associada no PSA ITS.
otPlatCryptoHkdfDeinit ( otCryptoContext *aContext)
Cancele a inicialização do contexto HKDF.
otPlatCryptoHkdfExpand ( otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
Execute a etapa de expansão 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)
Cancele a inicialização da 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 nova entrada.
otPlatCryptoImportKey ( otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
Importe uma chave para o PSA ITS.
otPlatCryptoInit (void)
void
Inicialize o módulo Crypto.
otPlatCryptoRandomDeinit (void)
void
Desinicialize o gerador de números pseudoaleatórios criptograficamente seguro (CSPRNG).
otPlatCryptoRandomGet (uint8_t *aBuffer, uint16_t aSize)
Preenche um determinado buffer com bytes aleatórios criptograficamente seguros.
otPlatCryptoRandomInit (void)
void
Inicialize o gerador de números pseudoaleatórios criptograficamente seguro (CSPRNG).
otPlatCryptoSha256Deinit ( otCryptoContext *aContext)
Cancele a inicialização da 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 nova entrada.

Estruturas

otCryptoContext

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

otCryptoKey

Essa estrutura representa o Material de Chave necessário para operações de Criptografia.

Enumerações

enumeração anônima

 anonymous enum

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

Propriedades
OT_CRYPTO_KEY_USAGE_DECRYPT

Uso principal: AES BCE.

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 de chave: o uso de chave está vazio.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

Uso da chave: HMAC SHA-256.

otCryptoKeyAlgorithm

 otCryptoKeyAlgorithm

Essa enumeração define os algoritmos de chave.

Propriedades
OT_CRYPTO_KEY_ALG_AES_ECB

Algoritmo chave: AES ECB.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

Algoritmo 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 chaves.

Propriedades
OT_CRYPTO_KEY_STORAGE_PERSISTENT

Persistência da chave: A chave é persistente.

OT_CRYPTO_KEY_STORAGE_VOLATILE

Persistência de 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 de 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 de retorno
OT_ERROR_NONE
aInput criptografado com sucesso.
OT_ERROR_FAILED
Falha ao criptografar aInput .
OT_ERROR_INVALID_ARGS
aContext ou aKey ou aOutput eram NULL

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

Liberte o contexto AES.

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

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

Inicialize a operação AES.

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

otPlatCryptoAesSetKey

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

Defina a chave para operação AES.

Detalhes
Parâmetros
[in] aContext
Contexto para operação AES.
[out] aKey
Chave a ser usada para operação AES.
Valores de retorno
OT_ERROR_NONE
Definiu com sucesso a chave para operação AES.
OT_ERROR_FAILED
Falha ao definir a chave para operação AES.
OT_ERROR_INVALID_ARGS
aContext ou aKey era 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 de retorno
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 no PSA ITS.

Detalhes
Parâmetros
[in] aKeyRef
A chave ref a ser usada para operações de criptografia.
[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 de retorno
OT_ERROR_NONE
aKeyRef exportado com sucesso.
OT_ERROR_FAILED
Falha ao exportar aKeyRef .
OT_ERROR_INVALID_ARGS
aBuffer era NULL

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

Verifique se a chave ref passada possui uma chave associada no PSA ITS.

Detalhes
Parâmetros
[in] aKeyRef
A chave Ref para verificar.
Valores de retorno
TRUE
Existe uma chave associada com aKeyRef .
FALSE
Não há chave associada com aKeyRef .

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Cancele a inicialização do contexto HKDF.

Detalhes
Parâmetros
[in] aContext
Contexto para operação HKDF.
Valores de retorno
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 era 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 HKDF.

Detalhes
Parâmetros
[in] aContext
Contexto de operação para operação HKDF.
[in] aInfo
Ponteiro para a sequência Info.
[in] aInfoLength
Comprimento da sequência de informações.
[out] aOutputKey
Ponteiro para a chave de saída.
[in] aOutputKeyLength
Tamanho do buffer de chave de saída.
Valores de retorno
OT_ERROR_NONE
A expansão HKDF foi bem-sucedida.
OT_ERROR_FAILED
Falha na expansão HKDF.
OT_ERROR_INVALID_ARGS
aContext era 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 Salt para HKDF.
[in] aSaltLength
Comprimento do Sal.
[in] aInputKey
Ponteiro para a tecla de entrada.
Valores de retorno
OT_ERROR_NONE
A extração de HKDF foi bem-sucedida.
OT_ERROR_FAILED
Falha na extração de HKDF.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

Inicialize o contexto HKDF.

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

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

Cancele a inicialização da operação HMAC.

Detalhes
Parâmetros
[in] aContext
Contexto para operação HMAC.
Valores de retorno
OT_ERROR_NONE
Operação HMAC não inicializada com sucesso.
OT_ERROR_FAILED
Falha na operação HMAC não inicializada.
OT_ERROR_INVALID_ARGS
aContext era 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 de retorno
OT_ERROR_NONE
Operação HMAC concluída com sucesso.
OT_ERROR_FAILED
Falha ao concluir a operação HMAC.
OT_ERROR_INVALID_ARGS
aContext ou aBuf era NULL

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

Inicialize a operação HMAC.

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

otPlatCryptoHmacSha256Iniciar

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 operação HMAC.
Valores de retorno
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 era NULL

otPlatCryptoHmacSha256Atualização

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

Atualize a operação HMAC com 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 de retorno
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 era 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 o PSA ITS.

Nota: Se OT_CRYPTO_KEY_STORAGE_PERSISTENT for passado para aKeyPersistence, então aKeyRef é entrada e a plataforma deve usar a aKeyRef fornecida e não DEVE alterá-la. Se OT_CRYPTO_KEY_STORAGE_VOLATILE for passado para aKeyPersistence, então aKeyRef será gerado, o valor inicial não importa e a API da plataforma DEVE atualizá-lo para retornar a nova chave ref.

Detalhes
Parâmetros
[in,out] aKeyRef
Ponteiro para a chave ref a ser usada para operações de criptografia.
[in] aKeyType
Codificação do tipo de chave para a chave.
[in] aKeyAlgorithm
Codificação do 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 de retorno
OT_ERROR_NONE
A chave foi importada com sucesso.
OT_ERROR_FAILED
Falha ao importar a chave.
OT_ERROR_INVALID_ARGS
aKey foi definido como NULL.

Esta API é usada apenas pelo núcleo OT quando OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE está habilitado.

otPlatCryptoInit

void otPlatCryptoInit(
  void
)

Inicialize o módulo Crypto.

otPlatCryptoRandomDeinit

void otPlatCryptoRandomDeinit(
  void
)

Desinicialize o gerador de números pseudoaleatórios criptograficamente seguro (CSPRNG).

otPlatCryptoRandomGet

otError otPlatCryptoRandomGet(
  uint8_t *aBuffer,
  uint16_t aSize
)

Preenche um determinado buffer com bytes aleatórios criptograficamente seguros.

Detalhes
Parâmetros
[out] aBuffer
Um ponteiro para um buffer para preencher com os bytes aleatórios.
[in] aSize
Tamanho do buffer (número de bytes a serem preenchidos).
Valores de retorno
OT_ERROR_NONE
Buffer preenchido com sucesso com valores aleatórios.
OT_ERROR_FAILED
Operação falhou.

otPlatCryptoRandomInit

void otPlatCryptoRandomInit(
  void
)

Inicialize o gerador de números pseudoaleatórios criptograficamente seguro (CSPRNG).

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

Cancele a inicialização da operação SHA-256.

Detalhes
Parâmetros
[in] aContext
Contexto para operação SHA-256.
Valores de retorno
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 era 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] aHash
Um ponteiro para o buffer de saída, onde o hash precisa ser armazenado.
[in] aHashSize
O comprimento de aHash em bytes.
Valores de retorno
OT_ERROR_NONE
Concluiu 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 era NULL

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

Inicialize a operação SHA-256.

Detalhes
Parâmetros
[in] aContext
Contexto para operação SHA-256.
Valores de retorno
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 era NULL

otPlatCryptoSha256Iniciar

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

Inicie a operação SHA-256.

Detalhes
Parâmetros
[in] aContext
Contexto para operação SHA-256.
Valores de retorno
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 era NULL

otPlatCryptoSha256Atualização

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

Atualize a operação SHA-256 com 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 de retorno
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 era NULL

Recursos

Os tópicos de referência da API OpenThread se originam do código-fonte, disponível no GitHub . Para obter mais informações ou contribuir com nossa documentação, consulte Recursos .