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

Detailed Description

Digital signature generators.

Definition in file signers.hpp.

Go to the source code of this file.

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

Classes

class  crypto::Signer
 Base signer class. More...
 
class  crypto::SignerNone
 "none" algorithm signer More...
 
class  crypto::HmacShaSigner< Bits >
 HMAC-SHA signer. More...
 
class  crypto::DsaSigner< Type, Bits >
 Generic signer for asymmetric cryptography. More...
 
class  crypto::CmsSigner
 

Namespaces

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

Typedefs

using crypto::weak::SignerRs1 = DsaSigner<DsaType::kRsa, DigestSize::k160>
 Outputs RSASSA signature using SHA-1 and PKCS1 padding.
 
using crypto::weak::SignerPs1 = DsaSigner<DsaType::kRsaPss, DigestSize::k160>
 
Outputs HMAC SHA MAC.
using crypto::SignerHs1 = HmacShaSigner<DigestSize::k160>
 
using crypto::SignerHs256 = HmacShaSigner<DigestSize::k256>
 
using crypto::SignerHs384 = HmacShaSigner<DigestSize::k384>
 
using crypto::SignerHs512 = HmacShaSigner<DigestSize::k512>
 
Outputs RSASSA signature using SHA-2 and PKCS1 padding.
using crypto::SignerRs256 = DsaSigner<DsaType::kRsa, DigestSize::k256>
 
using crypto::SignerRs384 = DsaSigner<DsaType::kRsa, DigestSize::k384>
 
using crypto::SignerRs512 = DsaSigner<DsaType::kRsa, DigestSize::k512>
 
Outputs 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::SignerEs256 = DsaSigner<DsaType::kEc, DigestSize::k256>
 
using crypto::SignerEs384 = DsaSigner<DsaType::kEc, DigestSize::k384>
 
using crypto::SignerEs512 = DsaSigner<DsaType::kEc, DigestSize::k512>
 
Outputs 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::SignerPs256 = DsaSigner<DsaType::kRsaPss, DigestSize::k256>
 
using crypto::SignerPs384 = DsaSigner<DsaType::kRsaPss, DigestSize::k384>
 
using crypto::SignerPs512 = DsaSigner<DsaType::kRsaPss, DigestSize::k512>