ckfw.h 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050
  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 CKFW_H
  5. #define CKFW_H
  6. /*
  7. * ckfw.h
  8. *
  9. * This file prototypes the private calls of the NSS Cryptoki Framework.
  10. */
  11. #ifndef NSSBASET_H
  12. #include "nssbaset.h"
  13. #endif /* NSSBASET_H */
  14. #ifndef NSSCKT_H
  15. #include "nssckt.h"
  16. #endif /* NSSCKT_H */
  17. #ifndef NSSCKFWT_H
  18. #include "nssckfwt.h"
  19. #endif /* NSSCKFWT_H */
  20. #ifndef NSSCKMDT_H
  21. #include "nssckmdt.h"
  22. #endif /* NSSCKMDT_H */
  23. /*
  24. * NSSCKFWInstance
  25. *
  26. * -- create/destroy --
  27. * nssCKFWInstance_Create
  28. * nssCKFWInstance_Destroy
  29. *
  30. * -- implement public accessors --
  31. * nssCKFWInstance_GetMDInstance
  32. * nssCKFWInstance_GetArena
  33. * nssCKFWInstance_MayCreatePthreads
  34. * nssCKFWInstance_CreateMutex
  35. * nssCKFWInstance_GetConfigurationData
  36. * nssCKFWInstance_GetInitArgs
  37. *
  38. * -- private accessors --
  39. * nssCKFWInstance_CreateSessionHandle
  40. * nssCKFWInstance_ResolveSessionHandle
  41. * nssCKFWInstance_DestroySessionHandle
  42. * nssCKFWInstance_FindSessionHandle
  43. * nssCKFWInstance_CreateObjectHandle
  44. * nssCKFWInstance_ResolveObjectHandle
  45. * nssCKFWInstance_DestroyObjectHandle
  46. * nssCKFWInstance_FindObjectHandle
  47. *
  48. * -- module fronts --
  49. * nssCKFWInstance_GetNSlots
  50. * nssCKFWInstance_GetCryptokiVersion
  51. * nssCKFWInstance_GetManufacturerID
  52. * nssCKFWInstance_GetFlags
  53. * nssCKFWInstance_GetLibraryDescription
  54. * nssCKFWInstance_GetLibraryVersion
  55. * nssCKFWInstance_GetModuleHandlesSessionObjects
  56. * nssCKFWInstance_GetSlots
  57. * nssCKFWInstance_WaitForSlotEvent
  58. *
  59. * -- debugging versions only --
  60. * nssCKFWInstance_verifyPointer
  61. */
  62. /*
  63. * nssCKFWInstance_Create
  64. *
  65. */
  66. NSS_EXTERN NSSCKFWInstance *
  67. nssCKFWInstance_Create(
  68. CK_C_INITIALIZE_ARGS_PTR pInitArgs,
  69. CryptokiLockingState LockingState,
  70. NSSCKMDInstance *mdInstance,
  71. CK_RV *pError);
  72. /*
  73. * nssCKFWInstance_Destroy
  74. *
  75. */
  76. NSS_EXTERN CK_RV
  77. nssCKFWInstance_Destroy(
  78. NSSCKFWInstance *fwInstance);
  79. /*
  80. * nssCKFWInstance_GetMDInstance
  81. *
  82. */
  83. NSS_EXTERN NSSCKMDInstance *
  84. nssCKFWInstance_GetMDInstance(
  85. NSSCKFWInstance *fwInstance);
  86. /*
  87. * nssCKFWInstance_GetArena
  88. *
  89. */
  90. NSS_EXTERN NSSArena *
  91. nssCKFWInstance_GetArena(
  92. NSSCKFWInstance *fwInstance,
  93. CK_RV *pError);
  94. /*
  95. * nssCKFWInstance_MayCreatePthreads
  96. *
  97. */
  98. NSS_EXTERN CK_BBOOL
  99. nssCKFWInstance_MayCreatePthreads(
  100. NSSCKFWInstance *fwInstance);
  101. /*
  102. * nssCKFWInstance_CreateMutex
  103. *
  104. */
  105. NSS_EXTERN NSSCKFWMutex *
  106. nssCKFWInstance_CreateMutex(
  107. NSSCKFWInstance *fwInstance,
  108. NSSArena *arena,
  109. CK_RV *pError);
  110. /*
  111. * nssCKFWInstance_GetConfigurationData
  112. *
  113. */
  114. NSS_EXTERN NSSUTF8 *
  115. nssCKFWInstance_GetConfigurationData(
  116. NSSCKFWInstance *fwInstance);
  117. /*
  118. * nssCKFWInstance_GetInitArgs
  119. *
  120. */
  121. NSS_EXTERN CK_C_INITIALIZE_ARGS_PTR
  122. nssCKFWInstance_GetInitArgs(
  123. NSSCKFWInstance *fwInstance);
  124. /*
  125. * nssCKFWInstance_CreateSessionHandle
  126. *
  127. */
  128. NSS_EXTERN CK_SESSION_HANDLE
  129. nssCKFWInstance_CreateSessionHandle(
  130. NSSCKFWInstance *fwInstance,
  131. NSSCKFWSession *fwSession,
  132. CK_RV *pError);
  133. /*
  134. * nssCKFWInstance_ResolveSessionHandle
  135. *
  136. */
  137. NSS_EXTERN NSSCKFWSession *
  138. nssCKFWInstance_ResolveSessionHandle(
  139. NSSCKFWInstance *fwInstance,
  140. CK_SESSION_HANDLE hSession);
  141. /*
  142. * nssCKFWInstance_DestroySessionHandle
  143. *
  144. */
  145. NSS_EXTERN void
  146. nssCKFWInstance_DestroySessionHandle(
  147. NSSCKFWInstance *fwInstance,
  148. CK_SESSION_HANDLE hSession);
  149. /*
  150. * nssCKFWInstance_FindSessionHandle
  151. *
  152. */
  153. NSS_EXTERN CK_SESSION_HANDLE
  154. nssCKFWInstance_FindSessionHandle(
  155. NSSCKFWInstance *fwInstance,
  156. NSSCKFWSession *fwSession);
  157. /*
  158. * nssCKFWInstance_CreateObjectHandle
  159. *
  160. */
  161. NSS_EXTERN CK_OBJECT_HANDLE
  162. nssCKFWInstance_CreateObjectHandle(
  163. NSSCKFWInstance *fwInstance,
  164. NSSCKFWObject *fwObject,
  165. CK_RV *pError);
  166. /*
  167. * nssCKFWInstance_ResolveObjectHandle
  168. *
  169. */
  170. NSS_EXTERN NSSCKFWObject *
  171. nssCKFWInstance_ResolveObjectHandle(
  172. NSSCKFWInstance *fwInstance,
  173. CK_OBJECT_HANDLE hObject);
  174. /*
  175. * nssCKFWInstance_ReassignObjectHandle
  176. *
  177. */
  178. NSS_EXTERN CK_RV
  179. nssCKFWInstance_ReassignObjectHandle(
  180. NSSCKFWInstance *fwInstance,
  181. CK_OBJECT_HANDLE hObject,
  182. NSSCKFWObject *fwObject);
  183. /*
  184. * nssCKFWInstance_DestroyObjectHandle
  185. *
  186. */
  187. NSS_EXTERN void
  188. nssCKFWInstance_DestroyObjectHandle(
  189. NSSCKFWInstance *fwInstance,
  190. CK_OBJECT_HANDLE hObject);
  191. /*
  192. * nssCKFWInstance_FindObjectHandle
  193. *
  194. */
  195. NSS_EXTERN CK_OBJECT_HANDLE
  196. nssCKFWInstance_FindObjectHandle(
  197. NSSCKFWInstance *fwInstance,
  198. NSSCKFWObject *fwObject);
  199. /*
  200. * nssCKFWInstance_GetNSlots
  201. *
  202. */
  203. NSS_EXTERN CK_ULONG
  204. nssCKFWInstance_GetNSlots(
  205. NSSCKFWInstance *fwInstance,
  206. CK_RV *pError);
  207. /*
  208. * nssCKFWInstance_GetCryptokiVersion
  209. *
  210. */
  211. NSS_EXTERN CK_VERSION
  212. nssCKFWInstance_GetCryptokiVersion(
  213. NSSCKFWInstance *fwInstance);
  214. /*
  215. * nssCKFWInstance_GetManufacturerID
  216. *
  217. */
  218. NSS_EXTERN CK_RV
  219. nssCKFWInstance_GetManufacturerID(
  220. NSSCKFWInstance *fwInstance,
  221. CK_CHAR manufacturerID[32]);
  222. /*
  223. * nssCKFWInstance_GetFlags
  224. *
  225. */
  226. NSS_EXTERN CK_ULONG
  227. nssCKFWInstance_GetFlags(
  228. NSSCKFWInstance *fwInstance);
  229. /*
  230. * nssCKFWInstance_GetLibraryDescription
  231. *
  232. */
  233. NSS_EXTERN CK_RV
  234. nssCKFWInstance_GetLibraryDescription(
  235. NSSCKFWInstance *fwInstance,
  236. CK_CHAR libraryDescription[32]);
  237. /*
  238. * nssCKFWInstance_GetLibraryVersion
  239. *
  240. */
  241. NSS_EXTERN CK_VERSION
  242. nssCKFWInstance_GetLibraryVersion(
  243. NSSCKFWInstance *fwInstance);
  244. /*
  245. * nssCKFWInstance_GetModuleHandlesSessionObjects
  246. *
  247. */
  248. NSS_EXTERN CK_BBOOL
  249. nssCKFWInstance_GetModuleHandlesSessionObjects(
  250. NSSCKFWInstance *fwInstance);
  251. /*
  252. * nssCKFWInstance_GetSlots
  253. *
  254. */
  255. NSS_EXTERN NSSCKFWSlot **
  256. nssCKFWInstance_GetSlots(
  257. NSSCKFWInstance *fwInstance,
  258. CK_RV *pError);
  259. /*
  260. * nssCKFWInstance_WaitForSlotEvent
  261. *
  262. */
  263. NSS_EXTERN NSSCKFWSlot *
  264. nssCKFWInstance_WaitForSlotEvent(
  265. NSSCKFWInstance *fwInstance,
  266. CK_BBOOL block,
  267. CK_RV *pError);
  268. /*
  269. * nssCKFWInstance_verifyPointer
  270. *
  271. */
  272. NSS_EXTERN CK_RV
  273. nssCKFWInstance_verifyPointer(
  274. const NSSCKFWInstance *fwInstance);
  275. /*
  276. * NSSCKFWSlot
  277. *
  278. * -- create/destroy --
  279. * nssCKFWSlot_Create
  280. * nssCKFWSlot_Destroy
  281. *
  282. * -- implement public accessors --
  283. * nssCKFWSlot_GetMDSlot
  284. * nssCKFWSlot_GetFWInstance
  285. * nssCKFWSlot_GetMDInstance
  286. *
  287. * -- private accessors --
  288. * nssCKFWSlot_GetSlotID
  289. *
  290. * -- module fronts --
  291. * nssCKFWSlot_GetSlotDescription
  292. * nssCKFWSlot_GetManufacturerID
  293. * nssCKFWSlot_GetTokenPresent
  294. * nssCKFWSlot_GetRemovableDevice
  295. * nssCKFWSlot_GetHardwareSlot
  296. * nssCKFWSlot_GetHardwareVersion
  297. * nssCKFWSlot_GetFirmwareVersion
  298. * nssCKFWSlot_GetToken
  299. */
  300. /*
  301. * nssCKFWSlot_Create
  302. *
  303. */
  304. NSS_EXTERN NSSCKFWSlot *
  305. nssCKFWSlot_Create(
  306. NSSCKFWInstance *fwInstance,
  307. NSSCKMDSlot *mdSlot,
  308. CK_SLOT_ID slotID,
  309. CK_RV *pError);
  310. /*
  311. * nssCKFWSlot_Destroy
  312. *
  313. */
  314. NSS_EXTERN CK_RV
  315. nssCKFWSlot_Destroy(
  316. NSSCKFWSlot *fwSlot);
  317. /*
  318. * nssCKFWSlot_GetMDSlot
  319. *
  320. */
  321. NSS_EXTERN NSSCKMDSlot *
  322. nssCKFWSlot_GetMDSlot(
  323. NSSCKFWSlot *fwSlot);
  324. /*
  325. * nssCKFWSlot_GetFWInstance
  326. *
  327. */
  328. NSS_EXTERN NSSCKFWInstance *
  329. nssCKFWSlot_GetFWInstance(
  330. NSSCKFWSlot *fwSlot);
  331. /*
  332. * nssCKFWSlot_GetMDInstance
  333. *
  334. */
  335. NSS_EXTERN NSSCKMDInstance *
  336. nssCKFWSlot_GetMDInstance(
  337. NSSCKFWSlot *fwSlot);
  338. /*
  339. * nssCKFWSlot_GetSlotID
  340. *
  341. */
  342. NSS_EXTERN CK_SLOT_ID
  343. nssCKFWSlot_GetSlotID(
  344. NSSCKFWSlot *fwSlot);
  345. /*
  346. * nssCKFWSlot_GetSlotDescription
  347. *
  348. */
  349. NSS_EXTERN CK_RV
  350. nssCKFWSlot_GetSlotDescription(
  351. NSSCKFWSlot *fwSlot,
  352. CK_CHAR slotDescription[64]);
  353. /*
  354. * nssCKFWSlot_GetManufacturerID
  355. *
  356. */
  357. NSS_EXTERN CK_RV
  358. nssCKFWSlot_GetManufacturerID(
  359. NSSCKFWSlot *fwSlot,
  360. CK_CHAR manufacturerID[32]);
  361. /*
  362. * nssCKFWSlot_GetTokenPresent
  363. *
  364. */
  365. NSS_EXTERN CK_BBOOL
  366. nssCKFWSlot_GetTokenPresent(
  367. NSSCKFWSlot *fwSlot);
  368. /*
  369. * nssCKFWSlot_GetRemovableDevice
  370. *
  371. */
  372. NSS_EXTERN CK_BBOOL
  373. nssCKFWSlot_GetRemovableDevice(
  374. NSSCKFWSlot *fwSlot);
  375. /*
  376. * nssCKFWSlot_GetHardwareSlot
  377. *
  378. */
  379. NSS_EXTERN CK_BBOOL
  380. nssCKFWSlot_GetHardwareSlot(
  381. NSSCKFWSlot *fwSlot);
  382. /*
  383. * nssCKFWSlot_GetHardwareVersion
  384. *
  385. */
  386. NSS_EXTERN CK_VERSION
  387. nssCKFWSlot_GetHardwareVersion(
  388. NSSCKFWSlot *fwSlot);
  389. /*
  390. * nssCKFWSlot_GetFirmwareVersion
  391. *
  392. */
  393. NSS_EXTERN CK_VERSION
  394. nssCKFWSlot_GetFirmwareVersion(
  395. NSSCKFWSlot *fwSlot);
  396. /*
  397. * nssCKFWSlot_GetToken
  398. *
  399. */
  400. NSS_EXTERN NSSCKFWToken *
  401. nssCKFWSlot_GetToken(
  402. NSSCKFWSlot *fwSlot,
  403. CK_RV *pError);
  404. /*
  405. * nssCKFWSlot_ClearToken
  406. *
  407. */
  408. NSS_EXTERN void
  409. nssCKFWSlot_ClearToken(
  410. NSSCKFWSlot *fwSlot);
  411. /*
  412. * NSSCKFWToken
  413. *
  414. * -- create/destroy --
  415. * nssCKFWToken_Create
  416. * nssCKFWToken_Destroy
  417. *
  418. * -- implement public accessors --
  419. * nssCKFWToken_GetMDToken
  420. * nssCKFWToken_GetFWSlot
  421. * nssCKFWToken_GetMDSlot
  422. * nssCKFWToken_GetSessionState
  423. *
  424. * -- private accessors --
  425. * nssCKFWToken_SetSessionState
  426. * nssCKFWToken_RemoveSession
  427. * nssCKFWToken_CloseAllSessions
  428. * nssCKFWToken_GetSessionCount
  429. * nssCKFWToken_GetRwSessionCount
  430. * nssCKFWToken_GetRoSessionCount
  431. * nssCKFWToken_GetSessionObjectHash
  432. * nssCKFWToken_GetMDObjectHash
  433. * nssCKFWToken_GetObjectHandleHash
  434. *
  435. * -- module fronts --
  436. * nssCKFWToken_InitToken
  437. * nssCKFWToken_GetLabel
  438. * nssCKFWToken_GetManufacturerID
  439. * nssCKFWToken_GetModel
  440. * nssCKFWToken_GetSerialNumber
  441. * nssCKFWToken_GetHasRNG
  442. * nssCKFWToken_GetIsWriteProtected
  443. * nssCKFWToken_GetLoginRequired
  444. * nssCKFWToken_GetUserPinInitialized
  445. * nssCKFWToken_GetRestoreKeyNotNeeded
  446. * nssCKFWToken_GetHasClockOnToken
  447. * nssCKFWToken_GetHasProtectedAuthenticationPath
  448. * nssCKFWToken_GetSupportsDualCryptoOperations
  449. * nssCKFWToken_GetMaxSessionCount
  450. * nssCKFWToken_GetMaxRwSessionCount
  451. * nssCKFWToken_GetMaxPinLen
  452. * nssCKFWToken_GetMinPinLen
  453. * nssCKFWToken_GetTotalPublicMemory
  454. * nssCKFWToken_GetFreePublicMemory
  455. * nssCKFWToken_GetTotalPrivateMemory
  456. * nssCKFWToken_GetFreePrivateMemory
  457. * nssCKFWToken_GetHardwareVersion
  458. * nssCKFWToken_GetFirmwareVersion
  459. * nssCKFWToken_GetUTCTime
  460. * nssCKFWToken_OpenSession
  461. * nssCKFWToken_GetMechanismCount
  462. * nssCKFWToken_GetMechanismTypes
  463. * nssCKFWToken_GetMechanism
  464. */
  465. /*
  466. * nssCKFWToken_Create
  467. *
  468. */
  469. NSS_EXTERN NSSCKFWToken *
  470. nssCKFWToken_Create(
  471. NSSCKFWSlot *fwSlot,
  472. NSSCKMDToken *mdToken,
  473. CK_RV *pError);
  474. /*
  475. * nssCKFWToken_Destroy
  476. *
  477. */
  478. NSS_EXTERN CK_RV
  479. nssCKFWToken_Destroy(
  480. NSSCKFWToken *fwToken);
  481. /*
  482. * nssCKFWToken_GetMDToken
  483. *
  484. */
  485. NSS_EXTERN NSSCKMDToken *
  486. nssCKFWToken_GetMDToken(
  487. NSSCKFWToken *fwToken);
  488. /*
  489. * nssCKFWToken_GetArena
  490. *
  491. */
  492. NSS_EXTERN NSSArena *
  493. nssCKFWToken_GetArena(
  494. NSSCKFWToken *fwToken,
  495. CK_RV *pError);
  496. /*
  497. * nssCKFWToken_GetFWSlot
  498. *
  499. */
  500. NSS_EXTERN NSSCKFWSlot *
  501. nssCKFWToken_GetFWSlot(
  502. NSSCKFWToken *fwToken);
  503. /*
  504. * nssCKFWToken_GetMDSlot
  505. *
  506. */
  507. NSS_EXTERN NSSCKMDSlot *
  508. nssCKFWToken_GetMDSlot(
  509. NSSCKFWToken *fwToken);
  510. /*
  511. * nssCKFWToken_GetSessionState
  512. *
  513. */
  514. NSS_EXTERN CK_STATE
  515. nssCKFWToken_GetSessionState(
  516. NSSCKFWToken *fwToken);
  517. /*
  518. * nssCKFWToken_InitToken
  519. *
  520. */
  521. NSS_EXTERN CK_RV
  522. nssCKFWToken_InitToken(
  523. NSSCKFWToken *fwToken,
  524. NSSItem *pin,
  525. NSSUTF8 *label);
  526. /*
  527. * nssCKFWToken_GetLabel
  528. *
  529. */
  530. NSS_EXTERN CK_RV
  531. nssCKFWToken_GetLabel(
  532. NSSCKFWToken *fwToken,
  533. CK_CHAR label[32]);
  534. /*
  535. * nssCKFWToken_GetManufacturerID
  536. *
  537. */
  538. NSS_EXTERN CK_RV
  539. nssCKFWToken_GetManufacturerID(
  540. NSSCKFWToken *fwToken,
  541. CK_CHAR manufacturerID[32]);
  542. /*
  543. * nssCKFWToken_GetModel
  544. *
  545. */
  546. NSS_EXTERN CK_RV
  547. nssCKFWToken_GetModel(
  548. NSSCKFWToken *fwToken,
  549. CK_CHAR model[16]);
  550. /*
  551. * nssCKFWToken_GetSerialNumber
  552. *
  553. */
  554. NSS_EXTERN CK_RV
  555. nssCKFWToken_GetSerialNumber(
  556. NSSCKFWToken *fwToken,
  557. CK_CHAR serialNumber[16]);
  558. /*
  559. * nssCKFWToken_GetHasRNG
  560. *
  561. */
  562. NSS_EXTERN CK_BBOOL
  563. nssCKFWToken_GetHasRNG(
  564. NSSCKFWToken *fwToken);
  565. /*
  566. * nssCKFWToken_GetIsWriteProtected
  567. *
  568. */
  569. NSS_EXTERN CK_BBOOL
  570. nssCKFWToken_GetIsWriteProtected(
  571. NSSCKFWToken *fwToken);
  572. /*
  573. * nssCKFWToken_GetLoginRequired
  574. *
  575. */
  576. NSS_EXTERN CK_BBOOL
  577. nssCKFWToken_GetLoginRequired(
  578. NSSCKFWToken *fwToken);
  579. /*
  580. * nssCKFWToken_GetUserPinInitialized
  581. *
  582. */
  583. NSS_EXTERN CK_BBOOL
  584. nssCKFWToken_GetUserPinInitialized(
  585. NSSCKFWToken *fwToken);
  586. /*
  587. * nssCKFWToken_GetRestoreKeyNotNeeded
  588. *
  589. */
  590. NSS_EXTERN CK_BBOOL
  591. nssCKFWToken_GetRestoreKeyNotNeeded(
  592. NSSCKFWToken *fwToken);
  593. /*
  594. * nssCKFWToken_GetHasClockOnToken
  595. *
  596. */
  597. NSS_EXTERN CK_BBOOL
  598. nssCKFWToken_GetHasClockOnToken(
  599. NSSCKFWToken *fwToken);
  600. /*
  601. * nssCKFWToken_GetHasProtectedAuthenticationPath
  602. *
  603. */
  604. NSS_EXTERN CK_BBOOL
  605. nssCKFWToken_GetHasProtectedAuthenticationPath(
  606. NSSCKFWToken *fwToken);
  607. /*
  608. * nssCKFWToken_GetSupportsDualCryptoOperations
  609. *
  610. */
  611. NSS_EXTERN CK_BBOOL
  612. nssCKFWToken_GetSupportsDualCryptoOperations(
  613. NSSCKFWToken *fwToken);
  614. /*
  615. * nssCKFWToken_GetMaxSessionCount
  616. *
  617. */
  618. NSS_EXTERN CK_ULONG
  619. nssCKFWToken_GetMaxSessionCount(
  620. NSSCKFWToken *fwToken);
  621. /*
  622. * nssCKFWToken_GetMaxRwSessionCount
  623. *
  624. */
  625. NSS_EXTERN CK_ULONG
  626. nssCKFWToken_GetMaxRwSessionCount(
  627. NSSCKFWToken *fwToken);
  628. /*
  629. * nssCKFWToken_GetMaxPinLen
  630. *
  631. */
  632. NSS_EXTERN CK_ULONG
  633. nssCKFWToken_GetMaxPinLen(
  634. NSSCKFWToken *fwToken);
  635. /*
  636. * nssCKFWToken_GetMinPinLen
  637. *
  638. */
  639. NSS_EXTERN CK_ULONG
  640. nssCKFWToken_GetMinPinLen(
  641. NSSCKFWToken *fwToken);
  642. /*
  643. * nssCKFWToken_GetTotalPublicMemory
  644. *
  645. */
  646. NSS_EXTERN CK_ULONG
  647. nssCKFWToken_GetTotalPublicMemory(
  648. NSSCKFWToken *fwToken);
  649. /*
  650. * nssCKFWToken_GetFreePublicMemory
  651. *
  652. */
  653. NSS_EXTERN CK_ULONG
  654. nssCKFWToken_GetFreePublicMemory(
  655. NSSCKFWToken *fwToken);
  656. /*
  657. * nssCKFWToken_GetTotalPrivateMemory
  658. *
  659. */
  660. NSS_EXTERN CK_ULONG
  661. nssCKFWToken_GetTotalPrivateMemory(
  662. NSSCKFWToken *fwToken);
  663. /*
  664. * nssCKFWToken_GetFreePrivateMemory
  665. *
  666. */
  667. NSS_EXTERN CK_ULONG
  668. nssCKFWToken_GetFreePrivateMemory(
  669. NSSCKFWToken *fwToken);
  670. /*
  671. * nssCKFWToken_GetHardwareVersion
  672. *
  673. */
  674. NSS_EXTERN CK_VERSION
  675. nssCKFWToken_GetHardwareVersion(
  676. NSSCKFWToken *fwToken);
  677. /*
  678. * nssCKFWToken_GetFirmwareVersion
  679. *
  680. */
  681. NSS_EXTERN CK_VERSION
  682. nssCKFWToken_GetFirmwareVersion(
  683. NSSCKFWToken *fwToken);
  684. /*
  685. * nssCKFWToken_GetUTCTime
  686. *
  687. */
  688. NSS_EXTERN CK_RV
  689. nssCKFWToken_GetUTCTime(
  690. NSSCKFWToken *fwToken,
  691. CK_CHAR utcTime[16]);
  692. /*
  693. * nssCKFWToken_OpenSession
  694. *
  695. */
  696. NSS_EXTERN NSSCKFWSession *
  697. nssCKFWToken_OpenSession(
  698. NSSCKFWToken *fwToken,
  699. CK_BBOOL rw,
  700. CK_VOID_PTR pApplication,
  701. CK_NOTIFY Notify,
  702. CK_RV *pError);
  703. /*
  704. * nssCKFWToken_GetMechanismCount
  705. *
  706. */
  707. NSS_EXTERN CK_ULONG
  708. nssCKFWToken_GetMechanismCount(
  709. NSSCKFWToken *fwToken);
  710. /*
  711. * nssCKFWToken_GetMechanismTypes
  712. *
  713. */
  714. NSS_EXTERN CK_RV
  715. nssCKFWToken_GetMechanismTypes(
  716. NSSCKFWToken *fwToken,
  717. CK_MECHANISM_TYPE types[]);
  718. /*
  719. * nssCKFWToken_GetMechanism
  720. *
  721. */
  722. NSS_EXTERN NSSCKFWMechanism *
  723. nssCKFWToken_GetMechanism(
  724. NSSCKFWToken *fwToken,
  725. CK_MECHANISM_TYPE which,
  726. CK_RV *pError);
  727. /*
  728. * nssCKFWToken_SetSessionState
  729. *
  730. */
  731. NSS_EXTERN CK_RV
  732. nssCKFWToken_SetSessionState(
  733. NSSCKFWToken *fwToken,
  734. CK_STATE newState);
  735. /*
  736. * nssCKFWToken_RemoveSession
  737. *
  738. */
  739. NSS_EXTERN CK_RV
  740. nssCKFWToken_RemoveSession(
  741. NSSCKFWToken *fwToken,
  742. NSSCKFWSession *fwSession);
  743. /*
  744. * nssCKFWToken_CloseAllSessions
  745. *
  746. */
  747. NSS_EXTERN CK_RV
  748. nssCKFWToken_CloseAllSessions(
  749. NSSCKFWToken *fwToken);
  750. /*
  751. * nssCKFWToken_GetSessionCount
  752. *
  753. */
  754. NSS_EXTERN CK_ULONG
  755. nssCKFWToken_GetSessionCount(
  756. NSSCKFWToken *fwToken);
  757. /*
  758. * nssCKFWToken_GetRwSessionCount
  759. *
  760. */
  761. NSS_EXTERN CK_ULONG
  762. nssCKFWToken_GetRwSessionCount(
  763. NSSCKFWToken *fwToken);
  764. /*
  765. * nssCKFWToken_GetRoSessionCount
  766. *
  767. */
  768. NSS_EXTERN CK_ULONG
  769. nssCKFWToken_GetRoSessionCount(
  770. NSSCKFWToken *fwToken);
  771. /*
  772. * nssCKFWToken_GetSessionObjectHash
  773. *
  774. */
  775. NSS_EXTERN nssCKFWHash *
  776. nssCKFWToken_GetSessionObjectHash(
  777. NSSCKFWToken *fwToken);
  778. /*
  779. * nssCKFWToken_GetMDObjectHash
  780. *
  781. */
  782. NSS_EXTERN nssCKFWHash *
  783. nssCKFWToken_GetMDObjectHash(
  784. NSSCKFWToken *fwToken);
  785. /*
  786. * nssCKFWToken_GetObjectHandleHash
  787. *
  788. */
  789. NSS_EXTERN nssCKFWHash *
  790. nssCKFWToken_GetObjectHandleHash(
  791. NSSCKFWToken *fwToken);
  792. /*
  793. * NSSCKFWMechanism
  794. *
  795. * -- create/destroy --
  796. * nssCKFWMechanism_Create
  797. * nssCKFWMechanism_Destroy
  798. *
  799. * -- implement public accessors --
  800. * nssCKFWMechanism_GetMDMechanism
  801. *
  802. * -- private accessors --
  803. *
  804. * -- module fronts --
  805. * nssCKFWMechanism_GetMinKeySize
  806. * nssCKFWMechanism_GetMaxKeySize
  807. * nssCKFWMechanism_GetInHardware
  808. * nssCKFWMechanism_GetCanEncrypt
  809. * nssCKFWMechanism_GetCanDecrypt
  810. * nssCKFWMechanism_GetCanDigest
  811. * nssCKFWMechanism_GetCanSignRecover
  812. * nssCKFWMechanism_GetCanVerify
  813. * nssCKFWMechanism_GetCanVerifyRecover
  814. * nssCKFWMechanism_GetCanGenerate
  815. * nssCKFWMechanism_GetCanGenerateKeyPair
  816. * nssCKFWMechanism_GetCanWrap
  817. * nssCKFWMechanism_GetCanUnwrap
  818. * nssCKFWMechanism_GetCanDerive
  819. * nssCKFWMechanism_EncryptInit
  820. * nssCKFWMechanism_DecryptInit
  821. * nssCKFWMechanism_DigestInit
  822. * nssCKFWMechanism_SignInit
  823. * nssCKFWMechanism_SignRecoverInit
  824. * nssCKFWMechanism_VerifyInit
  825. * nssCKFWMechanism_VerifyRecoverInit
  826. * nssCKFWMechanism_GenerateKey
  827. * nssCKFWMechanism_GenerateKeyPair
  828. * nssCKFWMechanism_GetWrapKeyLength
  829. * nssCKFWMechanism_WrapKey
  830. * nssCKFWMechanism_UnwrapKey
  831. * nssCKFWMechanism_DeriveKey
  832. */
  833. /*
  834. * nssCKFWMechanism_Create
  835. *
  836. */
  837. NSS_EXTERN NSSCKFWMechanism *
  838. nssCKFWMechanism_Create(
  839. NSSCKMDMechanism *mdMechanism,
  840. NSSCKMDToken *mdToken,
  841. NSSCKFWToken *fwToken,
  842. NSSCKMDInstance *mdInstance,
  843. NSSCKFWInstance *fwInstance);
  844. /*
  845. * nssCKFWMechanism_Destroy
  846. *
  847. */
  848. NSS_EXTERN void
  849. nssCKFWMechanism_Destroy(
  850. NSSCKFWMechanism *fwMechanism);
  851. /*
  852. * nssCKFWMechanism_GetMDMechanism
  853. *
  854. */
  855. NSS_EXTERN NSSCKMDMechanism *
  856. nssCKFWMechanism_GetMDMechanism(
  857. NSSCKFWMechanism *fwMechanism);
  858. /*
  859. * nssCKFWMechanism_GetMinKeySize
  860. *
  861. */
  862. NSS_EXTERN CK_ULONG
  863. nssCKFWMechanism_GetMinKeySize(
  864. NSSCKFWMechanism *fwMechanism,
  865. CK_RV *pError);
  866. /*
  867. * nssCKFWMechanism_GetMaxKeySize
  868. *
  869. */
  870. NSS_EXTERN CK_ULONG
  871. nssCKFWMechanism_GetMaxKeySize(
  872. NSSCKFWMechanism *fwMechanism,
  873. CK_RV *pError);
  874. /*
  875. * nssCKFWMechanism_GetInHardware
  876. *
  877. */
  878. NSS_EXTERN CK_BBOOL
  879. nssCKFWMechanism_GetInHardware(
  880. NSSCKFWMechanism *fwMechanism,
  881. CK_RV *pError);
  882. /*
  883. * the following are determined automatically by which of the cryptographic
  884. * functions are defined for this mechanism.
  885. */
  886. /*
  887. * nssCKFWMechanism_GetCanEncrypt
  888. *
  889. */
  890. NSS_EXTERN CK_BBOOL
  891. nssCKFWMechanism_GetCanEncrypt(
  892. NSSCKFWMechanism *fwMechanism,
  893. CK_RV *pError);
  894. /*
  895. * nssCKFWMechanism_GetCanDecrypt
  896. *
  897. */
  898. NSS_EXTERN CK_BBOOL
  899. nssCKFWMechanism_GetCanDecrypt(
  900. NSSCKFWMechanism *fwMechanism,
  901. CK_RV *pError);
  902. /*
  903. * nssCKFWMechanism_GetCanDigest
  904. *
  905. */
  906. NSS_EXTERN CK_BBOOL
  907. nssCKFWMechanism_GetCanDigest(
  908. NSSCKFWMechanism *fwMechanism,
  909. CK_RV *pError);
  910. /*
  911. * nssCKFWMechanism_GetCanSign
  912. *
  913. */
  914. NSS_EXTERN CK_BBOOL
  915. nssCKFWMechanism_GetCanSign(
  916. NSSCKFWMechanism *fwMechanism,
  917. CK_RV *pError);
  918. /*
  919. * nssCKFWMechanism_GetCanSignRecover
  920. *
  921. */
  922. NSS_EXTERN CK_BBOOL
  923. nssCKFWMechanism_GetCanSignRecover(
  924. NSSCKFWMechanism *fwMechanism,
  925. CK_RV *pError);
  926. /*
  927. * nssCKFWMechanism_GetCanVerify
  928. *
  929. */
  930. NSS_EXTERN CK_BBOOL
  931. nssCKFWMechanism_GetCanVerify(
  932. NSSCKFWMechanism *fwMechanism,
  933. CK_RV *pError);
  934. /*
  935. * nssCKFWMechanism_GetCanVerifyRecover
  936. *
  937. */
  938. NSS_EXTERN CK_BBOOL
  939. nssCKFWMechanism_GetCanVerifyRecover(
  940. NSSCKFWMechanism *fwMechanism,
  941. CK_RV *pError);
  942. /*
  943. * nssCKFWMechanism_GetCanGenerate
  944. *
  945. */
  946. NSS_EXTERN CK_BBOOL
  947. nssCKFWMechanism_GetCanGenerate(
  948. NSSCKFWMechanism *fwMechanism,
  949. CK_RV *pError);
  950. /*
  951. * nssCKFWMechanism_GetCanGenerateKeyPair
  952. *
  953. */
  954. NSS_EXTERN CK_BBOOL
  955. nssCKFWMechanism_GetCanGenerateKeyPair(
  956. NSSCKFWMechanism *fwMechanism,
  957. CK_RV *pError);
  958. /*
  959. * nssCKFWMechanism_GetCanWrap
  960. *
  961. */
  962. NSS_EXTERN CK_BBOOL
  963. nssCKFWMechanism_GetCanWrap(
  964. NSSCKFWMechanism *fwMechanism,
  965. CK_RV *pError);
  966. /*
  967. * nssCKFWMechanism_GetCanUnwrap
  968. *
  969. */
  970. NSS_EXTERN CK_BBOOL
  971. nssCKFWMechanism_GetCanUnwrap(
  972. NSSCKFWMechanism *fwMechanism,
  973. CK_RV *pError);
  974. /*
  975. * nssCKFWMechanism_GetCanDerive
  976. *
  977. */
  978. NSS_EXTERN CK_BBOOL
  979. nssCKFWMechanism_GetCanDerive(
  980. NSSCKFWMechanism *fwMechanism,
  981. CK_RV *pError);
  982. /*
  983. * nssCKFWMechanism_EncryptInit
  984. */
  985. NSS_EXTERN CK_RV
  986. nssCKFWMechanism_EncryptInit(
  987. NSSCKFWMechanism *fwMechanism,
  988. CK_MECHANISM *pMechanism,
  989. NSSCKFWSession *fwSession,
  990. NSSCKFWObject *fwObject);
  991. /*
  992. * nssCKFWMechanism_DecryptInit
  993. */
  994. NSS_EXTERN CK_RV
  995. nssCKFWMechanism_DecryptInit(
  996. NSSCKFWMechanism *fwMechanism,
  997. CK_MECHANISM *pMechanism,
  998. NSSCKFWSession *fwSession,
  999. NSSCKFWObject *fwObject);
  1000. /*
  1001. * nssCKFWMechanism_DigestInit
  1002. */
  1003. NSS_EXTERN CK_RV
  1004. nssCKFWMechanism_DigestInit(
  1005. NSSCKFWMechanism *fwMechanism,
  1006. CK_MECHANISM *pMechanism,
  1007. NSSCKFWSession *fwSession);
  1008. /*
  1009. * nssCKFWMechanism_SignInit
  1010. */
  1011. NSS_EXTERN CK_RV
  1012. nssCKFWMechanism_SignInit(
  1013. NSSCKFWMechanism *fwMechanism,
  1014. CK_MECHANISM *pMechanism,
  1015. NSSCKFWSession *fwSession,
  1016. NSSCKFWObject *fwObject);
  1017. /*
  1018. * nssCKFWMechanism_SignRecoverInit
  1019. */
  1020. NSS_EXTERN CK_RV
  1021. nssCKFWMechanism_SignRecoverInit(
  1022. NSSCKFWMechanism *fwMechanism,
  1023. CK_MECHANISM *pMechanism,
  1024. NSSCKFWSession *fwSession,
  1025. NSSCKFWObject *fwObject);
  1026. /*
  1027. * nssCKFWMechanism_VerifyInit
  1028. */
  1029. NSS_EXTERN CK_RV
  1030. nssCKFWMechanism_VerifyInit(
  1031. NSSCKFWMechanism *fwMechanism,
  1032. CK_MECHANISM *pMechanism,
  1033. NSSCKFWSession *fwSession,
  1034. NSSCKFWObject *fwObject);
  1035. /*
  1036. * nssCKFWMechanism_VerifyRecoverInit
  1037. */
  1038. NSS_EXTERN CK_RV
  1039. nssCKFWMechanism_VerifyRecoverInit(
  1040. NSSCKFWMechanism *fwMechanism,
  1041. CK_MECHANISM *pMechanism,
  1042. NSSCKFWSession *fwSession,
  1043. NSSCKFWObject *fwObject);
  1044. /*
  1045. * nssCKFWMechanism_GenerateKey
  1046. */
  1047. NSS_EXTERN NSSCKFWObject *
  1048. nssCKFWMechanism_GenerateKey(
  1049. NSSCKFWMechanism *fwMechanism,
  1050. CK_MECHANISM_PTR pMechanism,
  1051. NSSCKFWSession *fwSession,
  1052. CK_ATTRIBUTE_PTR pTemplate,
  1053. CK_ULONG ulAttributeCount,
  1054. CK_RV *pError);
  1055. /*
  1056. * nssCKFWMechanism_GenerateKeyPair
  1057. */
  1058. NSS_EXTERN CK_RV
  1059. nssCKFWMechanism_GenerateKeyPair(
  1060. NSSCKFWMechanism *fwMechanism,
  1061. CK_MECHANISM_PTR pMechanism,
  1062. NSSCKFWSession *fwSession,
  1063. CK_ATTRIBUTE_PTR pPublicKeyTemplate,
  1064. CK_ULONG ulPublicKeyAttributeCount,
  1065. CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
  1066. CK_ULONG ulPrivateKeyAttributeCount,
  1067. NSSCKFWObject **fwPublicKeyObject,
  1068. NSSCKFWObject **fwPrivateKeyObject);
  1069. /*
  1070. * nssCKFWMechanism_GetWrapKeyLength
  1071. */
  1072. NSS_EXTERN CK_ULONG
  1073. nssCKFWMechanism_GetWrapKeyLength(
  1074. NSSCKFWMechanism *fwMechanism,
  1075. CK_MECHANISM_PTR pMechanism,
  1076. NSSCKFWSession *fwSession,
  1077. NSSCKFWObject *fwWrappingKeyObject,
  1078. NSSCKFWObject *fwObject,
  1079. CK_RV *pError);
  1080. /*
  1081. * nssCKFWMechanism_WrapKey
  1082. */
  1083. NSS_EXTERN CK_RV
  1084. nssCKFWMechanism_WrapKey(
  1085. NSSCKFWMechanism *fwMechanism,
  1086. CK_MECHANISM_PTR pMechanism,
  1087. NSSCKFWSession *fwSession,
  1088. NSSCKFWObject *fwWrappingKeyObject,
  1089. NSSCKFWObject *fwObject,
  1090. NSSItem *wrappedKey);
  1091. /*
  1092. * nssCKFWMechanism_UnwrapKey
  1093. */
  1094. NSS_EXTERN NSSCKFWObject *
  1095. nssCKFWMechanism_UnwrapKey(
  1096. NSSCKFWMechanism *fwMechanism,
  1097. CK_MECHANISM_PTR pMechanism,
  1098. NSSCKFWSession *fwSession,
  1099. NSSCKFWObject *fwWrappingKeyObject,
  1100. NSSItem *wrappedKey,
  1101. CK_ATTRIBUTE_PTR pTemplate,
  1102. CK_ULONG ulAttributeCount,
  1103. CK_RV *pError);
  1104. /*
  1105. * nssCKFWMechanism_DeriveKey
  1106. */
  1107. NSS_EXTERN NSSCKFWObject *
  1108. nssCKFWMechanism_DeriveKey(
  1109. NSSCKFWMechanism *fwMechanism,
  1110. CK_MECHANISM_PTR pMechanism,
  1111. NSSCKFWSession *fwSession,
  1112. NSSCKFWObject *fwBaseKeyObject,
  1113. CK_ATTRIBUTE_PTR pTemplate,
  1114. CK_ULONG ulAttributeCount,
  1115. CK_RV *pError);
  1116. /*
  1117. * NSSCKFWCryptoOperation
  1118. *
  1119. * -- create/destroy --
  1120. * nssCKFWCryptoOperation_Create
  1121. * nssCKFWCryptoOperation_Destroy
  1122. *
  1123. * -- implement public accessors --
  1124. * nssCKFWCryptoOperation_GetMDCryptoOperation
  1125. * nssCKFWCryptoOperation_GetType
  1126. *
  1127. * -- private accessors --
  1128. *
  1129. * -- module fronts --
  1130. * nssCKFWCryptoOperation_GetFinalLength
  1131. * nssCKFWCryptoOperation_GetOperationLength
  1132. * nssCKFWCryptoOperation_Final
  1133. * nssCKFWCryptoOperation_Update
  1134. * nssCKFWCryptoOperation_DigestUpdate
  1135. * nssCKFWCryptoOperation_DigestKey
  1136. * nssCKFWCryptoOperation_UpdateFinal
  1137. */
  1138. /*
  1139. * nssCKFWCrytoOperation_Create
  1140. */
  1141. NSS_EXTERN NSSCKFWCryptoOperation *
  1142. nssCKFWCryptoOperation_Create(
  1143. NSSCKMDCryptoOperation *mdOperation,
  1144. NSSCKMDSession *mdSession,
  1145. NSSCKFWSession *fwSession,
  1146. NSSCKMDToken *mdToken,
  1147. NSSCKFWToken *fwToken,
  1148. NSSCKMDInstance *mdInstance,
  1149. NSSCKFWInstance *fwInstance,
  1150. NSSCKFWCryptoOperationType type,
  1151. CK_RV *pError);
  1152. /*
  1153. * nssCKFWCryptoOperation_Destroy
  1154. */
  1155. NSS_EXTERN void
  1156. nssCKFWCryptoOperation_Destroy(
  1157. NSSCKFWCryptoOperation *fwOperation);
  1158. /*
  1159. * nssCKFWCryptoOperation_GetMDCryptoOperation
  1160. */
  1161. NSS_EXTERN NSSCKMDCryptoOperation *
  1162. nssCKFWCryptoOperation_GetMDCryptoOperation(
  1163. NSSCKFWCryptoOperation *fwOperation);
  1164. /*
  1165. * nssCKFWCryptoOperation_GetType
  1166. */
  1167. NSS_EXTERN NSSCKFWCryptoOperationType
  1168. nssCKFWCryptoOperation_GetType(
  1169. NSSCKFWCryptoOperation *fwOperation);
  1170. /*
  1171. * nssCKFWCryptoOperation_GetFinalLength
  1172. */
  1173. NSS_EXTERN CK_ULONG
  1174. nssCKFWCryptoOperation_GetFinalLength(
  1175. NSSCKFWCryptoOperation *fwOperation,
  1176. CK_RV *pError);
  1177. /*
  1178. * nssCKFWCryptoOperation_GetOperationLength
  1179. */
  1180. NSS_EXTERN CK_ULONG
  1181. nssCKFWCryptoOperation_GetOperationLength(
  1182. NSSCKFWCryptoOperation *fwOperation,
  1183. NSSItem *inputBuffer,
  1184. CK_RV *pError);
  1185. /*
  1186. * nssCKFWCryptoOperation_Final
  1187. */
  1188. NSS_EXTERN CK_RV
  1189. nssCKFWCryptoOperation_Final(
  1190. NSSCKFWCryptoOperation *fwOperation,
  1191. NSSItem *outputBuffer);
  1192. /*
  1193. * nssCKFWCryptoOperation_Update
  1194. */
  1195. NSS_EXTERN CK_RV
  1196. nssCKFWCryptoOperation_Update(
  1197. NSSCKFWCryptoOperation *fwOperation,
  1198. NSSItem *inputBuffer,
  1199. NSSItem *outputBuffer);
  1200. /*
  1201. * nssCKFWCryptoOperation_DigestUpdate
  1202. */
  1203. NSS_EXTERN CK_RV
  1204. nssCKFWCryptoOperation_DigestUpdate(
  1205. NSSCKFWCryptoOperation *fwOperation,
  1206. NSSItem *inputBuffer);
  1207. /*
  1208. * nssCKFWCryptoOperation_DigestKey
  1209. */
  1210. NSS_EXTERN CK_RV
  1211. nssCKFWCryptoOperation_DigestKey(
  1212. NSSCKFWCryptoOperation *fwOperation,
  1213. NSSCKFWObject *fwKey);
  1214. /*
  1215. * nssCKFWCryptoOperation_UpdateFinal
  1216. */
  1217. NSS_EXTERN CK_RV
  1218. nssCKFWCryptoOperation_UpdateFinal(
  1219. NSSCKFWCryptoOperation *fwOperation,
  1220. NSSItem *inputBuffer,
  1221. NSSItem *outputBuffer);
  1222. /*
  1223. * nssCKFWCryptoOperation_UpdateCombo
  1224. */
  1225. NSS_EXTERN CK_RV
  1226. nssCKFWCryptoOperation_UpdateCombo(
  1227. NSSCKFWCryptoOperation *fwOperation,
  1228. NSSCKFWCryptoOperation *fwPeerOperation,
  1229. NSSItem *inputBuffer,
  1230. NSSItem *outputBuffer);
  1231. /*
  1232. * NSSCKFWSession
  1233. *
  1234. * -- create/destroy --
  1235. * nssCKFWSession_Create
  1236. * nssCKFWSession_Destroy
  1237. *
  1238. * -- implement public accessors --
  1239. * nssCKFWSession_GetMDSession
  1240. * nssCKFWSession_GetArena
  1241. * nssCKFWSession_CallNotification
  1242. * nssCKFWSession_IsRWSession
  1243. * nssCKFWSession_IsSO
  1244. * nssCKFWSession_GetCurrentCryptoOperation
  1245. *
  1246. * -- private accessors --
  1247. * nssCKFWSession_GetFWSlot
  1248. * nssCKFWSession_GetSessionState
  1249. * nssCKFWSession_SetFWFindObjects
  1250. * nssCKFWSession_GetFWFindObjects
  1251. * nssCKFWSession_SetMDSession
  1252. * nssCKFWSession_SetHandle
  1253. * nssCKFWSession_GetHandle
  1254. * nssCKFWSession_RegisterSessionObject
  1255. * nssCKFWSession_DeregisterSessionObject
  1256. * nssCKFWSession_SetCurrentCryptoOperation
  1257. *
  1258. * -- module fronts --
  1259. * nssCKFWSession_GetDeviceError
  1260. * nssCKFWSession_Login
  1261. * nssCKFWSession_Logout
  1262. * nssCKFWSession_InitPIN
  1263. * nssCKFWSession_SetPIN
  1264. * nssCKFWSession_GetOperationStateLen
  1265. * nssCKFWSession_GetOperationState
  1266. * nssCKFWSession_SetOperationState
  1267. * nssCKFWSession_CreateObject
  1268. * nssCKFWSession_CopyObject
  1269. * nssCKFWSession_FindObjectsInit
  1270. * nssCKFWSession_SeedRandom
  1271. * nssCKFWSession_GetRandom
  1272. * nssCKFWSession_Final
  1273. * nssCKFWSession_Update
  1274. * nssCKFWSession_DigestUpdate
  1275. * nssCKFWSession_DigestKey
  1276. * nssCKFWSession_UpdateFinal
  1277. * nssCKFWSession_UpdateCombo
  1278. */
  1279. /*
  1280. * nssCKFWSession_Create
  1281. *
  1282. */
  1283. NSS_EXTERN NSSCKFWSession *
  1284. nssCKFWSession_Create(
  1285. NSSCKFWToken *fwToken,
  1286. CK_BBOOL rw,
  1287. CK_VOID_PTR pApplication,
  1288. CK_NOTIFY Notify,
  1289. CK_RV *pError);
  1290. /*
  1291. * nssCKFWSession_Destroy
  1292. *
  1293. */
  1294. NSS_EXTERN CK_RV
  1295. nssCKFWSession_Destroy(
  1296. NSSCKFWSession *fwSession,
  1297. CK_BBOOL removeFromTokenHash);
  1298. /*
  1299. * nssCKFWSession_GetMDSession
  1300. *
  1301. */
  1302. NSS_EXTERN NSSCKMDSession *
  1303. nssCKFWSession_GetMDSession(
  1304. NSSCKFWSession *fwSession);
  1305. /*
  1306. * nssCKFWSession_GetArena
  1307. *
  1308. */
  1309. NSS_EXTERN NSSArena *
  1310. nssCKFWSession_GetArena(
  1311. NSSCKFWSession *fwSession,
  1312. CK_RV *pError);
  1313. /*
  1314. * nssCKFWSession_CallNotification
  1315. *
  1316. */
  1317. NSS_EXTERN CK_RV
  1318. nssCKFWSession_CallNotification(
  1319. NSSCKFWSession *fwSession,
  1320. CK_NOTIFICATION event);
  1321. /*
  1322. * nssCKFWSession_IsRWSession
  1323. *
  1324. */
  1325. NSS_EXTERN CK_BBOOL
  1326. nssCKFWSession_IsRWSession(
  1327. NSSCKFWSession *fwSession);
  1328. /*
  1329. * nssCKFWSession_IsSO
  1330. *
  1331. */
  1332. NSS_EXTERN CK_BBOOL
  1333. nssCKFWSession_IsSO(
  1334. NSSCKFWSession *fwSession);
  1335. /*
  1336. * nssCKFWSession_GetFWSlot
  1337. *
  1338. */
  1339. NSS_EXTERN NSSCKFWSlot *
  1340. nssCKFWSession_GetFWSlot(
  1341. NSSCKFWSession *fwSession);
  1342. /*
  1343. * nssCFKWSession_GetSessionState
  1344. *
  1345. */
  1346. NSS_EXTERN CK_STATE
  1347. nssCKFWSession_GetSessionState(
  1348. NSSCKFWSession *fwSession);
  1349. /*
  1350. * nssCKFWSession_SetFWFindObjects
  1351. *
  1352. */
  1353. NSS_EXTERN CK_RV
  1354. nssCKFWSession_SetFWFindObjects(
  1355. NSSCKFWSession *fwSession,
  1356. NSSCKFWFindObjects *fwFindObjects);
  1357. /*
  1358. * nssCKFWSession_GetFWFindObjects
  1359. *
  1360. */
  1361. NSS_EXTERN NSSCKFWFindObjects *
  1362. nssCKFWSession_GetFWFindObjects(
  1363. NSSCKFWSession *fwSesssion,
  1364. CK_RV *pError);
  1365. /*
  1366. * nssCKFWSession_SetMDSession
  1367. *
  1368. */
  1369. NSS_EXTERN CK_RV
  1370. nssCKFWSession_SetMDSession(
  1371. NSSCKFWSession *fwSession,
  1372. NSSCKMDSession *mdSession);
  1373. /*
  1374. * nssCKFWSession_SetHandle
  1375. *
  1376. */
  1377. NSS_EXTERN CK_RV
  1378. nssCKFWSession_SetHandle(
  1379. NSSCKFWSession *fwSession,
  1380. CK_SESSION_HANDLE hSession);
  1381. /*
  1382. * nssCKFWSession_GetHandle
  1383. *
  1384. */
  1385. NSS_EXTERN CK_SESSION_HANDLE
  1386. nssCKFWSession_GetHandle(
  1387. NSSCKFWSession *fwSession);
  1388. /*
  1389. * nssCKFWSession_RegisterSessionObject
  1390. *
  1391. */
  1392. NSS_EXTERN CK_RV
  1393. nssCKFWSession_RegisterSessionObject(
  1394. NSSCKFWSession *fwSession,
  1395. NSSCKFWObject *fwObject);
  1396. /*
  1397. * nssCKFWSession_DeregisterSessionObject
  1398. *
  1399. */
  1400. NSS_EXTERN CK_RV
  1401. nssCKFWSession_DeregisterSessionObject(
  1402. NSSCKFWSession *fwSession,
  1403. NSSCKFWObject *fwObject);
  1404. /*
  1405. * nssCKFWSession_GetDeviceError
  1406. *
  1407. */
  1408. NSS_EXTERN CK_ULONG
  1409. nssCKFWSession_GetDeviceError(
  1410. NSSCKFWSession *fwSession);
  1411. /*
  1412. * nssCKFWSession_Login
  1413. *
  1414. */
  1415. NSS_EXTERN CK_RV
  1416. nssCKFWSession_Login(
  1417. NSSCKFWSession *fwSession,
  1418. CK_USER_TYPE userType,
  1419. NSSItem *pin);
  1420. /*
  1421. * nssCKFWSession_Logout
  1422. *
  1423. */
  1424. NSS_EXTERN CK_RV
  1425. nssCKFWSession_Logout(
  1426. NSSCKFWSession *fwSession);
  1427. /*
  1428. * nssCKFWSession_InitPIN
  1429. *
  1430. */
  1431. NSS_EXTERN CK_RV
  1432. nssCKFWSession_InitPIN(
  1433. NSSCKFWSession *fwSession,
  1434. NSSItem *pin);
  1435. /*
  1436. * nssCKFWSession_SetPIN
  1437. *
  1438. */
  1439. NSS_EXTERN CK_RV
  1440. nssCKFWSession_SetPIN(
  1441. NSSCKFWSession *fwSession,
  1442. const NSSItem *oldPin,
  1443. NSSItem *newPin);
  1444. /*
  1445. * nssCKFWSession_GetOperationStateLen
  1446. *
  1447. */
  1448. NSS_EXTERN CK_ULONG
  1449. nssCKFWSession_GetOperationStateLen(
  1450. NSSCKFWSession *fwSession,
  1451. CK_RV *pError);
  1452. /*
  1453. * nssCKFWSession_GetOperationState
  1454. *
  1455. */
  1456. NSS_EXTERN CK_RV
  1457. nssCKFWSession_GetOperationState(
  1458. NSSCKFWSession *fwSession,
  1459. NSSItem *buffer);
  1460. /*
  1461. * nssCKFWSession_SetOperationState
  1462. *
  1463. */
  1464. NSS_EXTERN CK_RV
  1465. nssCKFWSession_SetOperationState(
  1466. NSSCKFWSession *fwSession,
  1467. NSSItem *state,
  1468. NSSCKFWObject *encryptionKey,
  1469. NSSCKFWObject *authenticationKey);
  1470. /*
  1471. * nssCKFWSession_CreateObject
  1472. *
  1473. */
  1474. NSS_EXTERN NSSCKFWObject *
  1475. nssCKFWSession_CreateObject(
  1476. NSSCKFWSession *fwSession,
  1477. CK_ATTRIBUTE_PTR pTemplate,
  1478. CK_ULONG ulAttributeCount,
  1479. CK_RV *pError);
  1480. /*
  1481. * nssCKFWSession_CopyObject
  1482. *
  1483. */
  1484. NSS_EXTERN NSSCKFWObject *
  1485. nssCKFWSession_CopyObject(
  1486. NSSCKFWSession *fwSession,
  1487. NSSCKFWObject *object,
  1488. CK_ATTRIBUTE_PTR pTemplate,
  1489. CK_ULONG ulAttributeCount,
  1490. CK_RV *pError);
  1491. /*
  1492. * nssCKFWSession_FindObjectsInit
  1493. *
  1494. */
  1495. NSS_EXTERN NSSCKFWFindObjects *
  1496. nssCKFWSession_FindObjectsInit(
  1497. NSSCKFWSession *fwSession,
  1498. CK_ATTRIBUTE_PTR pTemplate,
  1499. CK_ULONG ulAttributeCount,
  1500. CK_RV *pError);
  1501. /*
  1502. * nssCKFWSession_SetCurrentCryptoOperation
  1503. */
  1504. NSS_IMPLEMENT void
  1505. nssCKFWSession_SetCurrentCryptoOperation(
  1506. NSSCKFWSession *fwSession,
  1507. NSSCKFWCryptoOperation *fwOperation,
  1508. NSSCKFWCryptoOperationState state);
  1509. /*
  1510. * nssCKFWSession_GetCurrentCryptoOperation
  1511. */
  1512. NSS_IMPLEMENT NSSCKFWCryptoOperation *
  1513. nssCKFWSession_GetCurrentCryptoOperation(
  1514. NSSCKFWSession *fwSession,
  1515. NSSCKFWCryptoOperationState state);
  1516. /*
  1517. * nssCKFWSession_Final
  1518. * (terminate a cryptographic operation and get the result)
  1519. */
  1520. NSS_IMPLEMENT CK_RV
  1521. nssCKFWSession_Final(
  1522. NSSCKFWSession *fwSession,
  1523. NSSCKFWCryptoOperationType type,
  1524. NSSCKFWCryptoOperationState state,
  1525. CK_BYTE_PTR outBuf,
  1526. CK_ULONG_PTR outBufLen);
  1527. /*
  1528. * nssCKFWSession_Update
  1529. * (get the next step of an encrypt/decrypt operation)
  1530. */
  1531. NSS_IMPLEMENT CK_RV
  1532. nssCKFWSession_Update(
  1533. NSSCKFWSession *fwSession,
  1534. NSSCKFWCryptoOperationType type,
  1535. NSSCKFWCryptoOperationState state,
  1536. CK_BYTE_PTR inBuf,
  1537. CK_ULONG inBufLen,
  1538. CK_BYTE_PTR outBuf,
  1539. CK_ULONG_PTR outBufLen);
  1540. /*
  1541. * nssCKFWSession_DigestUpdate
  1542. * (do the next step of an digest/sign/verify operation)
  1543. */
  1544. NSS_IMPLEMENT CK_RV
  1545. nssCKFWSession_DigestUpdate(
  1546. NSSCKFWSession *fwSession,
  1547. NSSCKFWCryptoOperationType type,
  1548. NSSCKFWCryptoOperationState state,
  1549. CK_BYTE_PTR inBuf,
  1550. CK_ULONG inBufLen);
  1551. /*
  1552. * nssCKFWSession_DigestKey
  1553. * (do the next step of an digest/sign/verify operation)
  1554. */
  1555. NSS_IMPLEMENT CK_RV
  1556. nssCKFWSession_DigestKey(
  1557. NSSCKFWSession *fwSession,
  1558. NSSCKFWObject *fwKey);
  1559. /*
  1560. * nssCKFWSession_UpdateFinal
  1561. * (do a single-step of a cryptographic operation and get the result)
  1562. */
  1563. NSS_IMPLEMENT CK_RV
  1564. nssCKFWSession_UpdateFinal(
  1565. NSSCKFWSession *fwSession,
  1566. NSSCKFWCryptoOperationType type,
  1567. NSSCKFWCryptoOperationState state,
  1568. CK_BYTE_PTR inBuf,
  1569. CK_ULONG inBufLen,
  1570. CK_BYTE_PTR outBuf,
  1571. CK_ULONG_PTR outBufLen);
  1572. /*
  1573. * nssCKFWSession_UpdateCombo
  1574. * (do a combination encrypt/decrypt and sign/digest/verify operation)
  1575. */
  1576. NSS_IMPLEMENT CK_RV
  1577. nssCKFWSession_UpdateCombo(
  1578. NSSCKFWSession *fwSession,
  1579. NSSCKFWCryptoOperationType encryptType,
  1580. NSSCKFWCryptoOperationType digestType,
  1581. NSSCKFWCryptoOperationState digestState,
  1582. CK_BYTE_PTR inBuf,
  1583. CK_ULONG inBufLen,
  1584. CK_BYTE_PTR outBuf,
  1585. CK_ULONG_PTR outBufLen);
  1586. /*
  1587. * nssCKFWSession_SeedRandom
  1588. *
  1589. */
  1590. NSS_EXTERN CK_RV
  1591. nssCKFWSession_SeedRandom(
  1592. NSSCKFWSession *fwSession,
  1593. NSSItem *seed);
  1594. /*
  1595. * nssCKFWSession_GetRandom
  1596. *
  1597. */
  1598. NSS_EXTERN CK_RV
  1599. nssCKFWSession_GetRandom(
  1600. NSSCKFWSession *fwSession,
  1601. NSSItem *buffer);
  1602. /*
  1603. * NSSCKFWObject
  1604. *
  1605. * -- create/destroy --
  1606. * nssCKFWObject_Create
  1607. * nssCKFWObject_Finalize
  1608. * nssCKFWObject_Destroy
  1609. *
  1610. * -- implement public accessors --
  1611. * nssCKFWObject_GetMDObject
  1612. * nssCKFWObject_GetArena
  1613. *
  1614. * -- private accessors --
  1615. * nssCKFWObject_SetHandle
  1616. * nssCKFWObject_GetHandle
  1617. *
  1618. * -- module fronts --
  1619. * nssCKFWObject_IsTokenObject
  1620. * nssCKFWObject_GetAttributeCount
  1621. * nssCKFWObject_GetAttributeTypes
  1622. * nssCKFWObject_GetAttributeSize
  1623. * nssCKFWObject_GetAttribute
  1624. * nssCKFWObject_SetAttribute
  1625. * nssCKFWObject_GetObjectSize
  1626. */
  1627. /*
  1628. * nssCKFWObject_Create
  1629. *
  1630. */
  1631. NSS_EXTERN NSSCKFWObject *
  1632. nssCKFWObject_Create(
  1633. NSSArena *arena,
  1634. NSSCKMDObject *mdObject,
  1635. NSSCKFWSession *fwSession,
  1636. NSSCKFWToken *fwToken,
  1637. NSSCKFWInstance *fwInstance,
  1638. CK_RV *pError);
  1639. /*
  1640. * nssCKFWObject_Finalize
  1641. *
  1642. */
  1643. NSS_EXTERN void
  1644. nssCKFWObject_Finalize(
  1645. NSSCKFWObject *fwObject,
  1646. PRBool removeFromHash);
  1647. /*
  1648. * nssCKFWObject_Destroy
  1649. *
  1650. */
  1651. NSS_EXTERN void
  1652. nssCKFWObject_Destroy(
  1653. NSSCKFWObject *fwObject);
  1654. /*
  1655. * nssCKFWObject_GetMDObject
  1656. *
  1657. */
  1658. NSS_EXTERN NSSCKMDObject *
  1659. nssCKFWObject_GetMDObject(
  1660. NSSCKFWObject *fwObject);
  1661. /*
  1662. * nssCKFWObject_GetArena
  1663. *
  1664. */
  1665. NSS_EXTERN NSSArena *
  1666. nssCKFWObject_GetArena(
  1667. NSSCKFWObject *fwObject,
  1668. CK_RV *pError);
  1669. /*
  1670. * nssCKFWObject_SetHandle
  1671. *
  1672. */
  1673. NSS_EXTERN CK_RV
  1674. nssCKFWObject_SetHandle(
  1675. NSSCKFWObject *fwObject,
  1676. CK_OBJECT_HANDLE hObject);
  1677. /*
  1678. * nssCKFWObject_GetHandle
  1679. *
  1680. */
  1681. NSS_EXTERN CK_OBJECT_HANDLE
  1682. nssCKFWObject_GetHandle(
  1683. NSSCKFWObject *fwObject);
  1684. /*
  1685. * nssCKFWObject_IsTokenObject
  1686. *
  1687. */
  1688. NSS_EXTERN CK_BBOOL
  1689. nssCKFWObject_IsTokenObject(
  1690. NSSCKFWObject *fwObject);
  1691. /*
  1692. * nssCKFWObject_GetAttributeCount
  1693. *
  1694. */
  1695. NSS_EXTERN CK_ULONG
  1696. nssCKFWObject_GetAttributeCount(
  1697. NSSCKFWObject *fwObject,
  1698. CK_RV *pError);
  1699. /*
  1700. * nssCKFWObject_GetAttributeTypes
  1701. *
  1702. */
  1703. NSS_EXTERN CK_RV
  1704. nssCKFWObject_GetAttributeTypes(
  1705. NSSCKFWObject *fwObject,
  1706. CK_ATTRIBUTE_TYPE_PTR typeArray,
  1707. CK_ULONG ulCount);
  1708. /*
  1709. * nssCKFWObject_GetAttributeSize
  1710. *
  1711. */
  1712. NSS_EXTERN CK_ULONG
  1713. nssCKFWObject_GetAttributeSize(
  1714. NSSCKFWObject *fwObject,
  1715. CK_ATTRIBUTE_TYPE attribute,
  1716. CK_RV *pError);
  1717. /*
  1718. * nssCKFWObject_GetAttribute
  1719. *
  1720. * Usual NSS allocation rules:
  1721. * If itemOpt is not NULL, it will be returned; otherwise an NSSItem
  1722. * will be allocated. If itemOpt is not NULL but itemOpt->data is,
  1723. * the buffer will be allocated; otherwise, the buffer will be used.
  1724. * Any allocations will come from the optional arena, if one is
  1725. * specified.
  1726. */
  1727. NSS_EXTERN NSSItem *
  1728. nssCKFWObject_GetAttribute(
  1729. NSSCKFWObject *fwObject,
  1730. CK_ATTRIBUTE_TYPE attribute,
  1731. NSSItem *itemOpt,
  1732. NSSArena *arenaOpt,
  1733. CK_RV *pError);
  1734. /*
  1735. * nssCKFWObject_SetAttribute
  1736. *
  1737. */
  1738. NSS_EXTERN CK_RV
  1739. nssCKFWObject_SetAttribute(
  1740. NSSCKFWObject *fwObject,
  1741. NSSCKFWSession *fwSession,
  1742. CK_ATTRIBUTE_TYPE attribute,
  1743. NSSItem *value);
  1744. /*
  1745. * nssCKFWObject_GetObjectSize
  1746. *
  1747. */
  1748. NSS_EXTERN CK_ULONG
  1749. nssCKFWObject_GetObjectSize(
  1750. NSSCKFWObject *fwObject,
  1751. CK_RV *pError);
  1752. /*
  1753. * NSSCKFWFindObjects
  1754. *
  1755. * -- create/destroy --
  1756. * nssCKFWFindObjects_Create
  1757. * nssCKFWFindObjects_Destroy
  1758. *
  1759. * -- implement public accessors --
  1760. * nssCKFWFindObjects_GetMDFindObjects
  1761. *
  1762. * -- private accessors --
  1763. *
  1764. * -- module fronts --
  1765. * nssCKFWFindObjects_Next
  1766. */
  1767. /*
  1768. * nssCKFWFindObjects_Create
  1769. *
  1770. */
  1771. NSS_EXTERN NSSCKFWFindObjects *
  1772. nssCKFWFindObjects_Create(
  1773. NSSCKFWSession *fwSession,
  1774. NSSCKFWToken *fwToken,
  1775. NSSCKFWInstance *fwInstance,
  1776. NSSCKMDFindObjects *mdFindObjects1,
  1777. NSSCKMDFindObjects *mdFindObjects2,
  1778. CK_RV *pError);
  1779. /*
  1780. * nssCKFWFindObjects_Destroy
  1781. *
  1782. */
  1783. NSS_EXTERN void
  1784. nssCKFWFindObjects_Destroy(
  1785. NSSCKFWFindObjects *fwFindObjects);
  1786. /*
  1787. * nssCKFWFindObjects_GetMDFindObjects
  1788. *
  1789. */
  1790. NSS_EXTERN NSSCKMDFindObjects *
  1791. nssCKFWFindObjects_GetMDFindObjects(
  1792. NSSCKFWFindObjects *fwFindObjects);
  1793. /*
  1794. * nssCKFWFindObjects_Next
  1795. *
  1796. */
  1797. NSS_EXTERN NSSCKFWObject *
  1798. nssCKFWFindObjects_Next(
  1799. NSSCKFWFindObjects *fwFindObjects,
  1800. NSSArena *arenaOpt,
  1801. CK_RV *pError);
  1802. /*
  1803. * NSSCKFWMutex
  1804. *
  1805. * nssCKFWMutex_Create
  1806. * nssCKFWMutex_Destroy
  1807. * nssCKFWMutex_Lock
  1808. * nssCKFWMutex_Unlock
  1809. *
  1810. */
  1811. /*
  1812. * nssCKFWMutex_Create
  1813. *
  1814. */
  1815. NSS_EXTERN NSSCKFWMutex *
  1816. nssCKFWMutex_Create(
  1817. CK_C_INITIALIZE_ARGS_PTR pInitArgs,
  1818. CryptokiLockingState LockingState,
  1819. NSSArena *arena,
  1820. CK_RV *pError);
  1821. /*
  1822. * nssCKFWMutex_Destroy
  1823. *
  1824. */
  1825. NSS_EXTERN CK_RV
  1826. nssCKFWMutex_Destroy(
  1827. NSSCKFWMutex *mutex);
  1828. /*
  1829. * nssCKFWMutex_Lock
  1830. *
  1831. */
  1832. NSS_EXTERN CK_RV
  1833. nssCKFWMutex_Lock(
  1834. NSSCKFWMutex *mutex);
  1835. /*
  1836. * nssCKFWMutex_Unlock
  1837. *
  1838. */
  1839. NSS_EXTERN CK_RV
  1840. nssCKFWMutex_Unlock(
  1841. NSSCKFWMutex *mutex);
  1842. #endif /* CKFW_H */