userver: userver/crypto/verifiers.hpp File Reference
Loading...
Searching...
No Matches
verifiers.hpp File Reference

Detailed Description

Digital signature verifiers.

Definition in file verifiers.hpp.

Go to the source code of this file.

#include <initializer_list>
#include <memory>
#include <string>
#include <string_view>
#include <userver/crypto/basic_types.hpp>
#include <userver/crypto/certificate.hpp>
#include <userver/crypto/exception.hpp>
#include <userver/crypto/public_key.hpp>
#include <userver/utils/flags.hpp>
+ This graph shows which files directly or indirectly include this file:

Classes

class  crypto::Verifier
 Base verifier class. More...
 
class  crypto::VerifierNone
 "none" algorithm verifier More...
 
class  crypto::HmacShaVerifier< Bits >
 HMAC-SHA verifier. More...
 
class  crypto::DsaVerifier< Type, Bits >
 Generic verifier for asymmetric cryptography. More...
 
class  crypto::CmsVerifier
 

Namespaces

namespace  crypto
 Cryptographic primitives: hashing, signatures, certificates, and randomness.
 
namespace  crypto::weak
 Non-cryptographic signature helpers.
 

Typedefs

using crypto::weak::VerifierRs1 = DsaVerifier<DsaType::kRsa, DigestSize::k160>
 Verifies RSASSA signature using SHA-1 and PKCS1 padding.
 
using crypto::weak::VerifierPs1 = DsaVerifier<DsaType::kRsaPss, DigestSize::k160>
 
Verifies HMAC SHA MAC.
using crypto::VerifierHs1 = HmacShaVerifier<DigestSize::k160>
 
using crypto::VerifierHs256 = HmacShaVerifier<DigestSize::k256>
 
using crypto::VerifierHs384 = HmacShaVerifier<DigestSize::k384>
 
using crypto::VerifierHs512 = HmacShaVerifier<DigestSize::k512>
 
Verifies RSASSA signature using SHA-2 and PKCS1 padding.
using crypto::VerifierRs256 = DsaVerifier<DsaType::kRsa, DigestSize::k256>
 
using crypto::VerifierRs384 = DsaVerifier<DsaType::kRsa, DigestSize::k384>
 
using crypto::VerifierRs512 = DsaVerifier<DsaType::kRsa, DigestSize::k512>
 
Verifies ECDSA as per RFC7518.

OpenSSL generates ECDSA signatures in ASN.1/DER format, RFC7518 specifies signature as a concatenation of zero-padded big-endian (R, S) values.

using crypto::VerifierEs256 = DsaVerifier<DsaType::kEc, DigestSize::k256>
 
using crypto::VerifierEs384 = DsaVerifier<DsaType::kEc, DigestSize::k384>
 
using crypto::VerifierEs512 = DsaVerifier<DsaType::kEc, DigestSize::k512>
 
Verifies RSASSA signature using SHA-2 and PSS padding as per RFC7518.

JWA specifications require using MGF1 function with the same hash function as for the digest and salt length to be the same size as the hash output.

using crypto::VerifierPs256 = DsaVerifier<DsaType::kRsaPss, DigestSize::k256>
 
using crypto::VerifierPs384 = DsaVerifier<DsaType::kRsaPss, DigestSize::k384>
 
using crypto::VerifierPs512 = DsaVerifier<DsaType::kRsaPss, DigestSize::k512>