nil::crypto3::pubkey::padding::emsa_pssr< Scheme, Hash > Struct Template Reference

PSSR aka EMSA4 in IEEE 1363. More...

#include <emsa_pssr.hpp>

+ Inheritance diagram for nil::crypto3::pubkey::padding::emsa_pssr< Scheme, Hash >:
+ Collaboration diagram for nil::crypto3::pubkey::padding::emsa_pssr< Scheme, Hash >:

Public Types

typedef Hash hash_type
 
typedef Scheme scheme_type
 

Public Member Functions

template<typename SinglePassRange1 , typename SinglePassRange2 >
bool verify (const SinglePassRange1 &range1, const SinglePassRange2 &range2, std::size_t key_bits) const
 
template<typename InputIterator1 , typename InputIterator2 >
bool verify (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, std::size_t key_bits) const
 

Protected Member Functions

template<typename InputMessageIterator , typename InputSaltIterator , typename OutputIterator >
OutputIterator pss_encode (Hash &hash, InputMessageIterator firstm, InputMessageIterator lastm, InputSaltIterator firsts, InputSaltIterator lasts, size_t output_bits)
 
template<typename InputIterator1 , typename InputMessageIterator >
bool pss_verify (HashFunction &hash, const secure_vector< uint8_t > &pss_repr, const secure_vector< uint8_t > &message_hash, size_t key_bits, size_t *out_salt_size)
 

Protected Attributes

std::size_t required_salt_length
 
std::size_t salt_size
 

Detailed Description

template<typename Scheme, typename Hash>
struct nil::crypto3::pubkey::padding::emsa_pssr< Scheme, Hash >

PSSR aka EMSA4 in IEEE 1363.

Template Parameters
Hash

Member Typedef Documentation

◆ hash_type

template<typename Scheme , typename Hash >
typedef Hash nil::crypto3::emsa< Scheme, Hash >::hash_type
inherited

◆ scheme_type

template<typename Scheme , typename Hash >
typedef Scheme nil::crypto3::emsa< Scheme, Hash >::scheme_type
inherited

Member Function Documentation

◆ pss_encode()

template<typename Scheme , typename Hash >
template<typename InputMessageIterator , typename InputSaltIterator , typename OutputIterator >
OutputIterator nil::crypto3::pubkey::padding::emsa_pssr< Scheme, Hash >::pss_encode ( Hash &  hash,
InputMessageIterator  firstm,
InputMessageIterator  lastm,
InputSaltIterator  firsts,
InputSaltIterator  lasts,
size_t  output_bits 
)
inlineprotected

◆ pss_verify()

template<typename Scheme , typename Hash >
template<typename InputIterator1 , typename InputMessageIterator >
bool nil::crypto3::pubkey::padding::emsa_pssr< Scheme, Hash >::pss_verify ( HashFunction &  hash,
const secure_vector< uint8_t > &  pss_repr,
const secure_vector< uint8_t > &  message_hash,
size_t  key_bits,
size_t *  out_salt_size 
)
inlineprotected

◆ verify() [1/2]

template<typename Scheme , typename Hash >
template<typename SinglePassRange1 , typename SinglePassRange2 >
bool nil::crypto3::pubkey::padding::emsa_pssr< Scheme, Hash >::verify ( const SinglePassRange1 &  range1,
const SinglePassRange2 &  range2,
std::size_t  key_bits 
) const
inline

◆ verify() [2/2]

template<typename Scheme , typename Hash >
template<typename InputIterator1 , typename InputIterator2 >
bool nil::crypto3::pubkey::padding::emsa_pssr< Scheme, Hash >::verify ( InputIterator1  first1,
InputIterator1  last1,
InputIterator2  first2,
InputIterator2  last2,
std::size_t  key_bits 
) const
inline

Member Data Documentation

◆ required_salt_length

template<typename Scheme , typename Hash >
std::size_t nil::crypto3::pubkey::padding::emsa_pssr< Scheme, Hash >::required_salt_length
protected

◆ salt_size

template<typename Scheme , typename Hash >
std::size_t nil::crypto3::pubkey::padding::emsa_pssr< Scheme, Hash >::salt_size
protected

The documentation for this struct was generated from the following file: