Load aolkeypk11.dll C_Initialize NULL C_GetSlotList false NULL slotCount NewArray slotList CK_ULONG slotCount C_GetSlotList false slotList slotCount #change the following to the appropriate slot id #set slotID 1 set slotID slotList[0] C_GetSlotInfo slotID slotInfo C_GetTokenInfo slotID tokenInfo C_OpenSession slotID CK_SESSION_SERIAL session # #uncomment the following line and include the correct password #C_Login session CKU_USER 0000 4 # # build the search template # #NewTemplate search CKA_CLASS #SetTemplate search 0 CKO_CERTIFICATE #NewArray certID CK_ULONG 1 #C_FindObjectsInit session search 1 #C_FindObjects session certID 1 count #C_FindObjectsFinal session # # now read the cert out # #NewTemplate derCert CKA_VALUE #C_GetAttributeValue session certID derCert 1 #BuildTemplate derCert #C_GetAttributeValue session certID derCert 1 # # Do a signature # NewTemplate search CKA_CLASS SetTemplate search 0 CKO_PRIVATE_KEY NewArray privateKey CK_ULONG 1 C_FindObjectsInit session search 1 C_FindObjects session privateKey 1 count C_FindObjectsFinal session # NewTemplate pkey CKA_CLASS,CKA_TOKEN,CKA_PRIVATE,CKA_LABEL,CKA_ID,CKA_SENSITIVE,CKA_EXTRACTABLE C_GetAttributeValue session privateKey pkey sizeofarray(pkey) BuildTemplate pkey C_GetAttributeValue session privateKey pkey sizeofarray(pkey) # sign #NewMechanism rsaParams CKM_RSA_PKCS #NewArray sign data 128 #NewArray sdata data 20 #C_SignInit session rsaParams privateKey #C_Sign session sdata sizeof(sdata) sign sizeof(sign) #C_Sign session data result #C_Logout session