Botan 2.19.5 Crypto and TLS for C&

Public Member Functions | List of all members
Botan::EMSA Class Referenceabstract

`#include <emsa.h>`

Inheritance diagram for Botan::EMSA:

## Public Member Functions
virtual EMSA * | clone ()=0
virtual AlgorithmIdentifier | config_for_x509 (const Private_Key &key, const std::string &cert_hash_name) const
virtual secure_vector< uint8_t > | encoding_of (const secure_vector< uint8_t > &msg, size_t output_bits, RandomNumberGenerator &rng)=0
virtual std::string | name () const =0
virtual secure_vector< uint8_t > | raw_data ()=0
virtual void | update (const uint8_t input[], size_t length)=0
virtual bool | verify (const secure_vector< uint8_t > &coded, const secure_vector< uint8_t > &raw, size_t key_bits)=0
virtual | ~EMSA ()

## Detailed Description

EMSA, from IEEE 1363s Encoding Method for Signatures, Appendix

Any way of encoding/padding signatures

Definition at line 27 of file emsa.h.

## Constructor & Destructor Documentation

## ◆ ~EMSA()

virtual Botan::EMSA::~EMSA | ( |  | ) |
| inline virtual

Definition at line 30 of file emsa.h.

30{}

## Member Function Documentation

## ◆ clone()

virtual EMSA * Botan::EMSA::clone | ( |  | ) |
| pure virtual

Returns
  a new object representing the same encoding method as *this

Implemented in Botan::EMSA1, Botan::EMSA_PKCS1v15, Botan::EMSA_PKCS1v15_Raw, Botan::PSSR, Botan::PSSR_Raw, Botan::EMSA_Raw, Botan::EMSA_X931, Botan::ISO_9796_DS2, and Botan::ISO_9796_DS3.

## ◆ config_for_x509()

AlgorithmIdentifier Botan::EMSA::config_for_x509 | ( | const Private_Key & | key,
|  | const std::string & | cert_hash_name
| ) |  | const
| virtual

Prepare sig_algo for use in choose_sig_format for x509 certs

Parameters

  key | used for checking compatibility with the encoding scheme
  cert_hash_name | is checked to equal the hash for the encoding

Returns
  algorithm identifier to signatures created using this key, padding method and hash.

Reimplemented in Botan::EMSA1, Botan::EMSA_PKCS1v15, and Botan::PSSR.

Definition at line 38 of file emsa.cpp.

40 {
41 throw Not_Implemented("Encoding " + name() + " not supported for signing X509 objects");
42 }
Botan::EMSA::name
virtual std::string name() const =0

References name().

## ◆ encoding_of()

virtual secure_vector< uint8_t > Botan::EMSA::encoding_of | ( | const secure_vector< uint8_t > & | msg,
|  | size_t | output_bits,
|  | RandomNumberGenerator & | rng
| ) |  |
| pure virtual

Return the encoding of a message

Parameters

  msg | the result of raw_data()
  output_bits | the desired output bit size
  rng | a random number generator

Returns
  encoded signature

Implemented in Botan::EMSA_PKCS1v15, and Botan::EMSA_PKCS1v15_Raw.

## ◆ name()

virtual std::string Botan::EMSA::name | ( |  | ) | const
| pure virtual

Returns
  the SCAN name of the encoding/padding scheme

Implemented in Botan::EMSA1, Botan::EMSA_PKCS1v15, Botan::EMSA_PKCS1v15_Raw, Botan::PSSR, Botan::PSSR_Raw, Botan::EMSA_Raw, Botan::EMSA_X931, Botan::ISO_9796_DS2, and Botan::ISO_9796_DS3.

Referenced by config_for_x509().

## ◆ raw_data()

virtual secure_vector< uint8_t > Botan::EMSA::raw_data | ( |  | ) |
| pure virtual

Returns
  raw hash

Implemented in Botan::EMSA_PKCS1v15, and Botan::EMSA_PKCS1v15_Raw.

## ◆ update()

virtual void Botan::EMSA::update | ( | const uint8_t | input[],
|  | size_t | length
| ) |  |
| pure virtual

Add more data to the signature computation

Parameters

  input | some data
  length | length of input in bytes

Implemented in Botan::EMSA_PKCS1v15, and Botan::EMSA_PKCS1v15_Raw.

## ◆ verify()

virtual bool Botan::EMSA::verify | ( | const secure_vector< uint8_t > & | coded,
|  | const secure_vector< uint8_t > & | raw,
|  | size_t | key_bits
| ) |  |
| pure virtual

Verify the encoding

Parameters

  coded | the received (coded) message representative
  raw | the computed (local, uncoded) message representative
  key_bits | the size of the key in bits

Returns
  true if coded is a valid encoding of raw, otherwise false

Implemented in Botan::EMSA_PKCS1v15, and Botan::EMSA_PKCS1v15_Raw.

The documentation for this class was generated from the following files:

- src/lib/pk_pad/emsa.h
- src/lib/pk_pad/emsa.cpp