Guest User

Untitled

a guest
Dec 17th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 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. "encrypt": true,
  30. "decrypt": true
  31. });
  32.  
  33. var MESSAGE = "helloworld";
  34.  
  35. var enc = new Buffer(0);
  36.  
  37. // encrypting
  38. var enc = session.createCipher(alg, key).once(MESSAGE, new Buffer((MESSAGE.length >> 3 << 3) + 16));
  39. console.log("Enc:", enc);
  40. console.log("Enc:", enc.toString("hex")); // Enc: eb21e15b896f728a4...
  41.  
  42.  
  43. session.logout();
  44. session.close();
  45. }
  46. else {
  47. console.error("Slot is not initialized");
  48. }
  49.  
  50. mod.finalize();
Add Comment
Please, Sign In to add comment