public class SM2Signer extends java.lang.Object implements Signer, ECConstants
| Constructor and Description |
|---|
SM2Signer() |
SM2Signer(Digest digest) |
SM2Signer(DSAEncoding encoding) |
SM2Signer(DSAEncoding encoding,
Digest digest) |
| Modifier and Type | Method and Description |
|---|---|
protected java.math.BigInteger |
calculateE(java.math.BigInteger n,
byte[] message) |
protected ECMultiplier |
createBasePointMultiplier() |
byte[] |
generateSignature()
generate a signature for the message we've been loaded with using
the key we were initialised with.
|
protected byte[] |
getZ(byte[] userID)
Compute the SM2
Z value -
H(ENTL || ID || a || b || xG || yG || xA || yA) as given in 5.1.4.4 of the draft
RFC "SM2 Public Key Algorithms". |
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 SM2Signer()
public SM2Signer(Digest digest)
public SM2Signer(DSAEncoding encoding)
public SM2Signer(DSAEncoding encoding, Digest digest)
public void init(boolean forSigning,
CipherParameters param)
Signerpublic void update(byte b)
Signerpublic void update(byte[] in,
int off,
int len)
Signerpublic boolean verifySignature(byte[] signature)
SignerverifySignature in interface Signerpublic void reset()
Signerpublic byte[] generateSignature()
throws CryptoException
SignergenerateSignature in interface SignerCryptoExceptionprotected byte[] getZ(byte[] userID)
Z value -
H(ENTL || ID || a || b || xG || yG || xA || yA) as given in 5.1.4.4 of the draft
RFC "SM2 Public Key Algorithms". This is called once from
init with the digest
freshly reset, and the value returned is prepended to the message before e is
calculated.
An override must leave the digest empty on return - this implementation feeds the digest and
then consumes it with a doFinal(). Returning a zero-length array leaves the
message unprefixed, so a signer constructed with a
NullDigest will then sign and verify a caller-supplied
pre-hashed e as passed in, for the case where Z and the message hash
are calculated elsewhere.
userID - the SM2 user ID passed in at init, or the default one if none was given.protected ECMultiplier createBasePointMultiplier()
protected java.math.BigInteger calculateE(java.math.BigInteger n,
byte[] message)