Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
EcdsaTests< Curve > Class Template Reference
Inheritance diagram for EcdsaTests< Curve >:

Public Types

enum class  TamperingMode : std::uint8_t {
  InvalidR , InvalidS , HighS , OutOfBoundsHash ,
  ZeroR , ZeroS , InfinityScalarMul , InvalidPubKey ,
  InfinityPubKey , None
}
 
using Builder = Curve::Builder
 
using CurveType = std::conditional_t< Curve::type==bb::CurveType::SECP256K1, bb::curve::SECP256K1, bb::curve::SECP256R1 >
 
using FrNative = Curve::fr
 
using FqNative = Curve::fq
 
using G1Native = Curve::g1
 
using Fr = Curve::bigfr_ct
 
using Fq = Curve::fq_ct
 
using G1 = Curve::g1_bigfr_ct
 
using bool_t = Curve::bool_ct
 

Public Member Functions

std::pair< ecdsa_key_pair< FrNative, G1Native >, ecdsa_signaturegenerate_dummy_ecdsa_data (std::string message_string, bool random_signature)
 
ecdsa_signature generate_signature_out_of_bounds_hash ()
 Generate valid signature for the message Fr(1)
 
std::string tampering (std::string message_string, ecdsa_key_pair< FrNative, G1Native > &account, ecdsa_signature &signature, TamperingMode mode)
 
std::pair< G1, stdlib::ecdsa_signature< Builder > > create_stdlib_ecdsa_data (Builder &builder, const ecdsa_key_pair< FrNative, G1Native > &account, const ecdsa_signature &signature)
 
void ecdsa_verification_circuit (Builder &builder, const stdlib::byte_array< Builder > &hashed_message, const ecdsa_key_pair< FrNative, G1Native > &account, const ecdsa_signature &signature, const bool signature_verification_result, const bool circuit_checker_result, const std::string failure_msg)
 
stdlib::byte_array< Builderconstruct_hashed_message (Builder &builder, std::vector< uint8_t > &message_bytes, TamperingMode mode)
 
void test_verify_signature (bool random_signature, TamperingMode mode)
 
void test_wycherproof (std::vector< stdlib::WycherproofTest< CurveType > > tests)
 Construct tests based on data fetched from the Wycherproof project.
 

Static Public Attributes

static constexpr FrNative private_key
 

Detailed Description

template<class Curve>
class EcdsaTests< Curve >

Definition at line 18 of file ecdsa.test.cpp.

Member Typedef Documentation

◆ bool_t

template<class Curve >
using EcdsaTests< Curve >::bool_t = Curve::bool_ct

Definition at line 33 of file ecdsa.test.cpp.

◆ Builder

template<class Curve >
using EcdsaTests< Curve >::Builder = Curve::Builder

Definition at line 20 of file ecdsa.test.cpp.

◆ CurveType

◆ Fq

template<class Curve >
using EcdsaTests< Curve >::Fq = Curve::fq_ct

Definition at line 31 of file ecdsa.test.cpp.

◆ FqNative

template<class Curve >
using EcdsaTests< Curve >::FqNative = Curve::fq

Definition at line 26 of file ecdsa.test.cpp.

◆ Fr

template<class Curve >
using EcdsaTests< Curve >::Fr = Curve::bigfr_ct

Definition at line 30 of file ecdsa.test.cpp.

◆ FrNative

template<class Curve >
using EcdsaTests< Curve >::FrNative = Curve::fr

Definition at line 25 of file ecdsa.test.cpp.

◆ G1

template<class Curve >
using EcdsaTests< Curve >::G1 = Curve::g1_bigfr_ct

Definition at line 32 of file ecdsa.test.cpp.

◆ G1Native

template<class Curve >
using EcdsaTests< Curve >::G1Native = Curve::g1

Definition at line 27 of file ecdsa.test.cpp.

Member Enumeration Documentation

◆ TamperingMode

template<class Curve >
enum class EcdsaTests::TamperingMode : std::uint8_t
strong
Enumerator
InvalidR 
InvalidS 
HighS 
OutOfBoundsHash 
ZeroR 
ZeroS 
InfinityScalarMul 
InvalidPubKey 
InfinityPubKey 
None 

Definition at line 39 of file ecdsa.test.cpp.

Member Function Documentation

◆ construct_hashed_message()

template<class Curve >
stdlib::byte_array< Builder > EcdsaTests< Curve >::construct_hashed_message ( Builder builder,
std::vector< uint8_t > &  message_bytes,
TamperingMode  mode 
)
inline

Definition at line 291 of file ecdsa.test.cpp.

◆ create_stdlib_ecdsa_data()

template<class Curve >
std::pair< G1, stdlib::ecdsa_signature< Builder > > EcdsaTests< Curve >::create_stdlib_ecdsa_data ( Builder builder,
const ecdsa_key_pair< FrNative, G1Native > &  account,
const ecdsa_signature signature 
)
inline

Definition at line 231 of file ecdsa.test.cpp.

◆ ecdsa_verification_circuit()

template<class Curve >
void EcdsaTests< Curve >::ecdsa_verification_circuit ( Builder builder,
const stdlib::byte_array< Builder > &  hashed_message,
const ecdsa_key_pair< FrNative, G1Native > &  account,
const ecdsa_signature signature,
const bool  signature_verification_result,
const bool  circuit_checker_result,
const std::string  failure_msg 
)
inline

Definition at line 254 of file ecdsa.test.cpp.

◆ generate_dummy_ecdsa_data()

template<class Curve >
std::pair< ecdsa_key_pair< FrNative, G1Native >, ecdsa_signature > EcdsaTests< Curve >::generate_dummy_ecdsa_data ( std::string  message_string,
bool  random_signature 
)
inline

Definition at line 52 of file ecdsa.test.cpp.

◆ generate_signature_out_of_bounds_hash()

template<class Curve >
ecdsa_signature EcdsaTests< Curve >::generate_signature_out_of_bounds_hash ( )
inline

Generate valid signature for the message Fr(1)

Returns
ecdsa_signature

Definition at line 76 of file ecdsa.test.cpp.

◆ tampering()

template<class Curve >
std::string EcdsaTests< Curve >::tampering ( std::string  message_string,
ecdsa_key_pair< FrNative, G1Native > &  account,
ecdsa_signature signature,
TamperingMode  mode 
)
inline

Definition at line 114 of file ecdsa.test.cpp.

◆ test_verify_signature()

template<class Curve >
void EcdsaTests< Curve >::test_verify_signature ( bool  random_signature,
TamperingMode  mode 
)
inline

Definition at line 320 of file ecdsa.test.cpp.

◆ test_wycherproof()

template<class Curve >
void EcdsaTests< Curve >::test_wycherproof ( std::vector< stdlib::WycherproofTest< CurveType > >  tests)
inline

Construct tests based on data fetched from the Wycherproof project.

Parameters
tests

Definition at line 358 of file ecdsa.test.cpp.

Member Data Documentation

◆ private_key

template<class Curve >
constexpr FrNative EcdsaTests< Curve >::private_key
staticconstexpr
Initial value:
=
FrNative("0xd67abee717b3fc725adf59e2cc8cd916435c348b277dd814a34e3ceb279436c2")
Curve::fr FrNative

Definition at line 36 of file ecdsa.test.cpp.


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