Guest User

Untitled

a guest
Dec 17th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. var graphene = require("graphene-pk11");
  2. var Module = graphene.Module;
  3.  
  4. var lib = "/opt/local/lib/softhsm/libsofthsm2.so";
  5.  
  6. var mod = Module.load(lib, "SoftHSM");
  7. var SessionFlag = graphene.SessionFlag;
  8. var UserType = graphene.UserType;
  9.  
  10. mod.initialize();
  11.  
  12. var slot = mod.getSlots(2);
  13. if (slot.flags & graphene.SlotFlag.TOKEN_PRESENT) {
  14. var session = slot.open(SessionFlag.SERIAL_SESSION | SessionFlag.RW_SESSION);
  15. session.login("8888",UserType.USER);
  16.  
  17. // enc algorithm
  18. var alg = {
  19. name: "AES_CBC_PAD",
  20. params: new Buffer([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6]) // IV
  21. };
  22.  
  23. // generate AES key
  24. var key = session.generateKey(graphene.KeyGenMechanism.AES, {
  25. "class": graphene.ObjectClass.SECRET_KEY,
  26. "token": false,
  27. "valueLen": 256 / 8,
  28. "keyType": graphene.KeyType.AES,
  29. "label": "My AES secret key",
  30. "encrypt": true,
  31. "decrypt": true
  32. });
  33.  
  34. // decrypting
  35. var enc = new Buffer("196edd82ecca5e7df08090edf2cb3322", "hex");
  36. console.log("Enc:", enc); // Message: Encrypted message
  37.  
  38. var dec = session.createDecipher(alg, key).once(enc, new Buffer(enc.byteLength));
  39. console.log("Message:", dec.toString()); // Message: decrypted message
  40.  
  41. session.logout();
  42. session.close();
  43. }
  44. else {
  45. console.error("Slot is not initialized");
  46. }
  47.  
  48. mod.finalize();
Add Comment
Please, Sign In to add comment