ecdsa.hpp
Go to the documentation of this file.
49 typename = typename std::enable_if<std::is_same<typename CurveType::scalar_field_type::value_type,
86 template<typename CurveType, typename Padding, typename GeneratorType, typename DistributionType>
117 inline void update(internal_accumulator_type &acc, InputIterator first, InputIterator last) const {
143 template<typename CurveType, typename Padding, typename GeneratorType, typename DistributionType>
188 inline void update(internal_accumulator_type &acc, InputIterator first, InputIterator last) const {
200 // TODO: review behaviour if k, r or s generation produced zero, maybe return status instead cycled
223 template<typename CurveType, typename Padding, typename GeneratorType, typename DistributionType>
241 typedef std::pair<accumulator_set<hash_type>, padding::encoding_accumulator_set<padding_policy>>
270 inline void update(internal_accumulator_type &acc, InputIterator first, InputIterator last) const {
282 // TODO: review behaviour if k, r or s generation produced zero, maybe return status instead cycled
boost::mpl::apply< AccumulatorSet, tag::pubkey< ProcessingMode > >::type::result_type pubkey(const AccumulatorSet &acc)
Definition: accumulators/pubkey.hpp:106
boost::accumulators::accumulator_set< typename Padding::encoding_policy::result_type, boost::accumulators::features< accumulators::tag::encode< typename Padding::encoding_policy > >> encoding_accumulator_set
Accumulator set with pre-defined signing accumulator params.
Definition: padding_state.hpp:51
Definition: pair.hpp:31
DistributionType distribution_type
Definition: ecdsa.hpp:79
ecdsa< CurveType, Padding, generator_type, DistributionType > self_type
Definition: ecdsa.hpp:76
Padding padding_policy
Definition: ecdsa.hpp:78
Padding::hash_type hash_type
Definition: ecdsa.hpp:80
public_key< self_type > public_key_type
Definition: ecdsa.hpp:82
private_key< self_type > private_key_type
Definition: ecdsa.hpp:83
random::rfc6979< GeneratorResultType, GeneratorHash > generator_type
Definition: ecdsa.hpp:75
CurveType curve_type
Definition: ecdsa.hpp:77
Definition: ecdsa.hpp:51
DistributionType distribution_type
Definition: ecdsa.hpp:56
public_key< self_type > public_key_type
Definition: ecdsa.hpp:59
private_key< self_type > private_key_type
Definition: ecdsa.hpp:60
ecdsa< CurveType, Padding, GeneratorType, DistributionType > self_type
Definition: ecdsa.hpp:52
signature_type sign(internal_accumulator_type &acc) const
Definition: ecdsa.hpp:275
policy_type::curve_type curve_type
Definition: ecdsa.hpp:235
private_key(const private_key_type &key)
Definition: ecdsa.hpp:253
void update(internal_accumulator_type &acc, InputIterator first, InputIterator last) const
Definition: ecdsa.hpp:270
policy_type::padding_policy padding_policy
Definition: ecdsa.hpp:236
base_type::signature_type signature_type
Definition: ecdsa.hpp:251
static void init_accumulator(internal_accumulator_type &acc)
Definition: ecdsa.hpp:260
public_key< policy_type > base_type
Definition: ecdsa.hpp:233
base_type::scalar_modular_type scalar_modular_type
Definition: ecdsa.hpp:247
policy_type::hash_type hash_type
Definition: ecdsa.hpp:239
static public_key_type generate_public_key(const private_key_type &key)
Definition: ecdsa.hpp:256
policy_type::generator_type generator_type
Definition: ecdsa.hpp:237
void update(internal_accumulator_type &acc, const InputRange &range) const
Definition: ecdsa.hpp:264
policy_type::distribution_type distribution_type
Definition: ecdsa.hpp:238
std::pair< accumulator_set< hash_type >, padding::encoding_accumulator_set< padding_policy > > internal_accumulator_type
Definition: ecdsa.hpp:242
base_type::g1_value_type g1_value_type
Definition: ecdsa.hpp:245
ecdsa< CurveType, Padding, GeneratorType, DistributionType > policy_type
Definition: ecdsa.hpp:232
scalar_field_value_type private_key_type
Definition: ecdsa.hpp:249
base_type::base_integral_type base_integral_type
Definition: ecdsa.hpp:246
private_key_type privkey
Definition: ecdsa.hpp:302
base_type::public_key_type public_key_type
Definition: ecdsa.hpp:250
base_type::scalar_field_value_type scalar_field_value_type
Definition: ecdsa.hpp:244
base_type::base_integral_type base_integral_type
Definition: ecdsa.hpp:165
scalar_field_value_type private_key_type
Definition: ecdsa.hpp:168
policy_type::curve_type curve_type
Definition: ecdsa.hpp:155
policy_type::hash_type hash_type
Definition: ecdsa.hpp:159
void update(internal_accumulator_type &acc, const InputRange &range) const
Definition: ecdsa.hpp:183
private_key_type privkey
Definition: ecdsa.hpp:220
static public_key_type generate_public_key(const private_key_type &key)
Definition: ecdsa.hpp:175
policy_type::distribution_type distribution_type
Definition: ecdsa.hpp:158
padding::encoding_accumulator_set< padding_policy > internal_accumulator_type
Definition: ecdsa.hpp:161
ecdsa< CurveType, Padding, GeneratorType, DistributionType > policy_type
Definition: ecdsa.hpp:152
policy_type::generator_type generator_type
Definition: ecdsa.hpp:157
signature_type sign(internal_accumulator_type &acc) const
Definition: ecdsa.hpp:195
base_type::signature_type signature_type
Definition: ecdsa.hpp:170
base_type::scalar_field_value_type scalar_field_value_type
Definition: ecdsa.hpp:163
policy_type::padding_policy padding_policy
Definition: ecdsa.hpp:156
base_type::public_key_type public_key_type
Definition: ecdsa.hpp:169
base_type::scalar_modular_type scalar_modular_type
Definition: ecdsa.hpp:166
static void init_accumulator(internal_accumulator_type &acc)
Definition: ecdsa.hpp:179
void update(internal_accumulator_type &acc, InputIterator first, InputIterator last) const
Definition: ecdsa.hpp:188
base_type::g1_value_type g1_value_type
Definition: ecdsa.hpp:164
private_key(const private_key_type &key)
Definition: ecdsa.hpp:172
public_key< policy_type > base_type
Definition: ecdsa.hpp:153
Private key - a key known only to its owner. Only the user keeping his private key secret guarantees ...
Definition: private_key.hpp:47
scalar_field_type::value_type scalar_field_value_type
Definition: ecdsa.hpp:96
public_key_type pubkey_data() const
Definition: ecdsa.hpp:135
policy_type::padding_policy padding_policy
Definition: ecdsa.hpp:91
curve_type::scalar_field_type scalar_field_type
Definition: ecdsa.hpp:95
void update(internal_accumulator_type &acc, InputIterator first, InputIterator last) const
Definition: ecdsa.hpp:117
bool verify(internal_accumulator_type &acc, const signature_type &signature) const
Definition: ecdsa.hpp:121
ecdsa< CurveType, Padding, GeneratorType, DistributionType > policy_type
Definition: ecdsa.hpp:88
policy_type::curve_type curve_type
Definition: ecdsa.hpp:90
curve_type::base_field_type::integral_type base_integral_type
Definition: ecdsa.hpp:99
public_key(const public_key_type &key)
Definition: ecdsa.hpp:105
scalar_field_type::modular_type scalar_modular_type
Definition: ecdsa.hpp:100
void update(internal_accumulator_type &acc, const InputRange &range) const
Definition: ecdsa.hpp:112
public_key_type pubkey
Definition: ecdsa.hpp:140
std::pair< scalar_field_value_type, scalar_field_value_type > signature_type
Definition: ecdsa.hpp:103
g1_type::value_type g1_value_type
Definition: ecdsa.hpp:98
g1_value_type public_key_type
Definition: ecdsa.hpp:102
curve_type::template g1_type g1_type
Definition: ecdsa.hpp:97
static void init_accumulator(internal_accumulator_type &acc)
Definition: ecdsa.hpp:108
padding::encoding_accumulator_set< padding_policy > internal_accumulator_type
Definition: ecdsa.hpp:93
Public key - a key that can be published and used to verify the authenticity of the signed document,...
Definition: public_key.hpp:43