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 NSSCKFW_H 6 #define NSSCKFW_H 7 8 /* 9 * nssckfw.h 10 * 11 * This file prototypes the publicly available calls of the 12 * NSS Cryptoki Framework. 13 */ 14 15 #ifndef NSSBASET_H 16 #include "nssbaset.h" 17 #endif /* NSSBASET_H */ 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 /* 28 * NSSCKFWInstance 29 * 30 * NSSCKFWInstance_GetMDInstance 31 * NSSCKFWInstance_GetArena 32 * NSSCKFWInstance_MayCreatePthreads 33 * NSSCKFWInstance_CreateMutex 34 * NSSCKFWInstance_GetConfigurationData 35 * NSSCKFWInstance_GetInitArgs 36 * NSSCKFWInstance_DestroySessionHandle 37 * NSSCKFWInstance_FindSessionHandle 38 */ 39 40 /* 41 * NSSCKFWInstance_GetMDInstance 42 * 43 */ 44 45 NSS_EXTERN NSSCKMDInstance * 46 NSSCKFWInstance_GetMDInstance( 47 NSSCKFWInstance *fwInstance); 48 49 /* 50 * NSSCKFWInstance_GetArena 51 * 52 */ 53 54 NSS_EXTERN NSSArena * 55 NSSCKFWInstance_GetArena( 56 NSSCKFWInstance *fwInstance, 57 CK_RV *pError); 58 59 /* 60 * NSSCKFWInstance_MayCreatePthreads 61 * 62 */ 63 64 NSS_EXTERN CK_BBOOL 65 NSSCKFWInstance_MayCreatePthreads( 66 NSSCKFWInstance *fwInstance); 67 68 /* 69 * NSSCKFWInstance_CreateMutex 70 * 71 */ 72 73 NSS_EXTERN NSSCKFWMutex * 74 NSSCKFWInstance_CreateMutex( 75 NSSCKFWInstance *fwInstance, 76 NSSArena *arena, 77 CK_RV *pError); 78 79 /* 80 * NSSCKFWInstance_GetConfigurationData 81 * 82 */ 83 84 NSS_EXTERN NSSUTF8 * 85 NSSCKFWInstance_GetConfigurationData( 86 NSSCKFWInstance *fwInstance); 87 88 /* 89 * NSSCKFWInstance_GetInitArgs 90 * 91 */ 92 93 NSS_EXTERN CK_C_INITIALIZE_ARGS_PTR 94 NSSCKFWInstance_GetInitArgs( 95 NSSCKFWInstance *fwInstance); 96 97 /* 98 * nssCKFWInstance_DestroySessionHandle 99 * 100 */ 101 NSS_EXTERN void 102 NSSCKFWInstance_DestroySessionHandle( 103 NSSCKFWInstance *fwInstance, 104 CK_SESSION_HANDLE hSession); 105 106 /* 107 * nssCKFWInstance_FindSessionHandle 108 * 109 */ 110 NSS_EXTERN CK_SESSION_HANDLE 111 NSSCKFWInstance_FindSessionHandle( 112 NSSCKFWInstance *fwInstance, 113 NSSCKFWSession *fwSession); 114 115 /* 116 * NSSCKFWSlot 117 * 118 * NSSCKFWSlot_GetMDSlot 119 * NSSCKFWSlot_GetFWInstance 120 * NSSCKFWSlot_GetMDInstance 121 * NSSCKFWSlot_GetSlotID 122 * 123 */ 124 125 /* 126 * NSSCKFWSlot_GetMDSlot 127 * 128 */ 129 130 NSS_EXTERN NSSCKMDSlot * 131 NSSCKFWSlot_GetMDSlot( 132 NSSCKFWSlot *fwSlot); 133 134 /* 135 * NSSCKFWSlot_GetFWInstance 136 * 137 */ 138 139 NSS_EXTERN NSSCKFWInstance * 140 NSSCKFWSlot_GetFWInstance( 141 NSSCKFWSlot *fwSlot); 142 143 /* 144 * NSSCKFWSlot_GetMDInstance 145 * 146 */ 147 148 NSS_EXTERN NSSCKMDInstance * 149 NSSCKFWSlot_GetMDInstance( 150 NSSCKFWSlot *fwSlot); 151 152 /* 153 * NSSCKFWSlot_GetSlotID 154 * 155 */ 156 157 NSS_EXTERN CK_SLOT_ID 158 NSSCKFWSlot_GetSlotID( 159 NSSCKFWSlot *fwSlot); 160 161 /* 162 * NSSCKFWToken 163 * 164 * NSSCKFWToken_GetMDToken 165 * NSSCKFWToken_GetFWSlot 166 * NSSCKFWToken_GetMDSlot 167 * NSSCKFWToken_GetSessionState 168 * 169 */ 170 171 /* 172 * NSSCKFWToken_GetMDToken 173 * 174 */ 175 176 NSS_EXTERN NSSCKMDToken * 177 NSSCKFWToken_GetMDToken( 178 NSSCKFWToken *fwToken); 179 180 /* 181 * NSSCKFWToken_GetArena 182 * 183 */ 184 185 NSS_EXTERN NSSArena * 186 NSSCKFWToken_GetArena( 187 NSSCKFWToken *fwToken, 188 CK_RV *pError); 189 190 /* 191 * NSSCKFWToken_GetFWSlot 192 * 193 */ 194 195 NSS_EXTERN NSSCKFWSlot * 196 NSSCKFWToken_GetFWSlot( 197 NSSCKFWToken *fwToken); 198 199 /* 200 * NSSCKFWToken_GetMDSlot 201 * 202 */ 203 204 NSS_EXTERN NSSCKMDSlot * 205 NSSCKFWToken_GetMDSlot( 206 NSSCKFWToken *fwToken); 207 208 /* 209 * NSSCKFWToken_GetSessionState 210 * 211 */ 212 213 NSS_EXTERN CK_STATE 214 NSSCKFWToken_GetSessionState( 215 NSSCKFWToken *fwToken); 216 217 /* 218 * NSSCKFWMechanism 219 * 220 * NSSKCFWMechanism_GetMDMechanism 221 * NSSCKFWMechanism_GetParameter 222 * 223 */ 224 225 /* 226 * NSSKCFWMechanism_GetMDMechanism 227 * 228 */ 229 230 NSS_EXTERN NSSCKMDMechanism * 231 NSSCKFWMechanism_GetMDMechanism( 232 NSSCKFWMechanism *fwMechanism); 233 234 /* 235 * NSSCKFWMechanism_GetParameter 236 * 237 */ 238 239 NSS_EXTERN NSSItem * 240 NSSCKFWMechanism_GetParameter( 241 NSSCKFWMechanism *fwMechanism); 242 243 /* 244 * NSSCKFWSession 245 * 246 * NSSCKFWSession_GetMDSession 247 * NSSCKFWSession_GetArena 248 * NSSCKFWSession_CallNotification 249 * NSSCKFWSession_IsRWSession 250 * NSSCKFWSession_IsSO 251 * NSSCKFWSession_GetCurrentCryptoOperation 252 * NSSCKFWSession_GetFWSlot 253 * 254 */ 255 256 /* 257 * NSSCKFWSession_GetMDSession 258 * 259 */ 260 261 NSS_EXTERN NSSCKMDSession * 262 NSSCKFWSession_GetMDSession( 263 NSSCKFWSession *fwSession); 264 265 /* 266 * NSSCKFWSession_GetArena 267 * 268 */ 269 270 NSS_EXTERN NSSArena * 271 NSSCKFWSession_GetArena( 272 NSSCKFWSession *fwSession, 273 CK_RV *pError); 274 275 /* 276 * NSSCKFWSession_CallNotification 277 * 278 */ 279 280 NSS_EXTERN CK_RV 281 NSSCKFWSession_CallNotification( 282 NSSCKFWSession *fwSession, 283 CK_NOTIFICATION event); 284 285 /* 286 * NSSCKFWSession_IsRWSession 287 * 288 */ 289 290 NSS_EXTERN CK_BBOOL 291 NSSCKFWSession_IsRWSession( 292 NSSCKFWSession *fwSession); 293 294 /* 295 * NSSCKFWSession_IsSO 296 * 297 */ 298 299 NSS_EXTERN CK_BBOOL 300 NSSCKFWSession_IsSO( 301 NSSCKFWSession *fwSession); 302 303 /* 304 * NSSCKFWSession_GetCurrentCryptoOperation 305 * 306 */ 307 308 NSS_EXTERN NSSCKFWCryptoOperation * 309 NSSCKFWSession_GetCurrentCryptoOperation( 310 NSSCKFWSession *fwSession, 311 NSSCKFWCryptoOperationState state); 312 313 /* 314 * NSSCKFWSession_GetFWSlot 315 * 316 */ 317 318 NSS_EXTERN NSSCKFWSlot * 319 NSSCKFWSession_GetFWSlot( 320 NSSCKFWSession *fwSession); 321 322 /* 323 * NSSCKFWObject 324 * 325 * NSSCKFWObject_GetMDObject 326 * NSSCKFWObject_GetArena 327 * NSSCKFWObject_IsTokenObject 328 * NSSCKFWObject_GetAttributeCount 329 * NSSCKFWObject_GetAttributeTypes 330 * NSSCKFWObject_GetAttributeSize 331 * NSSCKFWObject_GetAttribute 332 * NSSCKFWObject_GetObjectSize 333 */ 334 335 /* 336 * NSSCKFWObject_GetMDObject 337 * 338 */ 339 NSS_EXTERN NSSCKMDObject * 340 NSSCKFWObject_GetMDObject( 341 NSSCKFWObject *fwObject); 342 343 /* 344 * NSSCKFWObject_GetArena 345 * 346 */ 347 NSS_EXTERN NSSArena * 348 NSSCKFWObject_GetArena( 349 NSSCKFWObject *fwObject, 350 CK_RV *pError); 351 352 /* 353 * NSSCKFWObject_IsTokenObject 354 * 355 */ 356 NSS_EXTERN CK_BBOOL 357 NSSCKFWObject_IsTokenObject( 358 NSSCKFWObject *fwObject); 359 360 /* 361 * NSSCKFWObject_GetAttributeCount 362 * 363 */ 364 NSS_EXTERN CK_ULONG 365 NSSCKFWObject_GetAttributeCount( 366 NSSCKFWObject *fwObject, 367 CK_RV *pError); 368 369 /* 370 * NSSCKFWObject_GetAttributeTypes 371 * 372 */ 373 NSS_EXTERN CK_RV 374 NSSCKFWObject_GetAttributeTypes( 375 NSSCKFWObject *fwObject, 376 CK_ATTRIBUTE_TYPE_PTR typeArray, 377 CK_ULONG ulCount); 378 379 /* 380 * NSSCKFWObject_GetAttributeSize 381 * 382 */ 383 NSS_EXTERN CK_ULONG 384 NSSCKFWObject_GetAttributeSize( 385 NSSCKFWObject *fwObject, 386 CK_ATTRIBUTE_TYPE attribute, 387 CK_RV *pError); 388 389 /* 390 * NSSCKFWObject_GetAttribute 391 * 392 */ 393 NSS_EXTERN NSSItem * 394 NSSCKFWObject_GetAttribute( 395 NSSCKFWObject *fwObject, 396 CK_ATTRIBUTE_TYPE attribute, 397 NSSItem *itemOpt, 398 NSSArena *arenaOpt, 399 CK_RV *pError); 400 401 /* 402 * NSSCKFWObject_GetObjectSize 403 * 404 */ 405 NSS_EXTERN CK_ULONG 406 NSSCKFWObject_GetObjectSize( 407 NSSCKFWObject *fwObject, 408 CK_RV *pError); 409 410 /* 411 * NSSCKFWFindObjects 412 * 413 * NSSCKFWFindObjects_GetMDFindObjects 414 * 415 */ 416 417 /* 418 * NSSCKFWFindObjects_GetMDFindObjects 419 * 420 */ 421 422 NSS_EXTERN NSSCKMDFindObjects * 423 NSSCKFWFindObjects_GetMDFindObjects( 424 NSSCKFWFindObjects *); 425 426 /* 427 * NSSCKFWMutex 428 * 429 * NSSCKFWMutex_Destroy 430 * NSSCKFWMutex_Lock 431 * NSSCKFWMutex_Unlock 432 * 433 */ 434 435 /* 436 * NSSCKFWMutex_Destroy 437 * 438 */ 439 440 NSS_EXTERN CK_RV 441 NSSCKFWMutex_Destroy( 442 NSSCKFWMutex *mutex); 443 444 /* 445 * NSSCKFWMutex_Lock 446 * 447 */ 448 449 NSS_EXTERN CK_RV 450 NSSCKFWMutex_Lock( 451 NSSCKFWMutex *mutex); 452 453 /* 454 * NSSCKFWMutex_Unlock 455 * 456 */ 457 458 NSS_EXTERN CK_RV 459 NSSCKFWMutex_Unlock( 460 NSSCKFWMutex *mutex); 461 462 #endif /* NSSCKFW_H */ 463