1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/security/nss/cmd/pk11util/scripts/dosign Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,162 @@ 1.4 +Load nsscapi.dll 1.5 +C_Initialize NULL 1.6 +C_GetSlotList false NULL slotCount 1.7 +NewArray slotList CK_ULONG slotCount 1.8 +C_GetSlotList false slotList slotCount 1.9 +#change the following to the appropriate slot id 1.10 +set slotID 1 1.11 +#set slotID slotList[0] 1.12 +C_GetSlotInfo slotID slotInfo 1.13 +C_GetTokenInfo slotID tokenInfo 1.14 +C_OpenSession slotID CKF_SERIAL_SESSION session 1.15 +# 1.16 +#uncomment the following line and include the correct password 1.17 +#C_Login session CKU_USER 0000 4 1.18 +# 1.19 +# build the search template 1.20 +# 1.21 +NewTemplate search CKA_CLASS 1.22 +SetTemplate search 0 CKO_CERTIFICATE 1.23 +NewArray certID CK_ULONG 10 1.24 +C_FindObjectsInit session search 1 1.25 +C_FindObjects session certID sizeA(certID) count 1.26 +C_FindObjectsFinal session 1.27 +# 1.28 +# now read the cert out 1.29 +# 1.30 +#NewTemplate derCert CKA_VALUE 1.31 +#NewTemplate certName CKA_LABEL,CKA_VALUE 1.32 +#C_GetAttributeValue session certID[0] certName sizeA(certName) 1.33 +#BuildTemplate certName 1.34 +#C_GetAttributeValue session certID[0] certName sizeA(certName) 1.35 +#print certName[0] 1.36 +Set countm1 count 1.37 +Decrement countm1 1 1.38 +LoopRun pLabel1 i 0 countm1 1 1.39 +Set i 1 1.40 +run pLabel1 1.41 +NewTemplate id CKA_CLASS,CKA_ID 1.42 +C_GetAttributeValue session certID[i] id sizeA(id) 1.43 +BuildTemplate id 1.44 +C_GetAttributeValue session certID[i] id sizeA(id) 1.45 +SetTemplate id 0 CKO_PRIVATE_KEY 1.46 +NewArray keyID CK_ULONG 10 1.47 +C_FindObjectsInit session id sizeA(id) 1.48 +C_FindObjects session keyID sizeA(keyID) count 1.49 +C_FindObjectsFinal session 1.50 + 1.51 +NewMechanism rsaParams CKM_RSA_PKCS 1.52 +NewArray sign data 256 1.53 +NewArray sdata data 36 1.54 +C_SignInit session rsaParams keyID[0] 1.55 +print sdata 1.56 +C_Sign session sdata sizeof(sdata) sign sizeof(sign) 1.57 +save signature sign 1.58 +save hash sdata 1.59 +NewTemplate privValue CKA_MODULUS,CKA_PUBLIC_EXPONENT 1.60 +C_GetAttributeValue session keyID[0] privValue sizeA(privValue) 1.61 +BuildTemplate privValue 1.62 +C_GetAttributeValue session keyID[0] privValue sizeA(privValue) 1.63 +print privValue[0] 1.64 +print privValue[1] 1.65 + 1.66 +# save the public key 1.67 +SetTemplate id 0 CKO_PUBLIC_KEY 1.68 +NewArray pubkeyID CK_ULONG 10 1.69 +C_FindObjectsInit session id sizeA(id) 1.70 +C_FindObjects session pubkeyID sizeA(pubkeyID) count 1.71 +C_FindObjectsFinal session 1.72 +NewTemplate pubkeyValue CKA_MODULUS,CKA_PUBLIC_EXPONENT 1.73 +C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) 1.74 +BuildTemplate pubkeyValue 1.75 +C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) 1.76 +print pubkeyValue[0] 1.77 +print pubkeyValue[1] 1.78 + 1.79 + 1.80 +C_Finalize null 1.81 +unload 1.82 + 1.83 +# 1.84 +# Now do the same for using softoken 1.85 +# 1.86 +load softokn3.dll 1.87 +NewInitArg init CKF_OS_LOCKING_OK configdir=./db 1.88 +C_Initialize init 1.89 +C_GetSlotList false NULL slotCount 1.90 +NewArray slotList CK_ULONG slotCount 1.91 +C_GetSlotList false slotList slotCount 1.92 +#change the following to the appropriate slot id 1.93 +set slotID slotList[1] 1.94 +#set slotID slotList[0] 1.95 +C_GetSlotInfo slotID slotInfo 1.96 +C_GetTokenInfo slotID tokenInfo 1.97 +C_OpenSession slotID CKF_SERIAL_SESSION session 1.98 +NewTemplate search CKA_CLASS 1.99 +SetTemplate search 0 CKO_CERTIFICATE 1.100 +NewArray certID CK_ULONG 10 1.101 +C_FindObjectsInit session search 1 1.102 +C_FindObjects session certID sizeA(certID) count 1.103 +C_FindObjectsFinal session 1.104 +# 1.105 +# now read the cert out 1.106 +# 1.107 +#NewTemplate derCert CKA_VALUE 1.108 +#NewTemplate certName CKA_LABEL,CKA_VALUE 1.109 +#C_GetAttributeValue session certID[0] certName sizeA(certName) 1.110 +#BuildTemplate certName 1.111 +#C_GetAttributeValue session certID[0] certName sizeA(certName) 1.112 +#print certName[0] 1.113 +#Set countm1 count 1.114 +#Decrement countm1 1 1.115 +#LoopRun pLabel1 i 0 countm1 1 1.116 +Set i 0 1.117 +run pLabel1 1.118 +NewTemplate id CKA_CLASS,CKA_ID 1.119 +C_GetAttributeValue session certID[i] id sizeA(id) 1.120 +BuildTemplate id 1.121 +C_GetAttributeValue session certID[i] id sizeA(id) 1.122 +SetTemplate id 0 CKO_PRIVATE_KEY 1.123 +NewArray keyID CK_ULONG 10 1.124 +C_FindObjectsInit session id sizeA(id) 1.125 +C_FindObjects session keyID sizeA(keyID) count 1.126 +C_FindObjectsFinal session 1.127 + 1.128 +NewMechanism rsaParams CKM_RSA_PKCS 1.129 +NewArray sign data 256 1.130 +NewArray sdata data 36 1.131 +C_SignInit session rsaParams keyID[0] 1.132 +C_Sign session sdata sizeof(sdata) sign sizeof(sign) 1.133 +save signature2 sign 1.134 +save hash2 sdata 1.135 + 1.136 +SetTemplate id 0 CKO_PUBLIC_KEY 1.137 +NewArray pubkeyID CK_ULONG 10 1.138 +C_FindObjectsInit session id sizeA(id) 1.139 +C_FindObjects session pubkeyID sizeA(pubkeyID) count 1.140 +C_FindObjectsFinal session 1.141 + 1.142 +# 1.143 +# OK now we use raw unwrap and see what we have... 1.144 +# 1.145 +NewMechanism rawRsaParams CKM_RSA_X_509 1.146 +NewArray vdata data 256 1.147 +C_VerifyRecoverInit session rawRsaParams pubkeyID[0] 1.148 +C_VerifyRecover session sign sizeof(sign) vdata sizeof(vdata) 1.149 +save verify2 vdata 1.150 +restore signature sign 1.151 +C_VerifyRecoverInit session rawRsaParams pubkeyID[0] 1.152 +C_VerifyRecover session sign sizeof(sign) vdata sizeof(vdata) 1.153 +save verify vdata 1.154 + 1.155 +NewTemplate pubkeyValue CKA_MODULUS,CKA_PUBLIC_EXPONENT 1.156 +C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) 1.157 +BuildTemplate pubkeyValue 1.158 +C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) 1.159 +print pubkeyValue[0] 1.160 +print pubkeyValue[1] 1.161 + 1.162 + 1.163 +C_Finalize null 1.164 + 1.165 +unload