Expand description
Schnorr signatures over the ECgFp5 curve, with Poseidon2 as the binding hash.
PrivateKeywraps a curve scalar;PublicKeywraps the canonicalFp5encodingw = (sk * G).encode().Signatureis the(s, e)pair encoded ass_le || e_leover 80 bytes.PrivateKey::signproduces a signature for a pre-hashed message under a caller-supplied per-signature noncek. Production callers must drawkfrom a cryptographic RNG; the explicit-nonce form mirrors the Go reference’sSchnorrSignHashedMessage2, which fixture tests pin against.PublicKey::verifydecodes the public-key encoding, recomputess*G + e*pk, and checks the recovered challenge against the signature.
Hash-to-quintic of the message is the caller’s responsibility, matching the
upstream API. Use super::hash::hash_to_quintic_extension over the
message field elements.
Structs§
- Private
Key - A Schnorr private key over the ECgFp5 scalar field.
- Public
Key - A Schnorr public key over the ECgFp5 curve, stored as the canonical
Fp5encodingw = (sk * G).encode(). - Signature
- Schnorr signature over the ECgFp5 curve.