jam_vrf
A Python library for verifying JAM VRF signatures
class
RingVerifier:
Used for verifying ring signatures
Constructor Args:
- commitment:
bytes
- ring commitment - ring_size:
int
- number of keys in the ring
Raises:
Exception
- internal error
Example:
try:
verifier = RingVerifier(commitment, ring_size)
except Exception:
...
def
verify(self, /, data, ad, signature):
Verify a ring signature against some data & additional data
Args:
- data:
bytes
- ad:
bytes
- additional data - signature:
bytes
- ring signature
Raises:
ValueError
- invalid signatureException
- internal error
Example:
verifier: RingVerifier
try:
verifier.verify(data, ad, signature)
except ValueError:
print("invalid signature!")
class
VRFOutput:
VRF output type common to both IETF and ring VRFs
Args:
- output:
bytes
Raises:
Exception
- internal error
Example: vrf_output = VRFOutput(output)
def
get_ring_commitment(public_keys):
Compute the ring commitment for an ordered list of public keys
Args:
- public_keys:
List[bytes]
- bandersnatch public keys
Returns:
bytes
: object that represents the ring commitment
Raises:
ValueError
- invalid or empty input keysException
- internal error
Example
try:
commitment = get_ring_commitment(public_keys)
except Exception:
...
def
ietf_verify(public_key, data, ad, signature):
Verify an IETF signature against some data & additional data
Args:
- public_key:
bytes
- bandersnatch public key - data:
bytes
- ad:
bytes
- additional data - signature:
bytes
Raises:
ValueError
- invalid signatureException
- internal error
Example:
try:
ietf_verify(public_key, data, ad, signature)
except ValueError:
print("invalid signature!")