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>
+ Include dependency graph for signers.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
 Cryptography support.
 

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>
 

Typedef Documentation

◆ SignerPs1

using crypto::weak::SignerPs1 = DsaSigner<DsaType::kRsaPss, DigestSize::k160>

Outputs RSASSA signature using SHA-2 and PSS padding.

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.

Definition at line 160 of file signers.hpp.

◆ SignerRs1

using crypto::weak::SignerRs1 = DsaSigner<DsaType::kRsa, DigestSize::k160>

Outputs RSASSA signature using SHA-1 and PKCS1 padding.

Definition at line 154 of file signers.hpp.