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