eddsa.hpp
Go to the documentation of this file.
78 std::is_same<std::uint8_t, typename std::iterator_traits<typename Params::context_type::iterator>::
108 std::is_same<std::uint8_t, typename std::iterator_traits<typename Params::context_type::iterator>::
138 typename algebra::curves::curve25519::g1_type<Coordinates, algebra::curves::forms::twisted_edwards>,
141 typename algebra::curves::curve25519::g1_type<Coordinates, algebra::curves::forms::twisted_edwards>
164 typedef nil::crypto3::marshalling::types::curve_element<nil::marshalling::field_type<endianness>,
167 typedef nil::crypto3::marshalling::types::field_element<nil::marshalling::field_type<endianness>,
185 constexpr static const std::size_t signature_bits = 64 * std::numeric_limits<std::uint8_t>::digits;
201 inline void update(internal_accumulator_type &acc, InputIterator first, InputIterator last) const {
228 auto ph_m = padding::accumulators::extract::encode<padding::encoding_policy<padding_policy>>(acc);
291 typedef typename scheme_public_key_type::marshalling_group_value_type marshalling_group_value_type;
294 typedef typename scheme_public_key_type::marshalling_base_integral_type marshalling_base_integral_type;
349 inline void update(internal_accumulator_type &acc, InputIterator first, InputIterator last) const {
356 auto ph_m = padding::accumulators::extract::encode<padding::encoding_policy<padding_policy>>(acc);
typename detail::curve25519_g1< Form, Coordinates > g1_type
Definition: curve25519.hpp:50
Definition: block/include/nil/crypto3/detail/static_digest.hpp:72
std::enable_if<!boost::accumulators::detail::is_accumulator_set< OutputIterator >::value, OutputIterator >::type hash(InputIterator first, InputIterator last, OutputIterator out)
Definition: algorithm/hash.hpp:78
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
Definition: hash_state.hpp:43
eddsa_policy< eddsa_variant, Params > policy_type
Definition: eddsa.hpp:143
algebra::curves::curve25519::g1_type< Coordinates, algebra::curves::forms::twisted_edwards > group_type
Definition: eddsa.hpp:142
Params params_type
Definition: eddsa.hpp:63
padding::emsa_raw< std::uint8_t > padding_policy
Definition: eddsa.hpp:66
std::vector< std::uint8_t > domain_type
Definition: eddsa.hpp:64
hashes::sha2< 512 > hash_type
Definition: eddsa.hpp:65
static domain_type domain()
Definition: eddsa.hpp:68
std::vector< std::uint8_t > domain_type
Definition: eddsa.hpp:81
static domain_type domain()
Definition: eddsa.hpp:87
Params params_type
Definition: eddsa.hpp:80
padding::emsa_raw< std::uint8_t > padding_policy
Definition: eddsa.hpp:83
hashes::sha2< 512 > hash_type
Definition: eddsa.hpp:82
padding::emsa1< typename hash_type::digest_type, hash_type > padding_policy
Definition: eddsa.hpp:113
static domain_type domain()
Definition: eddsa.hpp:117
Params params_type
Definition: eddsa.hpp:110
std::vector< std::uint8_t > domain_type
Definition: eddsa.hpp:111
hashes::sha2< 512 > hash_type
Definition: eddsa.hpp:112
Definition: eddsa.hpp:59
Definition: eddsa.hpp:134
EMSA1 from IEEE 1363. Essentially, sign the hash directly.
Definition: emsa1.hpp:251
EMSA raw. Essentially, accumulate input data in the container with elements of ValueType and return i...
Definition: emsa_raw.hpp:125
signature_type sign(internal_accumulator_type &acc) const
Definition: eddsa.hpp:354
scheme_public_key_type::policy_type policy_type
Definition: eddsa.hpp:278
scheme_public_key_type::scalar_field_type scalar_field_type
Definition: eddsa.hpp:284
nil::crypto3::pubkey::private_key< eddsa< CurveGroup, eddsa_variant, Params > >::generate_public_key
static public_key_type generate_public_key(const private_key_type &key)
Definition: eddsa.hpp:318
scheme_public_key_type::group_value_type group_value_type
Definition: eddsa.hpp:283
private_key(const private_key_type &key)
Definition: eddsa.hpp:312
scheme_public_key_type::base_field_type base_field_type
Definition: eddsa.hpp:287
scheme_public_key_type::internal_accumulator_type internal_accumulator_type
Definition: eddsa.hpp:281
void update(internal_accumulator_type &acc, const InputRange &range) const
Definition: eddsa.hpp:344
scheme_public_key_type::base_integral_type base_integral_type
Definition: eddsa.hpp:288
void update(internal_accumulator_type &acc, InputIterator first, InputIterator last) const
Definition: eddsa.hpp:349
eddsa< CurveGroup, eddsa_variant, Params > scheme_type
Definition: eddsa.hpp:275
scheme_public_key_type::marshalling_uint512_t_type marshalling_uint512_t_type
Definition: eddsa.hpp:295
scalar_field_value_type s_reduced
Definition: eddsa.hpp:444
scheme_public_key_type::endianness endianness
Definition: eddsa.hpp:290
scheme_public_key_type::marshalling_scalar_field_value_type marshalling_scalar_field_value_type
Definition: eddsa.hpp:293
static void init_accumulator(internal_accumulator_type &acc)
Definition: eddsa.hpp:340
static base_integral_type construct_scalar(const typename hash_type::digest_type &h)
Definition: eddsa.hpp:427
scheme_public_key_type::scalar_field_value_type scalar_field_value_type
Definition: eddsa.hpp:285
public_key< scheme_type > scheme_public_key_type
Definition: eddsa.hpp:276
scheme_public_key_type::signature_type signature_type
Definition: eddsa.hpp:309
scheme_public_key_type::public_key_type public_key_type
Definition: eddsa.hpp:306
private_key_type privkey
Definition: eddsa.hpp:442
scheme_public_key_type::marshalling_group_value_type marshalling_group_value_type
Definition: eddsa.hpp:291
scheme_public_key_type::hash_type hash_type
Definition: eddsa.hpp:279
hash_type::digest_type h_privkey
Definition: eddsa.hpp:443
scheme_public_key_type::marshalling_base_integral_type marshalling_base_integral_type
Definition: eddsa.hpp:294
scheme_public_key_type::scalar_integral_type scalar_integral_type
Definition: eddsa.hpp:286
scheme_public_key_type::padding_policy padding_policy
Definition: eddsa.hpp:280
private_key()=delete
Private key - a key known only to its owner. Only the user keeping his private key secret guarantees ...
Definition: private_key.hpp:47
bool verify(internal_accumulator_type &acc, const signature_type &signature) const
Definition: eddsa.hpp:206
policy_type::padding_policy padding_policy
Definition: eddsa.hpp:151
base_field_type::value_type base_field_value_type
Definition: eddsa.hpp:157
public_key()=delete
nil::crypto3::marshalling::types::integral< nil::marshalling::field_type< endianness >, nil::crypto3::multiprecision::uint512_t > marshalling_uint512_t_type
Definition: eddsa.hpp:175
void update(internal_accumulator_type &acc, const InputRange &range) const
Definition: eddsa.hpp:196
group_value_type pubkey_point
Definition: eddsa.hpp:268
policy_type::hash_type hash_type
Definition: eddsa.hpp:150
nil::crypto3::marshalling::types::integral< nil::marshalling::field_type< endianness >, base_integral_type > marshalling_base_integral_type
Definition: eddsa.hpp:172
group_type::curve_type::scalar_field_type scalar_field_type
Definition: eddsa.hpp:159
base_field_type::integral_type base_integral_type
Definition: eddsa.hpp:158
public_key_type pubkey
Definition: eddsa.hpp:269
scalar_field_type::value_type scalar_field_value_type
Definition: eddsa.hpp:160
nil::crypto3::marshalling::types::curve_element< nil::marshalling::field_type< endianness >, group_type > marshalling_group_value_type
Definition: eddsa.hpp:166
scheme_type::policy_type policy_type
Definition: eddsa.hpp:149
static void init_accumulator(internal_accumulator_type &acc)
Definition: eddsa.hpp:192
public_key(const public_key_type &key)
Definition: eddsa.hpp:189
nil::crypto3::pubkey::public_key< eddsa< CurveGroup, eddsa_variant, Params > >::scalar_integral_type
scalar_field_type::integral_type scalar_integral_type
Definition: eddsa.hpp:161
void update(internal_accumulator_type &acc, InputIterator first, InputIterator last) const
Definition: eddsa.hpp:201
eddsa< CurveGroup, eddsa_variant, Params > scheme_type
Definition: eddsa.hpp:148
public_key_type public_key_data() const
Definition: eddsa.hpp:254
static_digest< signature_bits > signature_type
Definition: eddsa.hpp:186
nil::marshalling::option::little_endian endianness
Definition: eddsa.hpp:163
nil::crypto3::marshalling::types::field_element< nil::marshalling::field_type< endianness >, scalar_field_type > marshalling_scalar_field_value_type
Definition: eddsa.hpp:169
padding::encoding_accumulator_set< padding_policy > internal_accumulator_type
Definition: eddsa.hpp:152
group_type::value_type group_value_type
Definition: eddsa.hpp:155
static group_value_type read_pubkey(const public_key_type &pubkey)
Definition: eddsa.hpp:259
scheme_type::group_type group_type
Definition: eddsa.hpp:154
group_type::curve_type::base_field_type base_field_type
Definition: eddsa.hpp:156
Public key - a key that can be published and used to verify the authenticity of the signed document,...
Definition: public_key.hpp:43