97 const std::vector<uint8_t> &master_salt,
size_t piv_size,
size_t sender_seq_number,
98 const std::vector<uint8_t> &sender_id,
const std::vector<uint8_t> &receiver_id);
119 SecurityResult
wrap(uint8_t* data,
size_t data_len,
size_t data_max_len, uint8_t** cose_ptr,
size_t* cose_len);
136 SecurityResult
unwrap(uint8_t* data,
size_t data_len,
size_t data_max_len,
size_t* new_data_len);
139 SecurityResult get_master_key_env(std::vector<uint8_t>& master_key)
const;
140 SecurityResult generate_nonce();
141 SecurityResult build_kdf_info(
const std::vector<uint8_t>&
id, cose_algo_t alg,
const std::string& type,
size_t len, uint8_t** out,
size_t* out_len);
142 SecurityResult derive_key(
const std::vector<uint8_t>& ikm,
const std::vector<uint8_t>& salt,
const std::vector<uint8_t>&
id, cose_algo_t algo, std::vector<uint8_t>& key_out, cose_key_t* cose_k_out);
143 SecurityResult derive_iv(
const std::vector<uint8_t>& ikm,
const std::vector<uint8_t>& salt, cose_algo_t alg, std::vector<uint8_t>& iv_out);
144 SecurityResult derive_context(
const std::vector<uint8_t>& master_key,
const std::vector<uint8_t>& master_salt);
145 SecurityResult cose_stateless_compress(uint8_t* cose,
size_t cose_len, uint8_t** out,
size_t* out_len)
const;
146 SecurityResult cose_stateless_decompress(uint8_t* data,
size_t data_len,
size_t data_max_len,
size_t* out_len)
const;
154 std::vector<uint8_t> context_iv_{};
156 std::vector<uint8_t> piv_bytes_{};
157 size_t sender_seq_number_;
161 std::vector<uint8_t> sender_id_{};
162 std::vector<uint8_t> sender_key_bytes_{};
163 cose_key_t sender_cose_key_{};
164 std::vector<uint8_t> receiver_id_{};
165 std::vector<uint8_t> receiver_key_bytes_{};
166 cose_key_t receiver_cose_key_{};
169 uint8_t internal_buf_[COSE_INTERNAL_BUF_SIZE]{};
SecurityResult wrap(uint8_t *data, size_t data_len, size_t data_max_len, uint8_t **cose_ptr, size_t *cose_len)
Encrypts and serializes an application payload as a COSE message.
Definition SecurityLayer.cpp:411
SecurityResult unwrap(uint8_t *data, size_t data_len, size_t data_max_len, size_t *new_data_len)
Decodes, authenticates, and decrypts a COSE message.
Definition SecurityLayer.cpp:456