7#include <initializer_list> 
   12#include <userver/crypto/basic_types.hpp> 
   13#include <userver/crypto/certificate.hpp> 
   14#include <userver/crypto/exception.hpp> 
   15#include <userver/crypto/public_key.hpp> 
   16#include <userver/utils/flags.hpp> 
   18USERVER_NAMESPACE_BEGIN
 
   25  explicit Verifier(
const std::string& name);
 
   29  virtual void Verify(std::initializer_list<std::string_view> data,
 
   30                      std::string_view raw_signature) 
const = 0;
 
   39  void Verify(std::initializer_list<std::string_view> data,
 
   40              std::string_view raw_signature) 
const override;
 
   49  ~HmacShaVerifier() 
override;
 
   52  void Verify(std::initializer_list<std::string_view> data,
 
   53              std::string_view raw_signature) 
const override;
 
   61using VerifierHs1 = HmacShaVerifier<
DigestSize::k160>;
 
   62using VerifierHs256 = HmacShaVerifier<
DigestSize::k256>;
 
   63using VerifierHs384 = HmacShaVerifier<
DigestSize::k384>;
 
   64using VerifierHs512 = HmacShaVerifier<
DigestSize::k512>;
 
   78  void Verify(std::initializer_list<std::string_view> data,
 
   79              std::string_view raw_signature) 
const override;
 
   86                    std::string_view raw_signature) 
const;
 
  130  enum class InForm { kDer, kPem, kSMime };
 
  135  ~CmsVerifier() 
override;
 
  138  void Verify(std::initializer_list<std::string_view> data,