public class BLSPublicKeyParameters extends BLSKeyParameters
Constructor invariant. Construction runs the full
draft-irtf-cfrg-bls-signature sec. 2.5 KeyValidate (on-curve +
prime-order subgroup + non-identity) on the supplied point and rejects
anything that fails. Callers and downstream consumers can therefore
rely on the type itself as the validation boundary — once an instance
exists, the point is a valid BLS public key, and verify-time code
(e.g. BLSSigner.verifySignature) does not need to redo the ~128-bit
GLV-shortened subgroup-membership scalar multiplication on every call.
The validation cost is the same as a single verify call's previous
pre-pairing keyValidate step, paid once at construction instead of N
times for N verifies under the same key. Callers that deserialize
public keys from untrusted bytes typically run
decompressG1 immediately
before constructing this object; that decompression does not subgroup
check, so the constructor is the place where the prime-order check
happens.
| Constructor and Description |
|---|
BLSPublicKeyParameters(BLSParameters params,
ECPoint publicPoint) |
| Modifier and Type | Method and Description |
|---|---|
byte[] |
getEncoded() |
ECPoint |
getPublicPoint() |
getParametersisPrivatepublic BLSPublicKeyParameters(BLSParameters params, ECPoint publicPoint)
public ECPoint getPublicPoint()
public byte[] getEncoded()
point_to_pubkey encoding used by Eth2 and IETF
draft-irtf-cfrg-bls-signature.