O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Crypto – Platform

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
}
tipo enumerado
Esta enumeração define as principais sinalizações de uso.
otCryptoKeyAlgorithm{
  OT_CRYPTO_KEY_ALG_VENDOR,
  OT_CRYPTO_KEY_ALG_AES_ECB,
  OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
tipo enumerado
Esta enumeração define os principais algoritmos.
otCryptoKeyStorage{
  OT_CRYPTO_KEY_STORAGE_VOLATILE,
  OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
tipo enumerado
Esta enumeração define os tipos de armazenamento principais.
otCryptoKeyType{
  OT_CRYPTO_KEY_TYPE_RAW,
  OT_CRYPTO_KEY_TYPE_AES,
  OT_CRYPTO_KEY_TYPE_HMAC
}
tipo enumerado
Esta enumeração define os tipos de chave.

Typedefs

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

Funções

otPlatCryptoAesEncrypt(otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Criptografa os dados fornecidos.
otPlatCryptoAesFree(otCryptoContext *aContext)
Libere o contexto do AES.
otPlatCryptoAesInit(otCryptoContext *aContext)
Inicialize a operação AES.
otPlatCryptoAesSetKey(otCryptoContext *aContext, const otCryptoKey *aKey)
Defina a chave da operação do AES.
otPlatCryptoDestroyKey(otCryptoKeyRef aKeyRef)
Destrói uma chave armazenada em 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 referência de chave transmitida tem uma chave associada no PSA ITS.
otPlatCryptoHkdfDeinit(otCryptoContext *aContext)
Cancele a inicialização do contexto do HKDF.
otPlatCryptoHkdfExpand(otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
Executar a etapa de expansão do HKDF.
otPlatCryptoHkdfExtract(otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
Executar etapa HKDF Extract.
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 de HMAC.
otPlatCryptoHmacSha256Init(otCryptoContext *aContext)
Inicializar 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 no PSA ITS.
otPlatCryptoInit(void)
void
Inicialize o módulo Crypto.
otPlatCryptoRandomDeinit(void)
void
Desinicialize o gerador de números pseudoaleatórios criptograficamente seguros (CSPRNG).
otPlatCryptoRandomGet(uint8_t *aBuffer, uint16_t aSize)
Preenche um determinado buffer com bytes aleatórios com criptografia segura.
otPlatCryptoRandomInit(void)
void
Inicialize o gerador de números pseudoaleatórios criptograficamente seguros (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)
Inicializar a operação SHA-256.
otPlatCryptoSha256Start(otCryptoContext *aContext)
Inicie a operação SHA-256.
otPlatCryptoSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Atualização da operação SHA-256 com nova entrada.

Estruturas

otCryptoContext (em inglês)

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

otCryptoKey

Essa estrutura representa o material necessário para as operações de criptografia.

Enumerações

enumeração anônima

 anonymous enum

Esta enumeração define as principais sinalizações de uso.

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: é possível exportar a chave.

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

Esta enumeração define os principais algoritmos.

Propriedades
OT_CRYPTO_KEY_ALG_AES_ECB

Algoritmo de chave: AES ECB.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

Algoritmo de chave: HMAC SHA-256.

OT_CRYPTO_KEY_ALG_VENDOR

Algoritmo principal: definido pelo fornecedor.

OtCryptoKeyStorage

 otCryptoKeyStorage

Esta enumeração define os tipos de armazenamento principais.

Propriedades
OT_CRYPTO_KEY_STORAGE_PERSISTENT

Persistência de chaves: a chave é persistente.

OT_CRYPTO_KEY_STORAGE_VOLATILE

Persistência de chaves: a chave é volátil.

OtCryptoKeyType

 otCryptoKeyType

Esta 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

Esse tipo de dado representa a referência da chave.

Funções

OtPlatCryptoAesEncrypt

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

Criptografa os dados fornecidos.

Detalhes
Parâmetros
[in] aContext
Contexto para a operação do 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 foi criptografado.
OT_ERROR_FAILED
Falha ao criptografar aInput.
OT_ERROR_INVALID_ARGS
aContext, aKey ou aOutput eram NULL.

OtPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

Libere o contexto do AES.

Detalhes
Parâmetros
[in] aContext
Contexto para a operação do AES.
Valores de retorno
OT_ERROR_NONE
O contexto do AES foi liberado.
OT_ERROR_FAILED
Falha ao liberar o contexto do 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 a operação do AES.
Valores de retorno
OT_ERROR_NONE
Operação AES iniciada.
OT_ERROR_FAILED
Falha ao inicializar a operação do 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 da operação do AES.

Detalhes
Parâmetros
[in] aContext
Contexto para a operação do AES.
[out] aKey
Chave que será usada na operação do AES.
Valores de retorno
OT_ERROR_NONE
A chave foi configurada para a operação do AES.
OT_ERROR_FAILED
Falha ao definir a chave da operação do AES.
OT_ERROR_INVALID_ARGS
aContext ou aKey era NULL.

OtPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

Destrói uma chave armazenada em PSA ITS.

Detalhes
Parâmetros
[in] aKeyRef
A referência de chave a ser destruída
Valores de retorno
OT_ERROR_NONE
A chave foi destruída.
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 ref chave a ser usada para operações de criptografia.
[out] aBuffer
Apontador para o buffer em que a chave precisa ser exportada.
[in] aBufferLen
Tamanho 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.
OT_ERROR_FAILED
Falha ao exportar aKeyRef.
OT_ERROR_INVALID_ARGS
aBuffer era NULL.

OtPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

Verifique se a referência de chave transmitida tem uma chave associada no PSA ITS.

Detalhes
Parâmetros
[in] aKeyRef
A referência principal a ser verificada.
Valores de retorno
TRUE
Há uma chave associada a aKeyRef.
FALSE
Não há chaves associadas a aKeyRef.

OtPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Cancele a inicialização do contexto do HKDF.

Detalhes
Parâmetros
[in] aContext
Contexto para a operação HKDF.
Valores de retorno
OT_ERROR_NONE
A operação de HKDF não foi inicializada.
OT_ERROR_FAILED
Falha ao inicializar a operação de 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
)

Executar a etapa de expansão do HKDF.

Detalhes
Parâmetros
[in] aContext
Contexto da operação de HKDF.
[in] aInfo
Apontador para a sequência de informações
[in] aInfoLength
Duração 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 do HKDF foi concluída.
OT_ERROR_FAILED
Falha ao expandir a HKDF.
OT_ERROR_INVALID_ARGS
aContext era NULL.

OtPlatCryptoHkdfExtract

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

Executar etapa HKDF Extract.

Detalhes
Parâmetros
[in] aContext
Contexto da operação de HKDF.
[in] aSalt
Ponteiro para sal para HKDF
[in] aSaltLength
Duração de sal.
[in] aInputKey
Apontador para a chave de entrada
Valores de retorno
OT_ERROR_NONE
Extração de HKDF concluída.
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 a operação HKDF.
Valores de retorno
OT_ERROR_NONE
Operação AES iniciada.
OT_ERROR_FAILED
Falha ao inicializar a operação do 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 a operação HMAC.
Valores de retorno
OT_ERROR_NONE
Operação HMAC não inicializada.
OT_ERROR_FAILED
Falha ao cancelar a operação HMAC durante a inicialização.
OT_ERROR_INVALID_ARGS
aContext era NULL.

otPlatCryptoHmacSha256Finish

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

Conclua a operação de HMAC.

Detalhes
Parâmetros
[in] aContext
Contexto para a 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.
OT_ERROR_FAILED
Falha ao concluir a operação HMAC.
OT_ERROR_INVALID_ARGS
aContext ou aBuf era NULL.

OtPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

Inicializar a operação HMAC.

Detalhes
Parâmetros
[in] aContext
Contexto para a 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 a operação HMAC.
[in] aKey
Material da chave a ser usado para a operação HMAC.
Valores de retorno
OT_ERROR_NONE
Operação HMAC iniciada.
OT_ERROR_FAILED
Falha ao iniciar a operação HMAC.
OT_ERROR_INVALID_ARGS
aContext ou aKey era NULL.

Atualização de otPlatCryptoHmacSha256

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 a 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 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 no PSA ITS.

Observação:se a OT_CRYPTO_KEY_STORAGE_PERSISTENT for transmitida para aKeyPersistence, a aKeyRef será inserida e a plataforma usará a aKeyRef fornecida e PRECISA não alterá-la. Se OT_CRYPTO_KEY_STORAGE_VOLATILE for transmitido para aKeyPersistence, a saída de aKeyRef será concluída, e o valor inicial não importa, e a API da plataforma PRECISA atualizá-la para retornar a nova chave ref.

Detalhes
Parâmetros
[in,out] aKeyRef
Ponteiro para o referência de chave a ser usado para operações de criptografia.
[in] aKeyType
Codificação de tipo da chave.
[in] aKeyAlgorithm
Codificação do algoritmo da chave.
[in] aKeyUsage
Codificação de uso da chave (combinações de OT_CRYPTO_KEY_USAGE_*).
[in] aKeyPersistence
Persistência de chave para a chave
[in] aKey
Chave real a ser importada.
[in] aKeyLen
Tamanho da chave a ser importada.
Valores de retorno
OT_ERROR_NONE
A chave foi importada.
OT_ERROR_FAILED
Falha ao importar a chave.
OT_ERROR_INVALID_ARGS
aKey foi definido como NULL.

Essa API é usada pelo núcleo OT apenas quando OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE está ativado.

OtPlatCryptoInit

void otPlatCryptoInit(
  void
)

Inicialize o módulo Crypto.

OtPlatCryptoRandomDeinit

void otPlatCryptoRandomDeinit(
  void
)

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

OtPlatCryptoRandomGet

otError otPlatCryptoRandomGet(
  uint8_t *aBuffer,
  uint16_t aSize
)

Preenche um determinado buffer com bytes aleatórios com criptografia segura.

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 valores aleatórios.
OT_ERROR_FAILED
Falha na operação.

OtPlatCryptoRandomInit

void otPlatCryptoRandomInit(
  void
)

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

OtPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

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

Detalhes
Parâmetros
[in] aContext
Contexto para a operação SHA-256.
Valores de retorno
OT_ERROR_NONE
A operação de SHA-256 não foi inicializada.
OT_ERROR_FAILED
Falha ao inicializar a operação SHA-256.
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 a 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
A operação SHA-256 foi concluída.
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
)

Inicializar a operação SHA-256.

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

OtPlatCryptoSha256Start

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

Inicie a operação SHA-256.

Detalhes
Parâmetros
[in] aContext
Contexto para a operação SHA-256.
Valores de retorno
OT_ERROR_NONE
A operação SHA-256 foi iniciada.
OT_ERROR_FAILED
Falha ao iniciar a operação SHA-256.
OT_ERROR_INVALID_ARGS
aContext era NULL.

Atualização de otPlatCryptoSha256

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

Atualização da operação SHA-256 com nova entrada.

Detalhes
Parâmetros
[in] aContext
Contexto para a 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 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 são originados do código-fonte, disponível no GitHub. Para saber mais ou contribuir com nossa documentação, consulte Recursos.