Skip to content

elgamal

Types

Name
using algebra::curves::secp256k1 CurveType
ECDSA uses secp256k curve.
using typename CurveType::base_field_type base_field_type
The base field type is dependant on the curve.
using typename CurveType::scalar_field_type scalar_field_type
The scalar field type is dependant on the curve.
using typename scalar_field_type::value_type scalar_field_value_type
The value type fo the scalar field type.
using random::algebraic_random_device< scalar_field_type > random_generator_type
A random algebraic generator.
using hashes::sha2< 256 > hash_type
The deterministic generator used by Ethereum key pair.
using random::rfc6979< scalar_field_value_type, hash_type > generator_type
RFC6979 deterministic generator.
using pubkey::padding::emsa1< scalar_field_value_type, hash_type > padding_policy
Ethereum passing policy.
using pubkey::ecdsa< CurveType, padding_policy, generator_type > policy_type
Ethereum policy type.
using typename pubkey::public_key< policy_type >::signature_type signature_type

Types Documentation

using CurveType

using elgamal::CurveType = algebra::curves::secp256k1;

ECDSA uses secp256k curve.

using base_field_type

using elgamal::base_field_type = typename CurveType::base_field_type;

The base field type is dependant on the curve.

using scalar_field_type

using elgamal::scalar_field_type = typename CurveType::scalar_field_type;

The scalar field type is dependant on the curve.

using scalar_field_value_type

using elgamal::scalar_field_value_type = typename scalar_field_type::value_type;

The value type fo the scalar field type.

using random_generator_type

using elgamal::random_generator_type = random::algebraic_random_device<scalar_field_type>;

A random algebraic generator.

using hash_type

using elgamal::hash_type = hashes::sha2<256>;

The deterministic generator used by Ethereum key pair.

using generator_type

using elgamal::generator_type = random::rfc6979<scalar_field_value_type, hash_type>;

RFC6979 deterministic generator.

using padding_policy

using elgamal::padding_policy = pubkey::padding::emsa1<scalar_field_value_type, hash_type>;

Ethereum passing policy.

using policy_type

using elgamal::policy_type = pubkey::ecdsa<CurveType, padding_policy, generator_type>;

Ethereum policy type.

using signature_type

using elgamal::signature_type = typename pubkey::public_key<policy_type>::signature_type;

Updated on 2026-03-04 at 13:10:43 -0800