21#ifndef COAP_CRYPTO_INTERNAL_H_
22#define COAP_CRYPTO_INTERNAL_H_
33#ifndef COAP_CRYPTO_MAX_KEY_SIZE
34#define COAP_CRYPTO_MAX_KEY_SIZE (32)
37#ifndef COAP_OSCORE_DEFAULT_REPLAY_WINDOW
38#define COAP_OSCORE_DEFAULT_REPLAY_WINDOW 32
103 size_t *max_result_len);
121 size_t *max_result_len);
int coap_crypto_hmac(cose_hmac_alg_t hmac_alg, coap_bin_const_t *key, coap_bin_const_t *data, coap_bin_const_t **hmac)
Create a HMAC hash of the provided data.
coap_bin_const_t coap_crypto_key_t
The structure that holds the Crypto Key.
int coap_crypto_aead_decrypt(const coap_crypto_param_t *params, coap_bin_const_t *data, coap_bin_const_t *aad, uint8_t *result, size_t *max_result_len)
Decrypt the provided encrypted data into plaintext.
int coap_crypto_aead_encrypt(const coap_crypto_param_t *params, coap_bin_const_t *data, coap_bin_const_t *aad, uint8_t *result, size_t *max_result_len)
Encrypt the provided plaintext data.
int coap_crypto_hash(cose_alg_t alg, const coap_bin_const_t *data, coap_bin_const_t **hash)
Create a hash of the provided data.
int coap_crypto_check_hkdf_alg(cose_hkdf_alg_t hkdf_alg)
Check whether the defined hkdf algorithm is supported by the underlying crypto library.
struct coap_crypto_aes_ccm_t coap_crypto_aes_ccm_t
The structure that holds the AES Crypto information.
struct coap_crypto_param_t coap_crypto_param_t
The common structure that holds the Crypto information.
int coap_crypto_check_cipher_alg(cose_alg_t alg)
Check whether the defined cipher algorithm is supported by the underlying crypto library.
An implementation of the CBOR Object Signing and Encryption (RFC).
CoAP binary data definition with const data.
The structure that holds the AES Crypto information.
size_t l
The number of bytes in the length field.
const uint8_t * nonce
must be exactly 15 - l bytes
coap_crypto_key_t key
The Key to use.
size_t tag_len
The size of the Tag.
The common structure that holds the Crypto information.
coap_crypto_key_t key
The key to use.
union coap_crypto_param_t::@2 params
coap_crypto_aes_ccm_t aes
Used if AES type encryption.
cose_alg_t alg
The COSE algorith to use.