public class EcdsaSignature extends UnwrappedEcdsaSignature
byte[] data = ...;
IAIKPKCS11PrivateKey privateKey = ...;
IAIKPkcs11 pkcs11Prov = ...;
// calculate the hash outside the Signature engine:
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(data);
byte[] digest = md.digest();
// calculate the signature
Signature ecdsa = Signature.getInstance("RawECDSA", pkcs11Prov);
ecdsa.initSign(privKey);
ecdsa.update(digest);
byte[] sigVal = signature = ecdsa.sign();
The signature value (r || s) calculated on the token is wrapped into an ASN.1 SEQUENCE according
to ANSI X9.62.| Modifier and Type | Field and Description |
|---|---|
protected static java.lang.String |
SIGNATURE_ALGORITHM_NAME
The JCA standard name of this signature algorithm.
|
buffer_currentKeyIsSoftwareKey_, initialized_, operationState_, pkcs11OperationInitialized_, privateKey_, publicKey_, session_, SIGN, softwareDelegate_, tokenManager_, usedMechanismInfos_, usedMechanisms_, VERIFY| Constructor and Description |
|---|
EcdsaSignature()
Public default constructor to enable instantiation via Class.forName(String).
|
| Modifier and Type | Method and Description |
|---|---|
protected java.lang.String |
getAlgorithmName()
Get the JCA standard name of this signautre algorithm.
|
protected byte[] |
pkcs11Sign()
Create the signature value (ANSI X9.62, same as X.509 format).
|
protected boolean |
pkcs11Verify(byte[] signature)
Verifies the given signature (ANSI X9.62, same as X.509 format).
|
getMechanismpkcs11InitSign, pkcs11InitVerify, pkcs11UpdateengineGetParameter, engineInitSign, engineInitVerify, engineSetParameter, engineSetParameter, engineSign, engineUpdate, engineUpdate, engineVerify, finalize, finalizePkcs11Operation, getUsedMechanismFeatures, getUsedMechanisms, initializePkcs11Operation, initializeSession, initializeSoftwareDelegate, isSupportedBy, pkcs11GetParameter, pkcs11SetParameter, pkcs11SetParameter, pkcs11Updateprotected static java.lang.String SIGNATURE_ALGORITHM_NAME
public EcdsaSignature()
protected java.lang.String getAlgorithmName()
getAlgorithmName in class UnwrappedEcdsaSignatureprotected byte[] pkcs11Sign()
throws java.security.SignatureException
pkcs11Sign in class UnwrappedEcdsaSignaturejava.security.SignatureException - If an error occurs when creating the signature.protected boolean pkcs11Verify(byte[] signature)
throws java.security.SignatureException
pkcs11Verify in class UnwrappedEcdsaSignaturesignature - The signature bytes to be verified.true if signature is OK, false otherwise.java.security.SignatureException - If an error occurs when verifying the signature.IAIK JavaSecurity Website https://jce.iaik.tugraz.at/
IAIK at Graz University of Technology, Austria, Europe
Copyright 2001-2023 IAIK, Graz University of Technology, Inffeldgasse 16a, 8010 Graz, Austria. All Rights Reserved. Version 1.9.4