CCF
Loading...
Searching...
No Matches
cose_verifier.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
6
7#include <chrono>
8
9namespace ccf::crypto
10{
12 {
13 public:
14 virtual bool verify(
15 const std::span<const uint8_t>& envelope,
16 std::span<uint8_t>& authned_content) const = 0;
17 [[nodiscard]] virtual bool verify_detached(
18 std::span<const uint8_t> envelope,
19 std::span<const uint8_t> payload) const = 0;
20 [[nodiscard]] virtual bool verify_decomposed(
21 std::span<const uint8_t> phdr,
22 std::span<const uint8_t> payload,
23 std::span<const uint8_t> sig,
24 int64_t alg) const = 0;
25 virtual ~COSEVerifier() = default;
26 };
27
28 using COSEVerifierUniquePtr = std::unique_ptr<COSEVerifier>;
29
33 const std::vector<uint8_t>& cert);
36 const std::vector<uint8_t>& der);
39 std::span<const uint8_t> public_key);
40
42 {
43 std::string from_txid;
44 std::string to_txid;
45 };
47 std::span<const uint8_t> cose_msg);
48}
Definition cose_verifier.h:12
virtual bool verify_decomposed(std::span< const uint8_t > phdr, std::span< const uint8_t > payload, std::span< const uint8_t > sig, int64_t alg) const =0
virtual ~COSEVerifier()=default
virtual bool verify(const std::span< const uint8_t > &envelope, std::span< uint8_t > &authned_content) const =0
virtual bool verify_detached(std::span< const uint8_t > envelope, std::span< const uint8_t > payload) const =0
Definition pem.h:18
Definition base64.h:11
COSEVerifierUniquePtr make_cose_verifier_any_cert(const std::vector< uint8_t > &cert)
Definition cose_verifier.cpp:274
std::unique_ptr< COSEVerifier > COSEVerifierUniquePtr
Definition cose_verifier.h:28
COSEVerifierUniquePtr make_cose_verifier_from_der_cert(const std::vector< uint8_t > &der)
Definition cose_verifier.cpp:285
COSEVerifierUniquePtr make_cose_verifier_from_pem_cert(const Pem &pem)
Definition cose_verifier.cpp:280
COSEVerifierUniquePtr make_cose_verifier_from_key(const Pem &public_key)
Definition cose_verifier.cpp:291
COSEEndorsementValidity extract_cose_endorsement_validity(std::span< const uint8_t > cose_msg)
Definition cose_verifier.cpp:302
Definition cose_verifier.h:42
std::string to_txid
Definition cose_verifier.h:44
std::string from_txid
Definition cose_verifier.h:43