A proof of possession is a Schnorr proof of knowledge of a secret key corresponding to a given public key.
More...
#include <proof_of_possession.hpp>
|
|
using | Fq = typename G1::coordinate_field |
| |
|
using | Fr = typename G1::subgroup_field |
| |
|
using | affine_element = typename G1::affine_element |
| |
|
using | element = typename G1::element |
| |
|
using | key_pair = crypto::schnorr::key_pair< Fr, G1 > |
| |
|
| | ProofOfPossession (const key_pair &account) |
| | Create a new proof of possession for a given account.
|
| |
| bool | verify (const affine_element &public_key) const |
| | verifies that an unserialized signature is valid
|
| |
|
|
std::array< uint8_t, 32 > | challenge |
| |
|
Fr | response = Fr::zero() |
| |
template<typename G1, typename Hash>
struct crypto::schnorr::ProofOfPossession< G1, Hash >
A proof of possession is a Schnorr proof of knowledge of a secret key corresponding to a given public key.
This implementation follows the specification detailed in https://eprint.iacr.org/2021/1375.pdf
- Template Parameters
-
| G1 | group over which the key pair was generated |
| Hash | function used to derive the Fiat-Shamir challenge |
◆ ProofOfPossession()
template<typename G1 , typename Hash >
Create a new proof of possession for a given account.
- Warning
- Proofs are not deterministic.
- Parameters
-
| account | a key_pair (secret_key, public_key) |
◆ verify()
template<typename G1 , typename Hash >
verifies that an unserialized signature is valid
- Parameters
-
| public_key | the public key for which this proof is intended |
- Returns
- whether the proof is correct
The documentation for this struct was generated from the following file: