security/nss/cmd/pk11util/scripts/dosign

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:a74bbe2d02ba
1 Load nsscapi.dll
2 C_Initialize NULL
3 C_GetSlotList false NULL slotCount
4 NewArray slotList CK_ULONG slotCount
5 C_GetSlotList false slotList slotCount
6 #change the following to the appropriate slot id
7 set slotID 1
8 #set slotID slotList[0]
9 C_GetSlotInfo slotID slotInfo
10 C_GetTokenInfo slotID tokenInfo
11 C_OpenSession slotID CKF_SERIAL_SESSION session
12 #
13 #uncomment the following line and include the correct password
14 #C_Login session CKU_USER 0000 4
15 #
16 # build the search template
17 #
18 NewTemplate search CKA_CLASS
19 SetTemplate search 0 CKO_CERTIFICATE
20 NewArray certID CK_ULONG 10
21 C_FindObjectsInit session search 1
22 C_FindObjects session certID sizeA(certID) count
23 C_FindObjectsFinal session
24 #
25 # now read the cert out
26 #
27 #NewTemplate derCert CKA_VALUE
28 #NewTemplate certName CKA_LABEL,CKA_VALUE
29 #C_GetAttributeValue session certID[0] certName sizeA(certName)
30 #BuildTemplate certName
31 #C_GetAttributeValue session certID[0] certName sizeA(certName)
32 #print certName[0]
33 Set countm1 count
34 Decrement countm1 1
35 LoopRun pLabel1 i 0 countm1 1
36 Set i 1
37 run pLabel1
38 NewTemplate id CKA_CLASS,CKA_ID
39 C_GetAttributeValue session certID[i] id sizeA(id)
40 BuildTemplate id
41 C_GetAttributeValue session certID[i] id sizeA(id)
42 SetTemplate id 0 CKO_PRIVATE_KEY
43 NewArray keyID CK_ULONG 10
44 C_FindObjectsInit session id sizeA(id)
45 C_FindObjects session keyID sizeA(keyID) count
46 C_FindObjectsFinal session
47
48 NewMechanism rsaParams CKM_RSA_PKCS
49 NewArray sign data 256
50 NewArray sdata data 36
51 C_SignInit session rsaParams keyID[0]
52 print sdata
53 C_Sign session sdata sizeof(sdata) sign sizeof(sign)
54 save signature sign
55 save hash sdata
56 NewTemplate privValue CKA_MODULUS,CKA_PUBLIC_EXPONENT
57 C_GetAttributeValue session keyID[0] privValue sizeA(privValue)
58 BuildTemplate privValue
59 C_GetAttributeValue session keyID[0] privValue sizeA(privValue)
60 print privValue[0]
61 print privValue[1]
62
63 # save the public key
64 SetTemplate id 0 CKO_PUBLIC_KEY
65 NewArray pubkeyID CK_ULONG 10
66 C_FindObjectsInit session id sizeA(id)
67 C_FindObjects session pubkeyID sizeA(pubkeyID) count
68 C_FindObjectsFinal session
69 NewTemplate pubkeyValue CKA_MODULUS,CKA_PUBLIC_EXPONENT
70 C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue)
71 BuildTemplate pubkeyValue
72 C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue)
73 print pubkeyValue[0]
74 print pubkeyValue[1]
75
76
77 C_Finalize null
78 unload
79
80 #
81 # Now do the same for using softoken
82 #
83 load softokn3.dll
84 NewInitArg init CKF_OS_LOCKING_OK configdir=./db
85 C_Initialize init
86 C_GetSlotList false NULL slotCount
87 NewArray slotList CK_ULONG slotCount
88 C_GetSlotList false slotList slotCount
89 #change the following to the appropriate slot id
90 set slotID slotList[1]
91 #set slotID slotList[0]
92 C_GetSlotInfo slotID slotInfo
93 C_GetTokenInfo slotID tokenInfo
94 C_OpenSession slotID CKF_SERIAL_SESSION session
95 NewTemplate search CKA_CLASS
96 SetTemplate search 0 CKO_CERTIFICATE
97 NewArray certID CK_ULONG 10
98 C_FindObjectsInit session search 1
99 C_FindObjects session certID sizeA(certID) count
100 C_FindObjectsFinal session
101 #
102 # now read the cert out
103 #
104 #NewTemplate derCert CKA_VALUE
105 #NewTemplate certName CKA_LABEL,CKA_VALUE
106 #C_GetAttributeValue session certID[0] certName sizeA(certName)
107 #BuildTemplate certName
108 #C_GetAttributeValue session certID[0] certName sizeA(certName)
109 #print certName[0]
110 #Set countm1 count
111 #Decrement countm1 1
112 #LoopRun pLabel1 i 0 countm1 1
113 Set i 0
114 run pLabel1
115 NewTemplate id CKA_CLASS,CKA_ID
116 C_GetAttributeValue session certID[i] id sizeA(id)
117 BuildTemplate id
118 C_GetAttributeValue session certID[i] id sizeA(id)
119 SetTemplate id 0 CKO_PRIVATE_KEY
120 NewArray keyID CK_ULONG 10
121 C_FindObjectsInit session id sizeA(id)
122 C_FindObjects session keyID sizeA(keyID) count
123 C_FindObjectsFinal session
124
125 NewMechanism rsaParams CKM_RSA_PKCS
126 NewArray sign data 256
127 NewArray sdata data 36
128 C_SignInit session rsaParams keyID[0]
129 C_Sign session sdata sizeof(sdata) sign sizeof(sign)
130 save signature2 sign
131 save hash2 sdata
132
133 SetTemplate id 0 CKO_PUBLIC_KEY
134 NewArray pubkeyID CK_ULONG 10
135 C_FindObjectsInit session id sizeA(id)
136 C_FindObjects session pubkeyID sizeA(pubkeyID) count
137 C_FindObjectsFinal session
138
139 #
140 # OK now we use raw unwrap and see what we have...
141 #
142 NewMechanism rawRsaParams CKM_RSA_X_509
143 NewArray vdata data 256
144 C_VerifyRecoverInit session rawRsaParams pubkeyID[0]
145 C_VerifyRecover session sign sizeof(sign) vdata sizeof(vdata)
146 save verify2 vdata
147 restore signature sign
148 C_VerifyRecoverInit session rawRsaParams pubkeyID[0]
149 C_VerifyRecover session sign sizeof(sign) vdata sizeof(vdata)
150 save verify vdata
151
152 NewTemplate pubkeyValue CKA_MODULUS,CKA_PUBLIC_EXPONENT
153 C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue)
154 BuildTemplate pubkeyValue
155 C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue)
156 print pubkeyValue[0]
157 print pubkeyValue[1]
158
159
160 C_Finalize null
161
162 unload

mercurial