tor-browser

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

nssckfwc.h (17113B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #ifndef NSSCKFWC_H
      6 #define NSSCKFWC_H
      7 
      8 /*
      9 * nssckfwc.h
     10 *
     11 * This file prototypes all of the NSS Cryptoki Framework "wrapper"
     12 * which implement the PKCS#11 API.  Technically, these are public
     13 * routines (with capital "NSS" prefixes), since they are called
     14 * from (generated) code within a Module using the Framework.
     15 * However, they should not be called except from those generated
     16 * calls.  Hence, the prototypes have been split out into this file.
     17 */
     18 
     19 #ifndef NSSCKT_H
     20 #include "nssckt.h"
     21 #endif /* NSSCKT_H */
     22 
     23 #ifndef NSSCKFWT_H
     24 #include "nssckfwt.h"
     25 #endif /* NSSCKFWT_H */
     26 
     27 #ifndef NSSCKMDT_H
     28 #include "nssckmdt.h"
     29 #endif /* NSSCKMDT_H */
     30 
     31 /*
     32 * NSSCKFWC_Initialize
     33 * NSSCKFWC_Finalize
     34 * NSSCKFWC_GetInfo
     35 * -- NSSCKFWC_GetFunctionList -- see the API insert file
     36 * NSSCKFWC_GetSlotList
     37 * NSSCKFWC_GetSlotInfo
     38 * NSSCKFWC_GetTokenInfo
     39 * NSSCKFWC_WaitForSlotEvent
     40 * NSSCKFWC_GetMechanismList
     41 * NSSCKFWC_GetMechanismInfo
     42 * NSSCKFWC_InitToken
     43 * NSSCKFWC_InitPIN
     44 * NSSCKFWC_SetPIN
     45 * NSSCKFWC_OpenSession
     46 * NSSCKFWC_CloseSession
     47 * NSSCKFWC_CloseAllSessions
     48 * NSSCKFWC_GetSessionInfo
     49 * NSSCKFWC_GetOperationState
     50 * NSSCKFWC_SetOperationState
     51 * NSSCKFWC_Login
     52 * NSSCKFWC_Logout
     53 * NSSCKFWC_CreateObject
     54 * NSSCKFWC_CopyObject
     55 * NSSCKFWC_DestroyObject
     56 * NSSCKFWC_GetObjectSize
     57 * NSSCKFWC_GetAttributeValue
     58 * NSSCKFWC_SetAttributeValue
     59 * NSSCKFWC_FindObjectsInit
     60 * NSSCKFWC_FindObjects
     61 * NSSCKFWC_FindObjectsFinal
     62 * NSSCKFWC_EncryptInit
     63 * NSSCKFWC_Encrypt
     64 * NSSCKFWC_EncryptUpdate
     65 * NSSCKFWC_EncryptFinal
     66 * NSSCKFWC_DecryptInit
     67 * NSSCKFWC_Decrypt
     68 * NSSCKFWC_DecryptUpdate
     69 * NSSCKFWC_DecryptFinal
     70 * NSSCKFWC_DigestInit
     71 * NSSCKFWC_Digest
     72 * NSSCKFWC_DigestUpdate
     73 * NSSCKFWC_DigestKey
     74 * NSSCKFWC_DigestFinal
     75 * NSSCKFWC_SignInit
     76 * NSSCKFWC_Sign
     77 * NSSCKFWC_SignUpdate
     78 * NSSCKFWC_SignFinal
     79 * NSSCKFWC_SignRecoverInit
     80 * NSSCKFWC_SignRecover
     81 * NSSCKFWC_VerifyInit
     82 * NSSCKFWC_Verify
     83 * NSSCKFWC_VerifyUpdate
     84 * NSSCKFWC_VerifyFinal
     85 * NSSCKFWC_VerifyRecoverInit
     86 * NSSCKFWC_VerifyRecover
     87 * NSSCKFWC_DigestEncryptUpdate
     88 * NSSCKFWC_DecryptDigestUpdate
     89 * NSSCKFWC_SignEncryptUpdate
     90 * NSSCKFWC_DecryptVerifyUpdate
     91 * NSSCKFWC_GenerateKey
     92 * NSSCKFWC_GenerateKeyPair
     93 * NSSCKFWC_WrapKey
     94 * NSSCKFWC_UnwrapKey
     95 * NSSCKFWC_DeriveKey
     96 * NSSCKFWC_SeedRandom
     97 * NSSCKFWC_GenerateRandom
     98 * NSSCKFWC_GetFunctionStatus
     99 * NSSCKFWC_CancelFunction
    100 */
    101 
    102 /*
    103 * NSSCKFWC_Initialize
    104 *
    105 */
    106 NSS_EXTERN CK_RV
    107 NSSCKFWC_Initialize(
    108    NSSCKFWInstance **pFwInstance,
    109    NSSCKMDInstance *mdInstance,
    110    CK_VOID_PTR pInitArgs);
    111 
    112 /*
    113 * NSSCKFWC_Finalize
    114 *
    115 */
    116 NSS_EXTERN CK_RV
    117 NSSCKFWC_Finalize(
    118    NSSCKFWInstance **pFwInstance);
    119 
    120 /*
    121 * NSSCKFWC_GetInfo
    122 *
    123 */
    124 NSS_EXTERN CK_RV
    125 NSSCKFWC_GetInfo(
    126    NSSCKFWInstance *fwInstance,
    127    CK_INFO_PTR pInfo);
    128 
    129 /*
    130 * C_GetFunctionList is implemented entirely in the Module's file which
    131 * includes the Framework API insert file.  It requires no "actual"
    132 * NSSCKFW routine.
    133 */
    134 
    135 /*
    136 * NSSCKFWC_GetSlotList
    137 *
    138 */
    139 NSS_EXTERN CK_RV
    140 NSSCKFWC_GetSlotList(
    141    NSSCKFWInstance *fwInstance,
    142    CK_BBOOL tokenPresent,
    143    CK_SLOT_ID_PTR pSlotList,
    144    CK_ULONG_PTR pulCount);
    145 
    146 /*
    147 * NSSCKFWC_GetSlotInfo
    148 *
    149 */
    150 NSS_EXTERN CK_RV
    151 NSSCKFWC_GetSlotInfo(
    152    NSSCKFWInstance *fwInstance,
    153    CK_SLOT_ID slotID,
    154    CK_SLOT_INFO_PTR pInfo);
    155 
    156 /*
    157 * NSSCKFWC_GetTokenInfo
    158 *
    159 */
    160 NSS_EXTERN CK_RV
    161 NSSCKFWC_GetTokenInfo(
    162    NSSCKFWInstance *fwInstance,
    163    CK_SLOT_ID slotID,
    164    CK_TOKEN_INFO_PTR pInfo);
    165 
    166 /*
    167 * NSSCKFWC_WaitForSlotEvent
    168 *
    169 */
    170 NSS_EXTERN CK_RV
    171 NSSCKFWC_WaitForSlotEvent(
    172    NSSCKFWInstance *fwInstance,
    173    CK_FLAGS flags,
    174    CK_SLOT_ID_PTR pSlot,
    175    CK_VOID_PTR pReserved);
    176 
    177 /*
    178 * NSSCKFWC_GetMechanismList
    179 *
    180 */
    181 NSS_EXTERN CK_RV
    182 NSSCKFWC_GetMechanismList(
    183    NSSCKFWInstance *fwInstance,
    184    CK_SLOT_ID slotID,
    185    CK_MECHANISM_TYPE_PTR pMechanismList,
    186    CK_ULONG_PTR pulCount);
    187 
    188 /*
    189 * NSSCKFWC_GetMechanismInfo
    190 *
    191 */
    192 NSS_EXTERN CK_RV
    193 NSSCKFWC_GetMechanismInfo(
    194    NSSCKFWInstance *fwInstance,
    195    CK_SLOT_ID slotID,
    196    CK_MECHANISM_TYPE type,
    197    CK_MECHANISM_INFO_PTR pInfo);
    198 
    199 /*
    200 * NSSCKFWC_InitToken
    201 *
    202 */
    203 NSS_EXTERN CK_RV
    204 NSSCKFWC_InitToken(
    205    NSSCKFWInstance *fwInstance,
    206    CK_SLOT_ID slotID,
    207    CK_CHAR_PTR pPin,
    208    CK_ULONG ulPinLen,
    209    CK_CHAR_PTR pLabel);
    210 
    211 /*
    212 * NSSCKFWC_InitPIN
    213 *
    214 */
    215 NSS_EXTERN CK_RV
    216 NSSCKFWC_InitPIN(
    217    NSSCKFWInstance *fwInstance,
    218    CK_SESSION_HANDLE hSession,
    219    CK_CHAR_PTR pPin,
    220    CK_ULONG ulPinLen);
    221 
    222 /*
    223 * NSSCKFWC_SetPIN
    224 *
    225 */
    226 NSS_EXTERN CK_RV
    227 NSSCKFWC_SetPIN(
    228    NSSCKFWInstance *fwInstance,
    229    CK_SESSION_HANDLE hSession,
    230    CK_CHAR_PTR pOldPin,
    231    CK_ULONG ulOldLen,
    232    CK_CHAR_PTR pNewPin,
    233    CK_ULONG ulNewLen);
    234 
    235 /*
    236 * NSSCKFWC_OpenSession
    237 *
    238 */
    239 NSS_EXTERN CK_RV
    240 NSSCKFWC_OpenSession(
    241    NSSCKFWInstance *fwInstance,
    242    CK_SLOT_ID slotID,
    243    CK_FLAGS flags,
    244    CK_VOID_PTR pApplication,
    245    CK_NOTIFY Notify,
    246    CK_SESSION_HANDLE_PTR phSession);
    247 
    248 /*
    249 * NSSCKFWC_CloseSession
    250 *
    251 */
    252 NSS_EXTERN CK_RV
    253 NSSCKFWC_CloseSession(
    254    NSSCKFWInstance *fwInstance,
    255    CK_SESSION_HANDLE hSession);
    256 
    257 /*
    258 * NSSCKFWC_CloseAllSessions
    259 *
    260 */
    261 NSS_EXTERN CK_RV
    262 NSSCKFWC_CloseAllSessions(
    263    NSSCKFWInstance *fwInstance,
    264    CK_SLOT_ID slotID);
    265 
    266 /*
    267 * NSSCKFWC_GetSessionInfo
    268 *
    269 */
    270 NSS_EXTERN CK_RV
    271 NSSCKFWC_GetSessionInfo(
    272    NSSCKFWInstance *fwInstance,
    273    CK_SESSION_HANDLE hSession,
    274    CK_SESSION_INFO_PTR pInfo);
    275 
    276 /*
    277 * NSSCKFWC_GetOperationState
    278 *
    279 */
    280 NSS_EXTERN CK_RV
    281 NSSCKFWC_GetOperationState(
    282    NSSCKFWInstance *fwInstance,
    283    CK_SESSION_HANDLE hSession,
    284    CK_BYTE_PTR pOperationState,
    285    CK_ULONG_PTR pulOperationStateLen);
    286 
    287 /*
    288 * NSSCKFWC_SetOperationState
    289 *
    290 */
    291 NSS_EXTERN CK_RV
    292 NSSCKFWC_SetOperationState(
    293    NSSCKFWInstance *fwInstance,
    294    CK_SESSION_HANDLE hSession,
    295    CK_BYTE_PTR pOperationState,
    296    CK_ULONG ulOperationStateLen,
    297    CK_OBJECT_HANDLE hEncryptionKey,
    298    CK_OBJECT_HANDLE hAuthenticationKey);
    299 
    300 /*
    301 * NSSCKFWC_Login
    302 *
    303 */
    304 NSS_EXTERN CK_RV
    305 NSSCKFWC_Login(
    306    NSSCKFWInstance *fwInstance,
    307    CK_SESSION_HANDLE hSession,
    308    CK_USER_TYPE userType,
    309    CK_CHAR_PTR pPin,
    310    CK_ULONG ulPinLen);
    311 
    312 /*
    313 * NSSCKFWC_Logout
    314 *
    315 */
    316 NSS_EXTERN CK_RV
    317 NSSCKFWC_Logout(
    318    NSSCKFWInstance *fwInstance,
    319    CK_SESSION_HANDLE hSession);
    320 
    321 /*
    322 * NSSCKFWC_CreateObject
    323 *
    324 */
    325 NSS_EXTERN CK_RV
    326 NSSCKFWC_CreateObject(
    327    NSSCKFWInstance *fwInstance,
    328    CK_SESSION_HANDLE hSession,
    329    CK_ATTRIBUTE_PTR pTemplate,
    330    CK_ULONG ulCount,
    331    CK_OBJECT_HANDLE_PTR phObject);
    332 
    333 /*
    334 * NSSCKFWC_CopyObject
    335 *
    336 */
    337 NSS_EXTERN CK_RV
    338 NSSCKFWC_CopyObject(
    339    NSSCKFWInstance *fwInstance,
    340    CK_SESSION_HANDLE hSession,
    341    CK_OBJECT_HANDLE hObject,
    342    CK_ATTRIBUTE_PTR pTemplate,
    343    CK_ULONG ulCount,
    344    CK_OBJECT_HANDLE_PTR phNewObject);
    345 
    346 /*
    347 * NSSCKFWC_DestroyObject
    348 *
    349 */
    350 NSS_EXTERN CK_RV
    351 NSSCKFWC_DestroyObject(
    352    NSSCKFWInstance *fwInstance,
    353    CK_SESSION_HANDLE hSession,
    354    CK_OBJECT_HANDLE hObject);
    355 
    356 /*
    357 * NSSCKFWC_GetObjectSize
    358 *
    359 */
    360 NSS_EXTERN CK_RV
    361 NSSCKFWC_GetObjectSize(
    362    NSSCKFWInstance *fwInstance,
    363    CK_SESSION_HANDLE hSession,
    364    CK_OBJECT_HANDLE hObject,
    365    CK_ULONG_PTR pulSize);
    366 
    367 /*
    368 * NSSCKFWC_GetAttributeValue
    369 *
    370 */
    371 NSS_EXTERN CK_RV
    372 NSSCKFWC_GetAttributeValue(
    373    NSSCKFWInstance *fwInstance,
    374    CK_SESSION_HANDLE hSession,
    375    CK_OBJECT_HANDLE hObject,
    376    CK_ATTRIBUTE_PTR pTemplate,
    377    CK_ULONG ulCount);
    378 
    379 /*
    380 * NSSCKFWC_SetAttributeValue
    381 *
    382 */
    383 NSS_EXTERN CK_RV
    384 NSSCKFWC_SetAttributeValue(
    385    NSSCKFWInstance *fwInstance,
    386    CK_SESSION_HANDLE hSession,
    387    CK_OBJECT_HANDLE hObject,
    388    CK_ATTRIBUTE_PTR pTemplate,
    389    CK_ULONG ulCount);
    390 
    391 /*
    392 * NSSCKFWC_FindObjectsInit
    393 *
    394 */
    395 NSS_EXTERN CK_RV
    396 NSSCKFWC_FindObjectsInit(
    397    NSSCKFWInstance *fwInstance,
    398    CK_SESSION_HANDLE hSession,
    399    CK_ATTRIBUTE_PTR pTemplate,
    400    CK_ULONG ulCount);
    401 
    402 /*
    403 * NSSCKFWC_FindObjects
    404 *
    405 */
    406 NSS_EXTERN CK_RV
    407 NSSCKFWC_FindObjects(
    408    NSSCKFWInstance *fwInstance,
    409    CK_SESSION_HANDLE hSession,
    410    CK_OBJECT_HANDLE_PTR phObject,
    411    CK_ULONG ulMaxObjectCount,
    412    CK_ULONG_PTR pulObjectCount);
    413 
    414 /*
    415 * NSSCKFWC_FindObjectsFinal
    416 *
    417 */
    418 NSS_EXTERN CK_RV
    419 NSSCKFWC_FindObjectsFinal(
    420    NSSCKFWInstance *fwInstance,
    421    CK_SESSION_HANDLE hSession);
    422 
    423 /*
    424 * NSSCKFWC_EncryptInit
    425 *
    426 */
    427 NSS_EXTERN CK_RV
    428 NSSCKFWC_EncryptInit(
    429    NSSCKFWInstance *fwInstance,
    430    CK_SESSION_HANDLE hSession,
    431    CK_MECHANISM_PTR pMechanism,
    432    CK_OBJECT_HANDLE hKey);
    433 
    434 /*
    435 * NSSCKFWC_Encrypt
    436 *
    437 */
    438 NSS_EXTERN CK_RV
    439 NSSCKFWC_Encrypt(
    440    NSSCKFWInstance *fwInstance,
    441    CK_SESSION_HANDLE hSession,
    442    CK_BYTE_PTR pData,
    443    CK_ULONG ulDataLen,
    444    CK_BYTE_PTR pEncryptedData,
    445    CK_ULONG_PTR pulEncryptedDataLen);
    446 
    447 /*
    448 * NSSCKFWC_EncryptUpdate
    449 *
    450 */
    451 NSS_EXTERN CK_RV
    452 NSSCKFWC_EncryptUpdate(
    453    NSSCKFWInstance *fwInstance,
    454    CK_SESSION_HANDLE hSession,
    455    CK_BYTE_PTR pPart,
    456    CK_ULONG ulPartLen,
    457    CK_BYTE_PTR pEncryptedPart,
    458    CK_ULONG_PTR pulEncryptedPartLen);
    459 
    460 /*
    461 * NSSCKFWC_EncryptFinal
    462 *
    463 */
    464 NSS_EXTERN CK_RV
    465 NSSCKFWC_EncryptFinal(
    466    NSSCKFWInstance *fwInstance,
    467    CK_SESSION_HANDLE hSession,
    468    CK_BYTE_PTR pLastEncryptedPart,
    469    CK_ULONG_PTR pulLastEncryptedPartLen);
    470 
    471 /*
    472 * NSSCKFWC_DecryptInit
    473 *
    474 */
    475 NSS_EXTERN CK_RV
    476 NSSCKFWC_DecryptInit(
    477    NSSCKFWInstance *fwInstance,
    478    CK_SESSION_HANDLE hSession,
    479    CK_MECHANISM_PTR pMechanism,
    480    CK_OBJECT_HANDLE hKey);
    481 
    482 /*
    483 * NSSCKFWC_Decrypt
    484 *
    485 */
    486 NSS_EXTERN CK_RV
    487 NSSCKFWC_Decrypt(
    488    NSSCKFWInstance *fwInstance,
    489    CK_SESSION_HANDLE hSession,
    490    CK_BYTE_PTR pEncryptedData,
    491    CK_ULONG ulEncryptedDataLen,
    492    CK_BYTE_PTR pData,
    493    CK_ULONG_PTR pulDataLen);
    494 
    495 /*
    496 * NSSCKFWC_DecryptUpdate
    497 *
    498 */
    499 NSS_EXTERN CK_RV
    500 NSSCKFWC_DecryptUpdate(
    501    NSSCKFWInstance *fwInstance,
    502    CK_SESSION_HANDLE hSession,
    503    CK_BYTE_PTR pEncryptedPart,
    504    CK_ULONG ulEncryptedPartLen,
    505    CK_BYTE_PTR pPart,
    506    CK_ULONG_PTR pulPartLen);
    507 
    508 /*
    509 * NSSCKFWC_DecryptFinal
    510 *
    511 */
    512 NSS_EXTERN CK_RV
    513 NSSCKFWC_DecryptFinal(
    514    NSSCKFWInstance *fwInstance,
    515    CK_SESSION_HANDLE hSession,
    516    CK_BYTE_PTR pLastPart,
    517    CK_ULONG_PTR pulLastPartLen);
    518 
    519 /*
    520 * NSSCKFWC_DigestInit
    521 *
    522 */
    523 NSS_EXTERN CK_RV
    524 NSSCKFWC_DigestInit(
    525    NSSCKFWInstance *fwInstance,
    526    CK_SESSION_HANDLE hSession,
    527    CK_MECHANISM_PTR pMechanism);
    528 
    529 /*
    530 * NSSCKFWC_Digest
    531 *
    532 */
    533 NSS_EXTERN CK_RV
    534 NSSCKFWC_Digest(
    535    NSSCKFWInstance *fwInstance,
    536    CK_SESSION_HANDLE hSession,
    537    CK_BYTE_PTR pData,
    538    CK_ULONG ulDataLen,
    539    CK_BYTE_PTR pDigest,
    540    CK_ULONG_PTR pulDigestLen);
    541 
    542 /*
    543 * NSSCKFWC_DigestUpdate
    544 *
    545 */
    546 NSS_EXTERN CK_RV
    547 NSSCKFWC_DigestUpdate(
    548    NSSCKFWInstance *fwInstance,
    549    CK_SESSION_HANDLE hSession,
    550    CK_BYTE_PTR pData,
    551    CK_ULONG ulDataLen);
    552 
    553 /*
    554 * NSSCKFWC_DigestKey
    555 *
    556 */
    557 NSS_EXTERN CK_RV
    558 NSSCKFWC_DigestKey(
    559    NSSCKFWInstance *fwInstance,
    560    CK_SESSION_HANDLE hSession,
    561    CK_OBJECT_HANDLE hKey);
    562 
    563 /*
    564 * NSSCKFWC_DigestFinal
    565 *
    566 */
    567 NSS_EXTERN CK_RV
    568 NSSCKFWC_DigestFinal(
    569    NSSCKFWInstance *fwInstance,
    570    CK_SESSION_HANDLE hSession,
    571    CK_BYTE_PTR pDigest,
    572    CK_ULONG_PTR pulDigestLen);
    573 
    574 /*
    575 * NSSCKFWC_SignInit
    576 *
    577 */
    578 NSS_EXTERN CK_RV
    579 NSSCKFWC_SignInit(
    580    NSSCKFWInstance *fwInstance,
    581    CK_SESSION_HANDLE hSession,
    582    CK_MECHANISM_PTR pMechanism,
    583    CK_OBJECT_HANDLE hKey);
    584 
    585 /*
    586 * NSSCKFWC_Sign
    587 *
    588 */
    589 NSS_EXTERN CK_RV
    590 NSSCKFWC_Sign(
    591    NSSCKFWInstance *fwInstance,
    592    CK_SESSION_HANDLE hSession,
    593    CK_BYTE_PTR pData,
    594    CK_ULONG ulDataLen,
    595    CK_BYTE_PTR pSignature,
    596    CK_ULONG_PTR pulSignatureLen);
    597 
    598 /*
    599 * NSSCKFWC_SignUpdate
    600 *
    601 */
    602 NSS_EXTERN CK_RV
    603 NSSCKFWC_SignUpdate(
    604    NSSCKFWInstance *fwInstance,
    605    CK_SESSION_HANDLE hSession,
    606    CK_BYTE_PTR pPart,
    607    CK_ULONG ulPartLen);
    608 
    609 /*
    610 * NSSCKFWC_SignFinal
    611 *
    612 */
    613 NSS_EXTERN CK_RV
    614 NSSCKFWC_SignFinal(
    615    NSSCKFWInstance *fwInstance,
    616    CK_SESSION_HANDLE hSession,
    617    CK_BYTE_PTR pSignature,
    618    CK_ULONG_PTR pulSignatureLen);
    619 
    620 /*
    621 * NSSCKFWC_SignRecoverInit
    622 *
    623 */
    624 NSS_EXTERN CK_RV
    625 NSSCKFWC_SignRecoverInit(
    626    NSSCKFWInstance *fwInstance,
    627    CK_SESSION_HANDLE hSession,
    628    CK_MECHANISM_PTR pMechanism,
    629    CK_OBJECT_HANDLE hKey);
    630 
    631 /*
    632 * NSSCKFWC_SignRecover
    633 *
    634 */
    635 NSS_EXTERN CK_RV
    636 NSSCKFWC_SignRecover(
    637    NSSCKFWInstance *fwInstance,
    638    CK_SESSION_HANDLE hSession,
    639    CK_BYTE_PTR pData,
    640    CK_ULONG ulDataLen,
    641    CK_BYTE_PTR pSignature,
    642    CK_ULONG_PTR pulSignatureLen);
    643 
    644 /*
    645 * NSSCKFWC_VerifyInit
    646 *
    647 */
    648 NSS_EXTERN CK_RV
    649 NSSCKFWC_VerifyInit(
    650    NSSCKFWInstance *fwInstance,
    651    CK_SESSION_HANDLE hSession,
    652    CK_MECHANISM_PTR pMechanism,
    653    CK_OBJECT_HANDLE hKey);
    654 
    655 /*
    656 * NSSCKFWC_Verify
    657 *
    658 */
    659 NSS_EXTERN CK_RV
    660 NSSCKFWC_Verify(
    661    NSSCKFWInstance *fwInstance,
    662    CK_SESSION_HANDLE hSession,
    663    CK_BYTE_PTR pData,
    664    CK_ULONG ulDataLen,
    665    CK_BYTE_PTR pSignature,
    666    CK_ULONG ulSignatureLen);
    667 
    668 /*
    669 * NSSCKFWC_VerifyUpdate
    670 *
    671 */
    672 NSS_EXTERN CK_RV
    673 NSSCKFWC_VerifyUpdate(
    674    NSSCKFWInstance *fwInstance,
    675    CK_SESSION_HANDLE hSession,
    676    CK_BYTE_PTR pPart,
    677    CK_ULONG ulPartLen);
    678 
    679 /*
    680 * NSSCKFWC_VerifyFinal
    681 *
    682 */
    683 NSS_EXTERN CK_RV
    684 NSSCKFWC_VerifyFinal(
    685    NSSCKFWInstance *fwInstance,
    686    CK_SESSION_HANDLE hSession,
    687    CK_BYTE_PTR pSignature,
    688    CK_ULONG ulSignatureLen);
    689 
    690 /*
    691 * NSSCKFWC_VerifyRecoverInit
    692 *
    693 */
    694 NSS_EXTERN CK_RV
    695 NSSCKFWC_VerifyRecoverInit(
    696    NSSCKFWInstance *fwInstance,
    697    CK_SESSION_HANDLE hSession,
    698    CK_MECHANISM_PTR pMechanism,
    699    CK_OBJECT_HANDLE hKey);
    700 
    701 /*
    702 * NSSCKFWC_VerifyRecover
    703 *
    704 */
    705 NSS_EXTERN CK_RV
    706 NSSCKFWC_VerifyRecover(
    707    NSSCKFWInstance *fwInstance,
    708    CK_SESSION_HANDLE hSession,
    709    CK_BYTE_PTR pSignature,
    710    CK_ULONG ulSignatureLen,
    711    CK_BYTE_PTR pData,
    712    CK_ULONG_PTR pulDataLen);
    713 
    714 /*
    715 * NSSCKFWC_DigestEncryptUpdate
    716 *
    717 */
    718 NSS_EXTERN CK_RV
    719 NSSCKFWC_DigestEncryptUpdate(
    720    NSSCKFWInstance *fwInstance,
    721    CK_SESSION_HANDLE hSession,
    722    CK_BYTE_PTR pPart,
    723    CK_ULONG ulPartLen,
    724    CK_BYTE_PTR pEncryptedPart,
    725    CK_ULONG_PTR pulEncryptedPartLen);
    726 
    727 /*
    728 * NSSCKFWC_DecryptDigestUpdate
    729 *
    730 */
    731 NSS_EXTERN CK_RV
    732 NSSCKFWC_DecryptDigestUpdate(
    733    NSSCKFWInstance *fwInstance,
    734    CK_SESSION_HANDLE hSession,
    735    CK_BYTE_PTR pEncryptedPart,
    736    CK_ULONG ulEncryptedPartLen,
    737    CK_BYTE_PTR pPart,
    738    CK_ULONG_PTR pulPartLen);
    739 
    740 /*
    741 * NSSCKFWC_SignEncryptUpdate
    742 *
    743 */
    744 NSS_EXTERN CK_RV
    745 NSSCKFWC_SignEncryptUpdate(
    746    NSSCKFWInstance *fwInstance,
    747    CK_SESSION_HANDLE hSession,
    748    CK_BYTE_PTR pPart,
    749    CK_ULONG ulPartLen,
    750    CK_BYTE_PTR pEncryptedPart,
    751    CK_ULONG_PTR pulEncryptedPartLen);
    752 
    753 /*
    754 * NSSCKFWC_DecryptVerifyUpdate
    755 *
    756 */
    757 NSS_EXTERN CK_RV
    758 NSSCKFWC_DecryptVerifyUpdate(
    759    NSSCKFWInstance *fwInstance,
    760    CK_SESSION_HANDLE hSession,
    761    CK_BYTE_PTR pEncryptedPart,
    762    CK_ULONG ulEncryptedPartLen,
    763    CK_BYTE_PTR pPart,
    764    CK_ULONG_PTR pulPartLen);
    765 
    766 /*
    767 * NSSCKFWC_GenerateKey
    768 *
    769 */
    770 NSS_EXTERN CK_RV
    771 NSSCKFWC_GenerateKey(
    772    NSSCKFWInstance *fwInstance,
    773    CK_SESSION_HANDLE hSession,
    774    CK_MECHANISM_PTR pMechanism,
    775    CK_ATTRIBUTE_PTR pTemplate,
    776    CK_ULONG ulCount,
    777    CK_OBJECT_HANDLE_PTR phKey);
    778 
    779 /*
    780 * NSSCKFWC_GenerateKeyPair
    781 *
    782 */
    783 NSS_EXTERN CK_RV
    784 NSSCKFWC_GenerateKeyPair(
    785    NSSCKFWInstance *fwInstance,
    786    CK_SESSION_HANDLE hSession,
    787    CK_MECHANISM_PTR pMechanism,
    788    CK_ATTRIBUTE_PTR pPublicKeyTemplate,
    789    CK_ULONG ulPublicKeyAttributeCount,
    790    CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
    791    CK_ULONG ulPrivateKeyAttributeCount,
    792    CK_OBJECT_HANDLE_PTR phPublicKey,
    793    CK_OBJECT_HANDLE_PTR phPrivateKey);
    794 
    795 /*
    796 * NSSCKFWC_WrapKey
    797 *
    798 */
    799 NSS_EXTERN CK_RV
    800 NSSCKFWC_WrapKey(
    801    NSSCKFWInstance *fwInstance,
    802    CK_SESSION_HANDLE hSession,
    803    CK_MECHANISM_PTR pMechanism,
    804    CK_OBJECT_HANDLE hWrappingKey,
    805    CK_OBJECT_HANDLE hKey,
    806    CK_BYTE_PTR pWrappedKey,
    807    CK_ULONG_PTR pulWrappedKeyLen);
    808 
    809 /*
    810 * NSSCKFWC_UnwrapKey
    811 *
    812 */
    813 NSS_EXTERN CK_RV
    814 NSSCKFWC_UnwrapKey(
    815    NSSCKFWInstance *fwInstance,
    816    CK_SESSION_HANDLE hSession,
    817    CK_MECHANISM_PTR pMechanism,
    818    CK_OBJECT_HANDLE hUnwrappingKey,
    819    CK_BYTE_PTR pWrappedKey,
    820    CK_ULONG ulWrappedKeyLen,
    821    CK_ATTRIBUTE_PTR pTemplate,
    822    CK_ULONG ulAttributeCount,
    823    CK_OBJECT_HANDLE_PTR phKey);
    824 
    825 /*
    826 * NSSCKFWC_DeriveKey
    827 *
    828 */
    829 NSS_EXTERN CK_RV
    830 NSSCKFWC_DeriveKey(
    831    NSSCKFWInstance *fwInstance,
    832    CK_SESSION_HANDLE hSession,
    833    CK_MECHANISM_PTR pMechanism,
    834    CK_OBJECT_HANDLE hBaseKey,
    835    CK_ATTRIBUTE_PTR pTemplate,
    836    CK_ULONG ulAttributeCount,
    837    CK_OBJECT_HANDLE_PTR phKey);
    838 
    839 /*
    840 * NSSCKFWC_SeedRandom
    841 *
    842 */
    843 NSS_EXTERN CK_RV
    844 NSSCKFWC_SeedRandom(
    845    NSSCKFWInstance *fwInstance,
    846    CK_SESSION_HANDLE hSession,
    847    CK_BYTE_PTR pSeed,
    848    CK_ULONG ulSeedLen);
    849 
    850 /*
    851 * NSSCKFWC_GenerateRandom
    852 *
    853 */
    854 NSS_EXTERN CK_RV
    855 NSSCKFWC_GenerateRandom(
    856    NSSCKFWInstance *fwInstance,
    857    CK_SESSION_HANDLE hSession,
    858    CK_BYTE_PTR pRandomData,
    859    CK_ULONG ulRandomLen);
    860 
    861 /*
    862 * NSSCKFWC_GetFunctionStatus
    863 *
    864 */
    865 NSS_EXTERN CK_RV
    866 NSSCKFWC_GetFunctionStatus(
    867    NSSCKFWInstance *fwInstance,
    868    CK_SESSION_HANDLE hSession);
    869 
    870 /*
    871 * NSSCKFWC_CancelFunction
    872 *
    873 */
    874 NSS_EXTERN CK_RV
    875 NSSCKFWC_CancelFunction(
    876    NSSCKFWInstance *fwInstance,
    877    CK_SESSION_HANDLE hSession);
    878 
    879 #endif /* NSSCKFWC_H */