|
Packit |
40b132 |
Load nsscapi.dll
|
|
Packit |
40b132 |
C_Initialize NULL
|
|
Packit |
40b132 |
C_GetSlotList false NULL slotCount
|
|
Packit |
40b132 |
NewArray slotList CK_ULONG slotCount
|
|
Packit |
40b132 |
C_GetSlotList false slotList slotCount
|
|
Packit |
40b132 |
#change the following to the appropriate slot id
|
|
Packit |
40b132 |
set slotID 1
|
|
Packit |
40b132 |
#set slotID slotList[0]
|
|
Packit |
40b132 |
C_GetSlotInfo slotID slotInfo
|
|
Packit |
40b132 |
C_GetTokenInfo slotID tokenInfo
|
|
Packit |
40b132 |
C_OpenSession slotID CKF_SERIAL_SESSION session
|
|
Packit |
40b132 |
#
|
|
Packit |
40b132 |
#uncomment the following line and include the correct password
|
|
Packit |
40b132 |
#C_Login session CKU_USER 0000 4
|
|
Packit |
40b132 |
#
|
|
Packit |
40b132 |
# build the search template
|
|
Packit |
40b132 |
#
|
|
Packit |
40b132 |
NewTemplate search CKA_CLASS
|
|
Packit |
40b132 |
SetTemplate search 0 CKO_CERTIFICATE
|
|
Packit |
40b132 |
NewArray certID CK_ULONG 10
|
|
Packit |
40b132 |
C_FindObjectsInit session search 1
|
|
Packit |
40b132 |
C_FindObjects session certID sizeA(certID) count
|
|
Packit |
40b132 |
C_FindObjectsFinal session
|
|
Packit |
40b132 |
#
|
|
Packit |
40b132 |
# now read the cert out
|
|
Packit |
40b132 |
#
|
|
Packit |
40b132 |
#NewTemplate derCert CKA_VALUE
|
|
Packit |
40b132 |
#NewTemplate certName CKA_LABEL,CKA_VALUE
|
|
Packit |
40b132 |
#C_GetAttributeValue session certID[0] certName sizeA(certName)
|
|
Packit |
40b132 |
#BuildTemplate certName
|
|
Packit |
40b132 |
#C_GetAttributeValue session certID[0] certName sizeA(certName)
|
|
Packit |
40b132 |
#print certName[0]
|
|
Packit |
40b132 |
Set countm1 count
|
|
Packit |
40b132 |
Decrement countm1 1
|
|
Packit |
40b132 |
LoopRun pLabel1 i 0 countm1 1
|
|
Packit |
40b132 |
Set i 1
|
|
Packit |
40b132 |
run pLabel1
|
|
Packit |
40b132 |
NewTemplate id CKA_CLASS,CKA_ID
|
|
Packit |
40b132 |
C_GetAttributeValue session certID[i] id sizeA(id)
|
|
Packit |
40b132 |
BuildTemplate id
|
|
Packit |
40b132 |
C_GetAttributeValue session certID[i] id sizeA(id)
|
|
Packit |
40b132 |
SetTemplate id 0 CKO_PRIVATE_KEY
|
|
Packit |
40b132 |
NewArray keyID CK_ULONG 10
|
|
Packit |
40b132 |
C_FindObjectsInit session id sizeA(id)
|
|
Packit |
40b132 |
C_FindObjects session keyID sizeA(keyID) count
|
|
Packit |
40b132 |
C_FindObjectsFinal session
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
NewMechanism rsaParams CKM_RSA_PKCS
|
|
Packit |
40b132 |
NewArray sign data 256
|
|
Packit |
40b132 |
NewArray sdata data 36
|
|
Packit |
40b132 |
C_SignInit session rsaParams keyID[0]
|
|
Packit |
40b132 |
print sdata
|
|
Packit |
40b132 |
C_Sign session sdata sizeof(sdata) sign sizeof(sign)
|
|
Packit |
40b132 |
save signature sign
|
|
Packit |
40b132 |
save hash sdata
|
|
Packit |
40b132 |
NewTemplate privValue CKA_MODULUS,CKA_PUBLIC_EXPONENT
|
|
Packit |
40b132 |
C_GetAttributeValue session keyID[0] privValue sizeA(privValue)
|
|
Packit |
40b132 |
BuildTemplate privValue
|
|
Packit |
40b132 |
C_GetAttributeValue session keyID[0] privValue sizeA(privValue)
|
|
Packit |
40b132 |
print privValue[0]
|
|
Packit |
40b132 |
print privValue[1]
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
# save the public key
|
|
Packit |
40b132 |
SetTemplate id 0 CKO_PUBLIC_KEY
|
|
Packit |
40b132 |
NewArray pubkeyID CK_ULONG 10
|
|
Packit |
40b132 |
C_FindObjectsInit session id sizeA(id)
|
|
Packit |
40b132 |
C_FindObjects session pubkeyID sizeA(pubkeyID) count
|
|
Packit |
40b132 |
C_FindObjectsFinal session
|
|
Packit |
40b132 |
NewTemplate pubkeyValue CKA_MODULUS,CKA_PUBLIC_EXPONENT
|
|
Packit |
40b132 |
C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue)
|
|
Packit |
40b132 |
BuildTemplate pubkeyValue
|
|
Packit |
40b132 |
C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue)
|
|
Packit |
40b132 |
print pubkeyValue[0]
|
|
Packit |
40b132 |
print pubkeyValue[1]
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
C_Finalize null
|
|
Packit |
40b132 |
unload
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
#
|
|
Packit |
40b132 |
# Now do the same for using softoken
|
|
Packit |
40b132 |
#
|
|
Packit |
40b132 |
load softokn3.dll
|
|
Packit |
40b132 |
NewInitArg init CKF_OS_LOCKING_OK configdir=./db
|
|
Packit |
40b132 |
C_Initialize init
|
|
Packit |
40b132 |
C_GetSlotList false NULL slotCount
|
|
Packit |
40b132 |
NewArray slotList CK_ULONG slotCount
|
|
Packit |
40b132 |
C_GetSlotList false slotList slotCount
|
|
Packit |
40b132 |
#change the following to the appropriate slot id
|
|
Packit |
40b132 |
set slotID slotList[1]
|
|
Packit |
40b132 |
#set slotID slotList[0]
|
|
Packit |
40b132 |
C_GetSlotInfo slotID slotInfo
|
|
Packit |
40b132 |
C_GetTokenInfo slotID tokenInfo
|
|
Packit |
40b132 |
C_OpenSession slotID CKF_SERIAL_SESSION session
|
|
Packit |
40b132 |
NewTemplate search CKA_CLASS
|
|
Packit |
40b132 |
SetTemplate search 0 CKO_CERTIFICATE
|
|
Packit |
40b132 |
NewArray certID CK_ULONG 10
|
|
Packit |
40b132 |
C_FindObjectsInit session search 1
|
|
Packit |
40b132 |
C_FindObjects session certID sizeA(certID) count
|
|
Packit |
40b132 |
C_FindObjectsFinal session
|
|
Packit |
40b132 |
#
|
|
Packit |
40b132 |
# now read the cert out
|
|
Packit |
40b132 |
#
|
|
Packit |
40b132 |
#NewTemplate derCert CKA_VALUE
|
|
Packit |
40b132 |
#NewTemplate certName CKA_LABEL,CKA_VALUE
|
|
Packit |
40b132 |
#C_GetAttributeValue session certID[0] certName sizeA(certName)
|
|
Packit |
40b132 |
#BuildTemplate certName
|
|
Packit |
40b132 |
#C_GetAttributeValue session certID[0] certName sizeA(certName)
|
|
Packit |
40b132 |
#print certName[0]
|
|
Packit |
40b132 |
#Set countm1 count
|
|
Packit |
40b132 |
#Decrement countm1 1
|
|
Packit |
40b132 |
#LoopRun pLabel1 i 0 countm1 1
|
|
Packit |
40b132 |
Set i 0
|
|
Packit |
40b132 |
run pLabel1
|
|
Packit |
40b132 |
NewTemplate id CKA_CLASS,CKA_ID
|
|
Packit |
40b132 |
C_GetAttributeValue session certID[i] id sizeA(id)
|
|
Packit |
40b132 |
BuildTemplate id
|
|
Packit |
40b132 |
C_GetAttributeValue session certID[i] id sizeA(id)
|
|
Packit |
40b132 |
SetTemplate id 0 CKO_PRIVATE_KEY
|
|
Packit |
40b132 |
NewArray keyID CK_ULONG 10
|
|
Packit |
40b132 |
C_FindObjectsInit session id sizeA(id)
|
|
Packit |
40b132 |
C_FindObjects session keyID sizeA(keyID) count
|
|
Packit |
40b132 |
C_FindObjectsFinal session
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
NewMechanism rsaParams CKM_RSA_PKCS
|
|
Packit |
40b132 |
NewArray sign data 256
|
|
Packit |
40b132 |
NewArray sdata data 36
|
|
Packit |
40b132 |
C_SignInit session rsaParams keyID[0]
|
|
Packit |
40b132 |
C_Sign session sdata sizeof(sdata) sign sizeof(sign)
|
|
Packit |
40b132 |
save signature2 sign
|
|
Packit |
40b132 |
save hash2 sdata
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
SetTemplate id 0 CKO_PUBLIC_KEY
|
|
Packit |
40b132 |
NewArray pubkeyID CK_ULONG 10
|
|
Packit |
40b132 |
C_FindObjectsInit session id sizeA(id)
|
|
Packit |
40b132 |
C_FindObjects session pubkeyID sizeA(pubkeyID) count
|
|
Packit |
40b132 |
C_FindObjectsFinal session
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
#
|
|
Packit |
40b132 |
# OK now we use raw unwrap and see what we have...
|
|
Packit |
40b132 |
#
|
|
Packit |
40b132 |
NewMechanism rawRsaParams CKM_RSA_X_509
|
|
Packit |
40b132 |
NewArray vdata data 256
|
|
Packit |
40b132 |
C_VerifyRecoverInit session rawRsaParams pubkeyID[0]
|
|
Packit |
40b132 |
C_VerifyRecover session sign sizeof(sign) vdata sizeof(vdata)
|
|
Packit |
40b132 |
save verify2 vdata
|
|
Packit |
40b132 |
restore signature sign
|
|
Packit |
40b132 |
C_VerifyRecoverInit session rawRsaParams pubkeyID[0]
|
|
Packit |
40b132 |
C_VerifyRecover session sign sizeof(sign) vdata sizeof(vdata)
|
|
Packit |
40b132 |
save verify vdata
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
NewTemplate pubkeyValue CKA_MODULUS,CKA_PUBLIC_EXPONENT
|
|
Packit |
40b132 |
C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue)
|
|
Packit |
40b132 |
BuildTemplate pubkeyValue
|
|
Packit |
40b132 |
C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue)
|
|
Packit |
40b132 |
print pubkeyValue[0]
|
|
Packit |
40b132 |
print pubkeyValue[1]
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
C_Finalize null
|
|
Packit |
40b132 |
|
|
Packit |
40b132 |
unload
|