// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the Apache 2.0 License. #pragma once #include "ccf/crypto/key_pair.h" #include "ccf/crypto/pem.h" #include "ccf/crypto/public_key.h" #include "ccf/crypto/rsa_key_pair.h" #include namespace ccf::crypto { class COSEVerifier { public: virtual bool verify( const std::span& buf, std::span& authned_content) const = 0; virtual bool verify_detached( std::span buf, std::span payload) const = 0; virtual ~COSEVerifier() = default; }; using COSEVerifierUniquePtr = std::unique_ptr; COSEVerifierUniquePtr make_cose_verifier_from_cert( const std::vector& cert); COSEVerifierUniquePtr make_cose_verifier_from_key(const Pem& public_key); }