Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey Struct Reference

MultiSigPublicKey wraps a signer's public key g1::affine_element along with a proof of posession: a signature whose message is the public key, signed by the corresponding private key. More...

#include <multisig.hpp>

Public Types

typedef uint8_t const * in_buf
 
typedef uint8_t const * vec_in_buf
 
typedef uint8_t * out_buf
 
typedef uint8_t ** vec_out_buf
 

Public Member Functions

 MSGPACK_FIELDS (public_key, proof_of_possession)
 
 MultiSigPublicKey ()=default
 
 MultiSigPublicKey (const key_pair &account)
 
 MultiSigPublicKey (const affine_element &public_key, const SchnorrProofOfPossession< G1, HashRegNon > &proof_of_possession)
 

Public Attributes

affine_element public_key = G1::affine_point_at_infinity
 
SchnorrProofOfPossession< G1, HashRegNon > proof_of_possession
 

Detailed Description

template<typename G1, typename HashRegNon, typename HashSig = Blake2sHasher>
struct bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey

MultiSigPublicKey wraps a signer's public key g1::affine_element along with a proof of posession: a signature whose message is the public key, signed by the corresponding private key.

This is to prevent attacks where an attacker presents a key that they do not know the secret to (e.g. the attacker public key is a linear combination of other public keys)

Definition at line 57 of file multisig.hpp.

Member Typedef Documentation

◆ in_buf

template<typename G1 , typename HashRegNon , typename HashSig = Blake2sHasher>
typedef uint8_t const* bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey::in_buf

Definition at line 58 of file multisig.hpp.

◆ out_buf

template<typename G1 , typename HashRegNon , typename HashSig = Blake2sHasher>
typedef uint8_t* bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey::out_buf

Definition at line 60 of file multisig.hpp.

◆ vec_in_buf

template<typename G1 , typename HashRegNon , typename HashSig = Blake2sHasher>
typedef uint8_t const* bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey::vec_in_buf

Definition at line 59 of file multisig.hpp.

◆ vec_out_buf

template<typename G1 , typename HashRegNon , typename HashSig = Blake2sHasher>
typedef uint8_t** bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey::vec_out_buf

Definition at line 61 of file multisig.hpp.

Constructor & Destructor Documentation

◆ MultiSigPublicKey() [1/3]

template<typename G1 , typename HashRegNon , typename HashSig = Blake2sHasher>
bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey::MultiSigPublicKey ( )
default

◆ MultiSigPublicKey() [2/3]

template<typename G1 , typename HashRegNon , typename HashSig = Blake2sHasher>
bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey::MultiSigPublicKey ( const key_pair account)
inline

Definition at line 72 of file multisig.hpp.

◆ MultiSigPublicKey() [3/3]

template<typename G1 , typename HashRegNon , typename HashSig = Blake2sHasher>
bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey::MultiSigPublicKey ( const affine_element public_key,
const SchnorrProofOfPossession< G1, HashRegNon > &  proof_of_possession 
)
inline

Definition at line 77 of file multisig.hpp.

Member Function Documentation

◆ MSGPACK_FIELDS()

template<typename G1 , typename HashRegNon , typename HashSig = Blake2sHasher>
bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey::MSGPACK_FIELDS ( public_key  ,
proof_of_possession   
)

Member Data Documentation

◆ proof_of_possession

template<typename G1 , typename HashRegNon , typename HashSig = Blake2sHasher>
SchnorrProofOfPossession<G1, HashRegNon> bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey::proof_of_possession

Definition at line 65 of file multisig.hpp.

◆ public_key

template<typename G1 , typename HashRegNon , typename HashSig = Blake2sHasher>
affine_element bb::crypto::schnorr_multisig< G1, HashRegNon, HashSig >::MultiSigPublicKey::public_key = G1::affine_point_at_infinity

Definition at line 63 of file multisig.hpp.


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