decryptWithRSA.js

Summary

No overview generated for 'decryptWithRSA.js'


Method Summary
static void decrypt(crypto, sc, pukey, prkey, algo)
          

/*
 * Example to decrypt using RSA with PKCS#1 formats V1.5 and OAEP
 */


SmartCardHSM = require('scsh/sc-hsm/SmartCardHSM').SmartCardHSM;
HSMKeyStore = require('scsh/sc-hsm/HSMKeyStore').HSMKeyStore;
PKCS1 = require('scsh/pkcs/PKCS1').PKCS1;


function decrypt(crypto, sc, pukey, prkey, algo) {
	var msg = new ByteString("Hello World", ASCII);

	var cipher = crypto.encrypt(pukey, algo, msg);

	var plain = sc.getCrypto().decrypt(prkey, algo, cipher);

	assert(plain.equals(msg), "Plain message does not match original message");
}



var crypto = new Crypto();
var card = new Card(_scsh3.reader);
var sc = new SmartCardHSM(card);
sc.verifyUserPIN(new ByteString("648219", ASCII));
var ks = new HSMKeyStore(sc);

var label = "SampleKeyForDecrypt";

var prkey = ks.sc.getKey(label);

if (prkey) {
	ks.deleteKey(label);
}

print("Generating key");
var cvc = ks.generateRSAKeyPair(label, 2048);
var prkey = ks.sc.getKey(label);

var pukey = cvc.getPublicKey();

print("Crypto.RSA_PKCS1");
decrypt(crypto, sc, pukey, prkey, Crypto.RSA_PKCS1);

print("Crypto.RSA_OAEP_SHA224");
decrypt(crypto, sc, pukey, prkey, Crypto.RSA_OAEP_SHA224);

print("Crypto.RSA_OAEP_SHA256");
decrypt(crypto, sc, pukey, prkey, Crypto.RSA_OAEP_SHA256);

// print("Crypto.RSA_OAEP_SHA384");
// decrypt(crypto, sc, pukey, prkey, Crypto.RSA_OAEP_SHA384);

print("Crypto.RSA_OAEP_SHA512");
decrypt(crypto, sc, pukey, prkey, Crypto.RSA_OAEP_SHA512);


Documentation generated by JSDoc on Sat Feb 24 15:17:19 2024