public class BLSSigner extends java.lang.Object implements Signer
Signer interface.
Signs and verifies under a configurable BLS hash-to-curve domain
separation tag, defaulting to the BasicScheme DST
BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_. The
BLSSigner(byte[]) constructor lets callers select the
ProofOfPossession DST
(BLS12_381ProofOfPossession.DST) for Eth2 interop, or supply any
other RFC 9380 DST.
Note that the MessageAugmentation suite is intentionally NOT supported
here, since its hash input is pk || msg — the pubkey must be
available at sign time, which doesn't fit the Signer
"sk + buffered message" contract cleanly. Callers wanting AUG should
use BLS12_381MessageAugmentation
directly.
Produces and accepts 96-byte Zcash-format compressed G2 signatures, the same encoding used by Eth2 / IETF draft-irtf-cfrg-bls-signature.
| Constructor and Description |
|---|
BLSSigner()
Construct a signer with the BasicScheme DST
(
BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_). |
BLSSigner(byte[] dst)
Construct a signer with an explicit hash-to-curve DST.
|
| Modifier and Type | Method and Description |
|---|---|
byte[] |
generateSignature()
generate a signature for the message we've been loaded with using
the key we were initialised with.
|
void |
init(boolean forSigning,
CipherParameters param)
Initialise the signer for signing or verification.
|
void |
reset()
reset the internal state
|
void |
update(byte b)
update the internal digest with the byte b
|
void |
update(byte[] in,
int off,
int len)
update the internal digest with the byte array in
|
boolean |
verifySignature(byte[] signature)
return true if the internal state represents the signature described
in the passed in array.
|
public BLSSigner()
BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_).public BLSSigner(byte[] dst)
BLS12_381ProofOfPossession.DST.public void init(boolean forSigning,
CipherParameters param)
Signerpublic void update(byte b)
Signerpublic void update(byte[] in,
int off,
int len)
Signerpublic byte[] generateSignature()
throws CryptoException
SignergenerateSignature in interface SignerCryptoExceptionpublic boolean verifySignature(byte[] signature)
SignerverifySignature in interface Signer