Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PyKCS11 import *
- import binascii
- pkcs11 = PyKCS11.PyKCS11Lib()
- lib_path = "asignp11.dll"
- pkcs11.load(lib_path)
- info = pkcs11.getInfo()
- slots = pkcs11.getSlotList()
- if len(slots) > 0:
- session = pkcs11.openSession(slots[0], CKF_SERIAL_SESSION | CKF_RW_SESSION)
- session.login("xxxx")
- #mech = PyKCS11.Mechanism(LL.CKM_RSA_PKCS_KEY_PAIR_GEN, None)
- public_template = [
- (CKA_CLASS, CKO_PUBLIC_KEY),
- (CKA_KEY_TYPE, CKK_RSA),
- ]
- private_template = [
- (CKA_CLASS, CKO_PRIVATE_KEY),
- (CKA_KEY_TYPE, CKK_RSA),
- ]
- pub_temp = session.findObjects(public_template)[0]
- priv_temp = session.findObjects(private_template)[0]
- # Signing data
- data = "4672616e7a206a61677420696d206b6f6d706c65747420766572776168726c6f7374656e205461786920717565722064757263682042617965726e"
- # Indicate SHA1 is used
- signMechanism = PyKCS11.Mechanism(CKM_SHA1_RSA_PKCS, None)
- signature = session.sign(priv_temp, binascii.unhexlify(data), signMechanism)
- print("\nsignature: " + str(binascii.hexlify(bytearray(signature))))
- result = session.verify(pub_temp, binascii.unhexlify(data), signature, signMechanism)
- print("\nVerified:", result)
- # logout
- session.logout()
- session.closeSession()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement