Blame nss/cmd/pk11util/scripts/dosign

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