Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. from PyKCS11 import *
  2. import binascii
  3.  
  4. pkcs11 = PyKCS11.PyKCS11Lib()
  5. lib_path = "asignp11.dll"
  6. pkcs11.load(lib_path)
  7. info = pkcs11.getInfo()
  8. slots = pkcs11.getSlotList()
  9. if len(slots) > 0:
  10. session = pkcs11.openSession(slots[0], CKF_SERIAL_SESSION | CKF_RW_SESSION)
  11. session.login("xxxx")
  12. #mech = PyKCS11.Mechanism(LL.CKM_RSA_PKCS_KEY_PAIR_GEN, None)
  13. public_template = [
  14. (CKA_CLASS, CKO_PUBLIC_KEY),
  15. (CKA_KEY_TYPE, CKK_RSA),
  16. ]
  17. private_template = [
  18. (CKA_CLASS, CKO_PRIVATE_KEY),
  19. (CKA_KEY_TYPE, CKK_RSA),
  20. ]
  21. pub_temp = session.findObjects(public_template)[0]
  22. priv_temp = session.findObjects(private_template)[0]
  23. # Signing data
  24. data = "4672616e7a206a61677420696d206b6f6d706c65747420766572776168726c6f7374656e205461786920717565722064757263682042617965726e"
  25. # Indicate SHA1 is used
  26. signMechanism = PyKCS11.Mechanism(CKM_SHA1_RSA_PKCS, None)
  27. signature = session.sign(priv_temp, binascii.unhexlify(data), signMechanism)
  28. print("\nsignature: " + str(binascii.hexlify(bytearray(signature))))
  29.  
  30. result = session.verify(pub_temp, binascii.unhexlify(data), signature, signMechanism)
  31. print("\nVerified:", result)
  32.  
  33. # logout
  34. session.logout()
  35. session.closeSession()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement