Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var graphene = require("graphene-pk11");
- var Module = graphene.Module;
- var lib = "/opt/local/lib/softhsm/libsofthsm2.so";
- var mod = Module.load(lib, "SoftHSM");
- var SessionFlag = graphene.SessionFlag;
- var UserType = graphene.UserType;
- mod.initialize();
- var slot = mod.getSlots(2);
- if (slot.flags & graphene.SlotFlag.TOKEN_PRESENT) {
- var session = slot.open(SessionFlag.SERIAL_SESSION | SessionFlag.RW_SESSION);
- session.login("8888",UserType.USER);
- // enc algorithm
- var alg = {
- name: "AES_CBC_PAD",
- params: new Buffer([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6]) // IV
- };
- // generate AES key
- var key = session.generateKey(graphene.KeyGenMechanism.AES, {
- "class": graphene.ObjectClass.SECRET_KEY,
- "token": false,
- "valueLen": 256 / 8,
- "keyType": graphene.KeyType.AES,
- "label": "My AES secret key",
- "encrypt": true,
- "decrypt": true
- });
- // decrypting
- var enc = new Buffer("196edd82ecca5e7df08090edf2cb3322", "hex");
- console.log("Enc:", enc); // Message: Encrypted message
- var dec = session.createDecipher(alg, key).once(enc, new Buffer(enc.byteLength));
- console.log("Message:", dec.toString()); // Message: decrypted message
- session.logout();
- session.close();
- }
- else {
- console.error("Slot is not initialized");
- }
- mod.finalize();
Add Comment
Please, Sign In to add comment