nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type > Struct Template Reference

#include <ecdsa.hpp>

+ Inheritance diagram for nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >:
+ Collaboration diagram for nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >:

Public Types

typedef base_type::base_integral_type base_integral_type
 
typedef public_key< policy_typebase_type
 
typedef policy_type::curve_type curve_type
 
typedef policy_type::distribution_type distribution_type
 
typedef curve_type::template g1_type g1_type
 
typedef base_type::g1_value_type g1_value_type
 
typedef policy_type::generator_type generator_type
 
typedef policy_type::hash_type hash_type
 
typedef padding::encoding_accumulator_set< padding_policyinternal_accumulator_type
 
typedef policy_type::padding_policy padding_policy
 
typedef ecdsa< CurveType, Padding, GeneratorType, DistributionType > policy_type
 
typedef scalar_field_value_type private_key_type
 
typedef base_type::public_key_type public_key_type
 
typedef curve_type::scalar_field_type scalar_field_type
 
typedef base_type::scalar_field_value_type scalar_field_value_type
 
typedef base_type::scalar_modular_type scalar_modular_type
 
typedef base_type::signature_type signature_type
 

Public Member Functions

 private_key (const private_key_type &key)
 
public_key_type pubkey_data () const
 
signature_type sign (internal_accumulator_type &acc) const
 
template<typename InputRange >
void update (internal_accumulator_type &acc, const InputRange &range) const
 
template<typename InputIterator >
void update (internal_accumulator_type &acc, InputIterator first, InputIterator last) const
 
bool verify (internal_accumulator_type &acc, const signature_type &signature) const
 

Static Public Member Functions

static public_key_type generate_public_key (const private_key_type &key)
 
static void init_accumulator (internal_accumulator_type &acc)
 

Protected Attributes

private_key_type privkey
 
public_key_type pubkey
 

Member Typedef Documentation

◆ base_integral_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef base_type::base_integral_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::base_integral_type

◆ base_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef public_key<policy_type> nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::base_type

◆ curve_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef policy_type::curve_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::curve_type

◆ distribution_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef policy_type::distribution_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::distribution_type

◆ g1_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef curve_type::template g1_type nil::crypto3::pubkey::public_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType > >::g1_type
inherited

◆ g1_value_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef base_type::g1_value_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::g1_value_type

◆ generator_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef policy_type::generator_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::generator_type

◆ hash_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef policy_type::hash_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::hash_type

◆ internal_accumulator_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef padding::encoding_accumulator_set<padding_policy> nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::internal_accumulator_type

◆ padding_policy

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef policy_type::padding_policy nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::padding_policy

◆ policy_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef ecdsa<CurveType, Padding, GeneratorType, DistributionType> nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::policy_type

◆ private_key_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef scalar_field_value_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::private_key_type

◆ public_key_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef base_type::public_key_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::public_key_type

◆ scalar_field_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef curve_type::scalar_field_type nil::crypto3::pubkey::public_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType > >::scalar_field_type
inherited

◆ scalar_field_value_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef base_type::scalar_field_value_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::scalar_field_value_type

◆ scalar_modular_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef base_type::scalar_modular_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::scalar_modular_type

◆ signature_type

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
typedef base_type::signature_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::signature_type

Constructor & Destructor Documentation

◆ private_key()

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::private_key ( const private_key_type key)
inline

Member Function Documentation

◆ generate_public_key()

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
static public_key_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::generate_public_key ( const private_key_type key)
inlinestatic

◆ init_accumulator()

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
static void nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::init_accumulator ( internal_accumulator_type acc)
inlinestatic

◆ pubkey_data()

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
public_key_type nil::crypto3::pubkey::public_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType > >::pubkey_data ( ) const
inlineinherited

◆ sign()

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
signature_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::sign ( internal_accumulator_type acc) const
inline

◆ update() [1/2]

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
template<typename InputRange >
void nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::update ( internal_accumulator_type acc,
const InputRange &  range 
) const
inline

◆ update() [2/2]

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
template<typename InputIterator >
void nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::update ( internal_accumulator_type acc,
InputIterator  first,
InputIterator  last 
) const
inline

◆ verify()

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
bool nil::crypto3::pubkey::public_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType > >::verify ( internal_accumulator_type acc,
const signature_type signature 
) const
inlineinherited

Member Data Documentation

◆ privkey

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
private_key_type nil::crypto3::pubkey::private_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType >, typename std::enable_if<!std::is_same< GeneratorType, random::rfc6979< typename CurveType::scalar_field_type::value_type, typename ecdsa< CurveType, Padding, GeneratorType, DistributionType >::hash_type > >::value >::type >::privkey
protected

◆ pubkey

template<typename CurveType , typename Padding , typename GeneratorType , typename DistributionType >
public_key_type nil::crypto3::pubkey::public_key< ecdsa< CurveType, Padding, GeneratorType, DistributionType > >::pubkey
protectedinherited

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