diff options
Diffstat (limited to 'security/nss/cmd/pk11util/scripts/dosign')
-rw-r--r-- | security/nss/cmd/pk11util/scripts/dosign | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/security/nss/cmd/pk11util/scripts/dosign b/security/nss/cmd/pk11util/scripts/dosign new file mode 100644 index 000000000..33e761f0b --- /dev/null +++ b/security/nss/cmd/pk11util/scripts/dosign @@ -0,0 +1,162 @@ +Load nsscapi.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 CKF_SERIAL_SESSION 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 10 +C_FindObjectsInit session search 1 +C_FindObjects session certID sizeA(certID) count +C_FindObjectsFinal session +# +# now read the cert out +# +#NewTemplate derCert CKA_VALUE +#NewTemplate certName CKA_LABEL,CKA_VALUE +#C_GetAttributeValue session certID[0] certName sizeA(certName) +#BuildTemplate certName +#C_GetAttributeValue session certID[0] certName sizeA(certName) +#print certName[0] +Set countm1 count +Decrement countm1 1 +LoopRun pLabel1 i 0 countm1 1 +Set i 1 +run pLabel1 +NewTemplate id CKA_CLASS,CKA_ID +C_GetAttributeValue session certID[i] id sizeA(id) +BuildTemplate id +C_GetAttributeValue session certID[i] id sizeA(id) +SetTemplate id 0 CKO_PRIVATE_KEY +NewArray keyID CK_ULONG 10 +C_FindObjectsInit session id sizeA(id) +C_FindObjects session keyID sizeA(keyID) count +C_FindObjectsFinal session + +NewMechanism rsaParams CKM_RSA_PKCS +NewArray sign data 256 +NewArray sdata data 36 +C_SignInit session rsaParams keyID[0] +print sdata +C_Sign session sdata sizeof(sdata) sign sizeof(sign) +save signature sign +save hash sdata +NewTemplate privValue CKA_MODULUS,CKA_PUBLIC_EXPONENT +C_GetAttributeValue session keyID[0] privValue sizeA(privValue) +BuildTemplate privValue +C_GetAttributeValue session keyID[0] privValue sizeA(privValue) +print privValue[0] +print privValue[1] + +# save the public key +SetTemplate id 0 CKO_PUBLIC_KEY +NewArray pubkeyID CK_ULONG 10 +C_FindObjectsInit session id sizeA(id) +C_FindObjects session pubkeyID sizeA(pubkeyID) count +C_FindObjectsFinal session +NewTemplate pubkeyValue CKA_MODULUS,CKA_PUBLIC_EXPONENT +C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) +BuildTemplate pubkeyValue +C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) +print pubkeyValue[0] +print pubkeyValue[1] + + +C_Finalize null +unload + +# +# Now do the same for using softoken +# +load softokn3.dll +NewInitArg init CKF_OS_LOCKING_OK configdir=./db +C_Initialize init +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 slotList[1] +#set slotID slotList[0] +C_GetSlotInfo slotID slotInfo +C_GetTokenInfo slotID tokenInfo +C_OpenSession slotID CKF_SERIAL_SESSION session +NewTemplate search CKA_CLASS +SetTemplate search 0 CKO_CERTIFICATE +NewArray certID CK_ULONG 10 +C_FindObjectsInit session search 1 +C_FindObjects session certID sizeA(certID) count +C_FindObjectsFinal session +# +# now read the cert out +# +#NewTemplate derCert CKA_VALUE +#NewTemplate certName CKA_LABEL,CKA_VALUE +#C_GetAttributeValue session certID[0] certName sizeA(certName) +#BuildTemplate certName +#C_GetAttributeValue session certID[0] certName sizeA(certName) +#print certName[0] +#Set countm1 count +#Decrement countm1 1 +#LoopRun pLabel1 i 0 countm1 1 +Set i 0 +run pLabel1 +NewTemplate id CKA_CLASS,CKA_ID +C_GetAttributeValue session certID[i] id sizeA(id) +BuildTemplate id +C_GetAttributeValue session certID[i] id sizeA(id) +SetTemplate id 0 CKO_PRIVATE_KEY +NewArray keyID CK_ULONG 10 +C_FindObjectsInit session id sizeA(id) +C_FindObjects session keyID sizeA(keyID) count +C_FindObjectsFinal session + +NewMechanism rsaParams CKM_RSA_PKCS +NewArray sign data 256 +NewArray sdata data 36 +C_SignInit session rsaParams keyID[0] +C_Sign session sdata sizeof(sdata) sign sizeof(sign) +save signature2 sign +save hash2 sdata + +SetTemplate id 0 CKO_PUBLIC_KEY +NewArray pubkeyID CK_ULONG 10 +C_FindObjectsInit session id sizeA(id) +C_FindObjects session pubkeyID sizeA(pubkeyID) count +C_FindObjectsFinal session + +# +# OK now we use raw unwrap and see what we have... +# +NewMechanism rawRsaParams CKM_RSA_X_509 +NewArray vdata data 256 +C_VerifyRecoverInit session rawRsaParams pubkeyID[0] +C_VerifyRecover session sign sizeof(sign) vdata sizeof(vdata) +save verify2 vdata +restore signature sign +C_VerifyRecoverInit session rawRsaParams pubkeyID[0] +C_VerifyRecover session sign sizeof(sign) vdata sizeof(vdata) +save verify vdata + +NewTemplate pubkeyValue CKA_MODULUS,CKA_PUBLIC_EXPONENT +C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) +BuildTemplate pubkeyValue +C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) +print pubkeyValue[0] +print pubkeyValue[1] + + +C_Finalize null + +unload |