nssckfwc.h 17 KB

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