Crypto - Thread Stack

This module includes cryptographic functions.

Summary

Typedefs

otCryptoSha256Hash typedef
This structure represents a SHA-256 hash.

Variables

OT_TOOL_PACKED_END

Functions

otCryptoAesCcm(const otCryptoKey *aKey, uint8_t aTagLength, const void *aNonce, uint8_t aNonceLength, const void *aHeader, uint32_t aHeaderLength, void *aPlainText, void *aCipherText, uint32_t aLength, bool aEncrypt, void *aTag)
void
This method performs AES CCM computation.
otCryptoEcdsaSign(uint8_t *aOutput, uint16_t *aOutputLength, const uint8_t *aInputHash, uint16_t aInputHashLength, const uint8_t *aPrivateKey, uint16_t aPrivateKeyLength)
This method creates ECDSA sign.
otCryptoHmacSha256(const otCryptoKey *aKey, const uint8_t *aBuf, uint16_t aBufLength, otCryptoSha256Hash *aHash)
void
This function performs HMAC computation.

Structs

otCryptoSha256Hash

This structure represents a SHA-256 hash.

Typedefs

otCryptoSha256Hash

struct otCryptoSha256Hash otCryptoSha256Hash

This structure represents a SHA-256 hash.

Variables

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otCryptoSha256Hash OT_TOOL_PACKED_END

Functions

otCryptoAesCcm

void otCryptoAesCcm(
  const otCryptoKey *aKey,
  uint8_t aTagLength,
  const void *aNonce,
  uint8_t aNonceLength,
  const void *aHeader,
  uint32_t aHeaderLength,
  void *aPlainText,
  void *aCipherText,
  uint32_t aLength,
  bool aEncrypt,
  void *aTag
)

This method performs AES CCM computation.

Details
Parameters
[in] aKey
A pointer to the key.
[in] aTagLength
Length of tag in bytes.
[in] aNonce
A pointer to the nonce.
[in] aNonceLength
Length of nonce in bytes.
[in] aHeader
A pointer to the header.
[in] aHeaderLength
Length of header in bytes.
[in,out] aPlainText
A pointer to the plaintext.
[in,out] aCipherText
A pointer to the ciphertext.
[in] aLength
Plaintext length in bytes.
[in] aEncrypt
true on encrypt and false on decrypt.
[out] aTag
A pointer to the tag.

otCryptoEcdsaSign

otError otCryptoEcdsaSign(
  uint8_t *aOutput,
  uint16_t *aOutputLength,
  const uint8_t *aInputHash,
  uint16_t aInputHashLength,
  const uint8_t *aPrivateKey,
  uint16_t aPrivateKeyLength
)

This method creates ECDSA sign.

Details
Parameters
[out] aOutput
An output buffer where ECDSA sign should be stored.
[in,out] aOutputLength
The length of the aOutput buffer.
[in] aInputHash
An input hash.
[in] aInputHashLength
The length of the aInputHash buffer.
[in] aPrivateKey
A private key in PEM format.
[in] aPrivateKeyLength
The length of the aPrivateKey buffer.
Return Values
OT_ERROR_NONE
ECDSA sign has been created successfully.
OT_ERROR_NO_BUFS
Output buffer is too small.
OT_ERROR_INVALID_ARGS
Private key is not valid EC Private Key.
OT_ERROR_FAILED
Error during signing.

otCryptoHmacSha256

void otCryptoHmacSha256(
  const otCryptoKey *aKey,
  const uint8_t *aBuf,
  uint16_t aBufLength,
  otCryptoSha256Hash *aHash
)

This function performs HMAC computation.

Details
Parameters
[in] aKey
A pointer to the key.
[in] aBuf
A pointer to the input buffer.
[in] aBufLength
The length of aBuf in bytes.
[out] aHash
A pointer to a otCryptoSha256Hash structure to output the hash value.

Macros

OT_CRYPTO_SHA256_HASH_SIZE

 OT_CRYPTO_SHA256_HASH_SIZE 32

Length of SHA256 hash (in bytes).

Resources

OpenThread API Reference topics originate from the source code, available on GitHub. For more information, or to contribute to our documentation, refer to Resources.