7#include <openssl/ossl_typ.h>
10#include <t_cose/t_cose_sign1_sign.h>
11#include <unordered_map>
16 static constexpr int64_t COSE_PHEADER_KEY_ALG = 1;
18 static constexpr int64_t COSE_PHEADER_KEY_ID = 4;
20 static constexpr int64_t COSE_PHEADER_KEY_VDS = 395;
22 static constexpr const char* COSE_PHEADER_KEY_TXID =
"ccf.txid";
27 template <
typename Callable>
29 impl(
std::forward<Callable>(impl)),
33 void apply(QCBOREncodeContext* ctx)
const
44 std::function<void(QCBOREncodeContext*)> impl{};
51 int64_t key,
const std::string& value);
54 const std::string& key, int64_t value);
57 const std::string& key,
const std::string& value);
60 int64_t key,
const std::vector<uint8_t>& value);
78 const std::vector<COSEParametersFactory>& protected_headers,
79 std::span<const uint8_t> payload);
Definition cose_sign.h:25
COSEParametersFactory(Callable &&impl, size_t args_size)
Definition cose_sign.h:28
size_t estimated_size() const
Definition cose_sign.h:38
void apply(QCBOREncodeContext *ctx) const
Definition cose_sign.h:33
Definition public_key.h:16
std::vector< uint8_t > cose_sign1(KeyPair_OpenSSL &key, const std::vector< COSEParametersFactory > &protected_headers, std::span< const uint8_t > payload)
Definition cose_sign.cpp:161
COSEParametersFactory cose_params_string_string(const std::string &key, const std::string &value)
Definition cose_sign.cpp:135
COSEParametersFactory cose_params_int_bytes(int64_t key, const std::vector< uint8_t > &value)
Definition cose_sign.cpp:148
std::optional< int > key_to_cose_alg_id(ccf::crypto::PublicKey_OpenSSL &key)
Definition cose_sign.cpp:85
COSEParametersFactory cose_params_int_int(int64_t key, int64_t value)
Definition cose_sign.cpp:99
COSEParametersFactory cose_params_int_string(int64_t key, const std::string &value)
Definition cose_sign.cpp:110
COSEParametersFactory cose_params_string_int(const std::string &key, int64_t value)
Definition cose_sign.cpp:122
Definition cose_sign.h:63
COSESignError(const std::string &msg)
Definition cose_sign.h:64