tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

dosign (4756B)


      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