Java API
HSM Dinamo
Loading...
Looking for...
No entries found
SignVerifyHashedData.java

Example of signature and verification using hashes of previously computed data.

See Note on examples.
package doxy.examples;
import com.dinamonetworks.Dinamo;
import br.com.trueaccess.TacException;
import br.com.trueaccess.TacNDJavaLib;
public class SignVerifyHashedData {
public static void main(String[] args) throws TacException {
Dinamo api = new Dinamo();
api.openSession("127.0.0.1", "master", "12345678", false);
String message = "test test test";
byte bHash[] =
{
(byte)0x8F, (byte)0xB2, (byte)0x76, (byte)0x64, (byte)0x9F,(byte)0x23, (byte)0xCE,(byte)0xCF, (byte)0x02, (byte)0x8B, (byte)0xA1,(byte)0xEF, (byte)0xF4, (byte)0x25, (byte)0x38, (byte)0xE3,
(byte)0x0A,(byte)0x0C, (byte)0x56,(byte)0x0F, (byte)0xE5,(byte)0x66, (byte)0x82,(byte)0x8E, (byte)0xBB, (byte)0xA5, (byte)0x7C,(byte)0x56, (byte)0x8E,(byte)0x79, (byte)0x33, (byte)0x54,
} ;
String keyId = "rsa";
api.createKey(keyId, TacNDJavaLib.ALG_RSA_2048);
//Assina utilizando o nome da chave
byte[] signature = api.signHashedData(keyId, TacNDJavaLib.ALG_SHA2_256, bHash);
api.verifySignature(keyId, TacNDJavaLib.ALG_SHA2_256, signature, message.getBytes());
//Assina utilizando key handle
byte[] privateKeyHandle = api.getUserKey(keyId);
signature = api.signHashedData(privateKeyHandle, TacNDJavaLib.ALG_SHA2_256, bHash, 0);
api.releaseKeyHandle(privateKeyHandle);
api.verifySignature(keyId, TacNDJavaLib.ALG_SHA2_256, signature, message.getBytes());
api.deleteKey(keyId);
api.closeSession();
}
}