Cryptographic Token Interface Standard |
PKCS#11 |
00001 /* rewritten */ 00006 #define CK_INVALID_HANDLE 00007 00008 #define CK_TRUE 1 00009 00010 #define CK_FALSE 0 00011 00013 #define CK_UNAVAILABLE_INFORMATION (~0UL) 00014 00015 #define CK_EFFECTIVELY_INFINITE 0 00016 00018 #define CKU_SO 0 00019 00020 #define CKU_USER 1 00021 00022 #define CKU_CONTEXT_SPECIFIC 2 00023 00025 #define CKS_RO_PUBLIC_SESSION 0 00026 00028 #define CKS_RO_USER_FUNCTIONS 1 00029 00031 #define CKS_RW_PUBLIC_SESSION 2 00032 00034 #define CKS_RW_USER_FUNCTIONS 3 00035 00037 #define CKS_RW_SO_FUNCTIONS 4 00038 00040 #define TRUE CK_TRUE 00041 00042 #define FALSE CK_FALSE 00043 /* an unsigned 8-bit value */ 00047 typedef unsigned char CK_BYTE; 00048 /* an unsigned 8-bit character */ 00052 typedef CK_BYTE CK_CHAR; 00053 /* an 8-bit UTF-8 character */ 00057 typedef CK_BYTE CK_UTF8CHAR; 00058 /* a BYTE-sized Boolean flag */ 00062 typedef CK_BYTE CK_BBOOL; 00063 /* an unsigned value, at least 32 bits long */ 00067 typedef unsigned long int CK_ULONG; 00068 /* a signed value, the same size as a CK_ULONG */ 00072 typedef long int CK_LONG; 00073 /* at least 32 bits; each bit is a Boolean flag */ 00077 typedef CK_ULONG CK_FLAGS; 00078 00079 00081 typedef CK_BYTE CK_PTR CK_BYTE_PTR; 00083 typedef CK_CHAR CK_PTR CK_CHAR_PTR; 00085 typedef CK_UTF8CHAR CK_PTR CK_UTF8CHAR_PTR; 00087 typedef CK_ULONG CK_PTR CK_ULONG_PTR; 00089 typedef void CK_PTR CK_VOID_PTR; 00090 00091 00093 typedef CK_VOID_PTR CK_PTR CK_VOID_PTR_PTR; 00094 00095 00097 typedef NULL CK_PTR NULL_PTR; 00098 00099 00103 typedef CK_BYTE CK_PTR CK_BYTE_PTR; 00104 00105 00106 typedef CK_DECLARE_FUNCTION_POINTER(CK_RV, myC_InitializeType)( CK_VOID_PTR pReserved ); 00107 myC_InitializeType myC_Initialize; 00108 00109 00122 typedef CK_CALLBACK_FUNCTION(CK_RV, myCallbackType)(args); 00123 myCallbackType myCallback; 00124 00125 00126 00127 00153 typedef struct CK_VERSION { 00155 CK_BYTE major; 00157 CK_BYTE minor; 00158 } CK_VERSION; 00159 00160 00162 typedef CK_VERSION CK_PTR CK_VERSION_PTR; 00163 00164 00205 typedef struct CK_INFO { 00207 CK_VERSION cryptokiVersion; 00209 CK_UTF8CHAR manufacturerID[32]; 00211 CK_FLAGS flags; 00213 CK_UTF8CHAR libraryDescription[32]; 00215 CK_VERSION libraryVersion; 00216 } CK_INFO; 00217 00218 00220 typedef CK_INFO CK_PTR CK_INFO_PTR; 00226 typedef CK_ULONG CK_NOTIFICATION; 00227 00228 00234 typedef CK_ULONG CK_SLOT_ID; 00235 00236 00238 typedef CK_SLOT_ID CK_PTR CK_SLOT_ID_PTR; 00239 00240 00299 typedef struct CK_SLOT_INFO { 00301 CK_UTF8CHAR slotDescription[64]; 00303 CK_UTF8CHAR manufacturerID[32]; 00305 CK_FLAGS flags; 00307 CK_VERSION hardwareVersion; 00309 CK_VERSION firmwareVersion; 00310 } CK_SLOT_INFO; 00311 00312 00314 #define CKF_TOKEN_PRESENT 0x00000001 00315 00317 #define CKF_REMOVABLE_DEVICE 0x00000002 00318 00320 #define CKF_HW_SLOT 0x00000004 00321 00323 typedef CK_SLOT_INFO CK_PTR CK_SLOT_INFO_PTR; 00324 00325 00526 typedef struct CK_TOKEN_INFO { 00528 CK_UTF8CHAR label[32]; 00530 CK_UTF8CHAR manufacturerID[32]; 00532 CK_UTF8CHAR model[16]; 00534 CK_CHAR serialNumber[16]; 00536 CK_FLAGS flags; 00538 CK_ULONG ulMaxSessionCount; 00540 CK_ULONG ulSessionCount; 00542 CK_ULONG ulMaxRwSessionCount; 00544 CK_ULONG ulRwSessionCount; 00546 CK_ULONG ulMaxPinLen; 00548 CK_ULONG ulMinPinLen; 00550 CK_ULONG ulTotalPublicMemory; 00552 CK_ULONG ulFreePublicMemory; 00554 CK_ULONG ulTotalPrivateMemory; 00556 CK_ULONG ulFreePrivateMemory; 00558 CK_VERSION hardwareVersion; 00560 CK_VERSION firmwareVersion; 00562 CK_CHAR utcTime[16]; 00563 } CK_TOKEN_INFO; 00564 00565 00567 #define CKF_RNG 0x00000001 00568 00570 #define CKF_WRITE_PROTECTED 0x00000002 00571 00573 #define CKF_LOGIN_REQUIRED 0x00000004 00574 00576 #define CKF_USER_PIN_INITIALIZED 0x00000008 00577 00579 #define CKF_RESTORE_KEY_NOT_NEEDED 0x00000020 00580 00582 #define CKF_CLOCK_ON_TOKEN 0x00000040 00583 00585 #define CKF_PROTECTED_AUTHENTICATION_PATH 0x00000100 00586 00588 #define CKF_DUAL_CRYPTO_OPERATIONS 0x00000200 00589 00591 #define CKF_TOKEN_INITIALIZED 0x00000400 00592 00594 #define CKF_SECONDARY_AUTHENTICATION 0x00000800 00595 00597 #define CKF_USER_PIN_COUNT_LOW 0x00010000 00598 00600 #define CKF_USER_PIN_FINAL_TRY 0x00020000 00601 00603 #define CKF_USER_PIN_LOCKED 0x00040000 00604 00606 #define CKF_USER_PIN_TO_BE_CHANGED 0x00080000 00607 00609 #define CKF_SO_PIN_COUNT_LOW 0x00100000 00610 00612 #define CKF_SO_PIN_FINAL_TRY 0x00200000 00613 00615 #define CKF_SO_PIN_LOCKED 0x00400000 00616 00618 #define CKF_SO_PIN_TO_BE_CHANGED 0x00800000 00619 00620 00621 00623 typedef CK_TOKEN_INFO CK_PTR CK_TOKEN_INFO_PTR; 00629 typedef CK_ULONG CK_SESSION_HANDLE; 00630 00631 00633 typedef CK_SESSION_HANDLE CK_PTR CK_SESSION_HANDLE_PTR; 00639 typedef CK_ULONG CK_USER_TYPE; 00640 00641 00648 typedef CK_ULONG CK_STATE; 00649 00650 00651 00652 00692 typedef struct CK_SESSION_INFO { 00694 CK_SLOT_ID slotID; 00696 CK_STATE state; 00698 CK_FLAGS flags; 00700 CK_ULONG ulDeviceError; 00701 } CK_SESSION_INFO; 00702 00703 00705 #define CKF_RW_SESSION 0x00000002 00706 00708 #define CKF_SERIAL_SESSION 0x00000004 00709 00711 typedef CK_SESSION_INFO CK_PTR CK_SESSION_INFO_PTR; 00717 typedef CK_ULONG CK_OBJECT_HANDLE; 00718 00719 00721 typedef CK_OBJECT_HANDLE CK_PTR CK_OBJECT_HANDLE_PTR; 00727 typedef CK_ULONG CK_OBJECT_CLASS; 00728 00729 00731 typedef CK_OBJECT_CLASS CK_PTR CK_OBJECT_CLASS_PTR; 00737 typedef CK_ULONG CK_HW_FEATURE_TYPE; 00738 00739 00745 typedef CK_ULONG CK_KEY_TYPE; 00746 00747 00753 typedef CK_ULONG CK_CERTIFICATE_TYPE; 00754 00755 00761 typedef CK_ULONG CK_ATTRIBUTE_TYPE; 00762 00763 00764 00765 00796 typedef struct CK_ATTRIBUTE { 00798 CK_ATTRIBUTE_TYPE type; 00800 CK_VOID_PTR pValue; 00802 CK_ULONG ulValueLen; 00803 } CK_ATTRIBUTE; 00804 00805 00807 typedef CK_ATTRIBUTE CK_PTR CK_ATTRIBUTE_PTR; 00808 00809 00824 typedef struct CK_DATE { 00826 CK_CHAR year[4]; 00828 CK_CHAR month[2]; 00830 CK_CHAR day[2]; 00831 } CK_DATE; 00832 00833 00839 typedef CK_ULONG CK_MECHANISM_TYPE; 00840 00841 00843 typedef CK_MECHANISM_TYPE CK_PTR CK_MECHANISM_TYPE_PTR; 00844 00845 00871 typedef struct CK_MECHANISM { 00873 CK_MECHANISM_TYPE mechanism; 00875 CK_VOID_PTR pParameter; 00877 CK_ULONG ulParameterLen; 00878 } CK_MECHANISM; 00879 00880 00882 typedef CK_MECHANISM CK_PTR CK_MECHANISM_PTR; 00883 00884 00986 typedef struct CK_MECHANISM_INFO { 00988 CK_ULONG ulMinKeySize; 00990 CK_ULONG ulMaxKeySize; 00992 CK_FLAGS flags; 00993 } CK_MECHANISM_INFO; 00994 00995 00997 #define CKF_HW 0x00000001 00998 01000 #define CKF_ENCRYPT 0x00000100 01001 01003 #define CKF_DECRYPT 0x00000200 01004 01006 #define CKF_DIGEST 0x00000400 01007 01009 #define CKF_SIGN 0x00000800 01010 01012 #define CKF_SIGN_RECOVER 0x00001000 01013 01015 #define CKF_VERIFY 0x00002000 01016 01018 #define CKF_VERIFY_RECOVER 0x00004000 01019 01021 #define CKF_GENERATE 0x00008000 01022 01024 #define CKF_GENERATE_KEY_PAIR 0x00010000 01025 01027 #define CKF_WRAP 0x00020000 01028 01030 #define CKF_UNWRAP 0x00040000 01031 01033 #define CKF_DERIVE 0x00080000 01034 01036 #define CKF_EXTENSION 0x80000000 01037 01039 typedef CK_MECHANISM_INFO CK_PTR CK_MECHANISM_INFO_PTR; 01045 typedef CK_ULONG CK_RV; 01046 01047 01053 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_NOTIFY)( 01054 CK_SESSION_HANDLE hSession, 01055 CK_NOTIFICATION event, 01056 CK_VOID_PTR pApplication 01057 ); 01058 01059 01060 01061 01077 typedef struct CK_FUNCTION_LIST { 01078 CK_VERSION version; 01079 CK_C_Initialize C_Initialize; 01080 CK_C_Finalize C_Finalize; 01081 CK_C_GetInfo C_GetInfo; 01082 CK_C_GetFunctionList C_GetFunctionList; 01083 CK_C_GetSlotList C_GetSlotList; 01084 CK_C_GetSlotInfo C_GetSlotInfo; 01085 CK_C_GetTokenInfo C_GetTokenInfo; 01086 CK_C_GetMechanismList C_GetMechanismList; 01087 CK_C_GetMechanismInfo C_GetMechanismInfo; 01088 CK_C_InitToken C_InitToken; 01089 CK_C_InitPIN C_InitPIN; 01090 CK_C_SetPIN C_SetPIN; 01091 CK_C_OpenSession C_OpenSession; 01092 CK_C_CloseSession C_CloseSession; 01093 CK_C_CloseAllSessions C_CloseAllSessions; 01094 CK_C_GetSessionInfo C_GetSessionInfo; 01095 CK_C_GetOperationState C_GetOperationState; 01096 CK_C_SetOperationState C_SetOperationState; 01097 CK_C_Login C_Login; 01098 CK_C_Logout C_Logout; 01099 CK_C_CreateObject C_CreateObject; 01100 CK_C_CopyObject C_CopyObject; 01101 CK_C_DestroyObject C_DestroyObject; 01102 CK_C_GetObjectSize C_GetObjectSize; 01103 CK_C_GetAttributeValue C_GetAttributeValue; 01104 CK_C_SetAttributeValue C_SetAttributeValue; 01105 CK_C_FindObjectsInit C_FindObjectsInit; 01106 CK_C_FindObjects C_FindObjects; 01107 CK_C_FindObjectsFinal C_FindObjectsFinal; 01108 CK_C_EncryptInit C_EncryptInit; 01109 CK_C_Encrypt C_Encrypt; 01110 CK_C_EncryptUpdate C_EncryptUpdate; 01111 CK_C_EncryptFinal C_EncryptFinal; 01112 CK_C_DecryptInit C_DecryptInit; 01113 CK_C_Decrypt C_Decrypt; 01114 CK_C_DecryptUpdate C_DecryptUpdate; 01115 CK_C_DecryptFinal C_DecryptFinal; 01116 CK_C_DigestInit C_DigestInit; 01117 CK_C_Digest C_Digest; 01118 CK_C_DigestUpdate C_DigestUpdate; 01119 CK_C_DigestKey C_DigestKey; 01120 CK_C_DigestFinal C_DigestFinal; 01121 CK_C_SignInit C_SignInit; 01122 CK_C_Sign C_Sign; 01123 CK_C_SignUpdate C_SignUpdate; 01124 CK_C_SignFinal C_SignFinal; 01125 CK_C_SignRecoverInit C_SignRecoverInit; 01126 CK_C_SignRecover C_SignRecover; 01127 CK_C_VerifyInit C_VerifyInit; 01128 CK_C_Verify C_Verify; 01129 CK_C_VerifyUpdate C_VerifyUpdate; 01130 CK_C_VerifyFinal C_VerifyFinal; 01131 CK_C_VerifyRecoverInit C_VerifyRecoverInit; 01132 CK_C_VerifyRecover C_VerifyRecover; 01133 CK_C_DigestEncryptUpdate C_DigestEncryptUpdate; 01134 CK_C_DecryptDigestUpdate C_DecryptDigestUpdate; 01135 CK_C_SignEncryptUpdate C_SignEncryptUpdate; 01136 CK_C_DecryptVerifyUpdate C_DecryptVerifyUpdate; 01137 CK_C_GenerateKey C_GenerateKey; 01138 CK_C_GenerateKeyPair C_GenerateKeyPair; 01139 CK_C_WrapKey C_WrapKey; 01140 CK_C_UnwrapKey C_UnwrapKey; 01141 CK_C_DeriveKey C_DeriveKey; 01142 CK_C_SeedRandom C_SeedRandom; 01143 CK_C_GenerateRandom C_GenerateRandom; 01144 CK_C_GetFunctionStatus C_GetFunctionStatus; 01145 CK_C_CancelFunction C_CancelFunction; 01146 CK_C_WaitForSlotEvent C_WaitForSlotEvent; 01147 } CK_FUNCTION_LIST; 01148 01149 01151 typedef CK_FUNCTION_LIST CK_PTR CK_FUNCTION_LIST_PTR; 01153 typedef CK_FUNCTION_LIST_PTR CK_PTR CK_FUNCTION_LIST_PTR_PTR; 01160 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_CREATEMUTEX)( 01161 CK_VOID_PTR_PTR ppMutex 01162 ); 01163 01164 01170 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_DESTROYMUTEX)( 01171 CK_VOID_PTR pMutex 01172 ); 01173 01174 01201 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_LOCKMUTEX)( 01202 CK_VOID_PTR pMutex 01203 ); 01204 01205 01209 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_UNLOCKMUTEX)( 01210 CK_VOID_PTR pMutex 01211 ); 01212 01213 01214 01215 01262 typedef struct CK_C_INITIALIZE_ARGS { 01264 CK_CREATEMUTEX CreateMutex; 01266 CK_DESTROYMUTEX DestroyMutex; 01268 CK_LOCKMUTEX LockMutex; 01270 CK_UNLOCKMUTEX UnlockMutex; 01272 CK_FLAGS flags; 01274 CK_VOID_PTR pReserved; 01275 } CK_C_INITIALIZE_ARGS; 01276 01277 01279 #define CKF_LIBRARY_CANT_CREATE_OS_THREADS 0x00000001 01280 01282 #define CKF_OS_LOCKING_OK 0x00000002 01283 01285 typedef CK_C_INITIALIZE_ARGS CK_PTR CK_C_INITIALIZE_ARGS_PTR; 01287 #define CKA_CLASS 01288 01290 #define CKA_HW_FEATURE_TYPE 01291 01293 #define CKA_VALUE 01294 01296 #define CKA_RESET_ON_INIT 01297 01299 #define CKA_HAS_RESET 01300 01302 #define CKA_VALUE 01303 01305 #define CKA_TOKEN 01306 01308 #define CKA_PRIVATE 01309 01311 #define CKA_MODIFIABLE 01312 01314 #define CKA_LABEL 01315 01317 #define CKA_APPLICATION 01318 01320 #define CKA_OBJECT_ID 01321 01323 #define CKA_VALUE 01324 01325 01326 01328 #define CKA_CERTIFICATE_TYPE 01329 01331 #define CKA_SUBJECT 01332 01334 #define CKA_ID 01335 01337 #define CKA_ISSUER 01338 01340 #define CKA_SERIAL_NUMBER 01341 01343 #define CKA_VALUE 01344 01345 01346 01348 #define CKA_OWNER 01349 01351 #define CKA_AC_ISSUER 01352 01354 #define CKA_SERIAL_NUMBER 01355 01357 #define CKA_ATTR_TYPES 01358 01360 #define CKA_VALUE 01361 01362 01363 01365 #define CKA_KEY_TYPE 01366 01368 #define CKA_ID 01369 01371 #define CKA_START_DATE 01372 01374 #define CKA_END_DATE 01375 01377 #define CKA_DERIVE 01378 01380 #define CKA_LOCAL 01381 01383 #define CKA_SUBJECT 01384 01386 #define CKA_ENCRYPT 01387 01389 #define CKA_VERIFY 01390 01392 #define CKA_VERIFY_RECOVER 01393 01395 #define CKA_WRAP 01396 01398 #define CKA_MODULUS 01399 01401 #define CKA_MODULUS_BITS 01402 01404 #define CKA_PUBLIC_EXPONENT 01405 01406 01407 01409 #define CKA_PRIME 01410 01412 #define CKA_SUBPRIME 01413 01415 #define CKA_BASE 01416 01418 #define CKA_VALUE 01419 01420 01421 01423 #define CKA_ECDSA_PARAMS 01424 01426 #define CKA_EC_POINT 01427 01428 01429 01431 #define CKA_PRIME 01432 01434 #define CKA_BASE 01435 01437 #define CKA_VALUE 01438 01439 01440 01442 #define CKA_PRIME 01443 01445 #define CKA_SUBPRIME 01446 01448 #define CKA_BASE 01449 01451 #define CKA_VALUE 01452 01453 01454 01456 #define CKA_SUBJECT 01457 01459 #define CKA_SENSITIVE 01460 01462 #define CKA_SECONDARY_AUTH 01463 01465 #define CKA_AUTH_PIN_FLAGS 01466 01468 #define CKA_DECRYPT 01469 01471 #define CKA_SIGN 01472 01474 #define CKA_SIGN_RECOVER 01475 01477 #define CKA_UNWRAP 01478 01480 #define CKA_EXTRACTABLE 01481 01483 #define CKA_ALWAYS_SENSITIVE 01484 01486 #define CKA_NEVER_EXTRACTABLE 01487 01489 #define CKA_MODULUS 01490 01492 #define CKA_PUBLIC_EXPONENT 01493 01495 #define CKA_PRIVATE_EXPONENT 01496 01498 #define CKA_PRIME_1 01499 01501 #define CKA_PRIME_2 01502 01504 #define CKA_EXPONENT_1 01505 01507 #define CKA_EXPONENT_2 01508 01510 #define CKA_COEFFICIENT 01511 01512 01513 01515 #define CKA_PRIME 01516 01518 #define CKA_SUBPRIME 01519 01521 #define CKA_BASE 01522 01524 #define CKA_VALUE 01525 01526 01527 01529 #define CKA_ECDSA_PARAMS 01530 01532 #define CKA_VALUE 01533 01534 01535 01537 #define CKA_PRIME 01538 01540 #define CKA_BASE 01541 01543 #define CKA_VALUE 01544 01546 #define CKA_VALUE_BITS 01547 01548 01549 01551 #define CKA_PRIME 01552 01554 #define CKA_SUBPRIME 01555 01557 #define CKA_BASE 01558 01560 #define CKA_VALUE 01561 01562 01563 01565 #define CKA_SENSITIVE 01566 01568 #define CKA_ENCRYPT 01569 01571 #define CKA_DECRYPT 01572 01574 #define CKA_SIGN 01575 01577 #define CKA_VERIFY 01578 01580 #define CKA_WRAP 01581 01583 #define CKA_UNWRAP 01584 01586 #define CKA_EXTRACTABLE 01587 01589 #define CKA_ALWAYS_SENSITIVE 01590 01592 #define CKA_NEVER_EXTRACTABLE 01593 01595 #define CKA_VALUE 01596 01598 #define CKA_VALUE_LEN 01599 01600 01601 01603 #define CKA_VALUE 01604 01606 #define CKA_VALUE_LEN 01607 01608 01609 01611 #define CKA_VALUE 01612 01614 #define CKA_VALUE_LEN 01615 01616 01617 01619 #define CKA_VALUE 01620 01622 #define CKA_VALUE_LEN 01623 01624 01625 01627 #define CKA_VALUE 01628 01629 01630 01632 #define CKA_VALUE 01633 01634 01635 01637 #define CKA_VALUE 01638 01639 01640 01642 #define CKA_VALUE 01643 01645 #define CKA_VALUE_LEN 01646 01647 01648 01650 #define CKA_VALUE 01651 01653 #define CKA_VALUE_LEN 01654 01655 01656 01658 #define CKA_VALUE 01659 01661 #define CKA_VALUE_LEN 01662 01663 01664 01666 #define CKA_VALUE 01667 01668 01669 01671 #define CKA_VALUE 01672 01673 01674 01676 #define CKA_VALUE 01677 01678 01679 01681 #define CKA_VALUE 01682 01683 01684 01686 #define CKA_VALUE 01687 01688 01689 01691 #define CKR_GENERAL_ERROR 01692 01694 #define CKR_HOST_MEMORY 01695 01697 #define CKR_FUNCTION_FAILED 01698 01700 #define CKR_OK 01701 01703 #define CKR_SESSION_HANDLE_INVALID 01704 01706 #define CKR_DEVICE_REMOVED 01707 01709 #define CKR_SESSION_CLOSED 01710 01712 #define CKR_DEVICE_MEMORY 01713 01715 #define CKR_DEVICE_ERROR 01716 01718 #define CKR_TOKEN_NOT_PRESENT 01719 01721 #define CKR_DEVICE_REMOVED 01722 01724 #define CKR_CANCEL 01725 01727 #define CKR_MUTEX_BAD 01728 01730 #define CKR_MUTEX_NOT_LOCKED 01731 01733 #define CKR_ARGUMENTS_BAD 01734 01736 #define CKR_ATTRIBUTE_READ_ONLY 01737 01739 #define CKR_ATTRIBUTE_SENSITIVE 01740 01742 #define CKR_ATTRIBUTE_TYPE_INVALID 01743 01745 #define CKR_ATTRIBUTE_VALUE_INVALID 01746 01748 #define CKR_BUFFER_TOO_SMALL 01749 01751 #define CKR_CANT_LOCK 01752 01754 #define CKR_CRYPTOKI_ALREADY_INITIALIZED 01755 01757 #define CKR_CRYPTOKI_NOT_INITIALIZED 01758 01760 #define CKR_DATA_INVALID 01761 01763 #define CKR_DATA_LEN_RANGE 01764 01766 #define CKR_ENCRYPTED_DATA_INVALID 01767 01769 #define CKR_ENCRYPTED_DATA_LEN_RANGE 01770 01772 #define CKR_FUNCTION_CANCELED 01773 01775 #define CKR_FUNCTION_NOT_PARALLEL 01776 01778 #define CKR_FUNCTION_NOT_SUPPORTED 01779 01781 #define CKR_INFORMATION_SENSITIVE 01782 01784 #define CKR_KEY_CHANGED 01785 01787 #define CKR_KEY_FUNCTION_NOT_PERMITTED 01788 01790 #define CKR_KEY_HANDLE_INVALID 01791 01793 #define CKR_KEY_INDIGESTIBLE 01794 01796 #define CKR_KEY_NEEDED 01797 01799 #define CKR_KEY_NOT_NEEDED 01800 01802 #define CKR_KEY_NOT_WRAPPABLE 01803 01805 #define CKR_KEY_SIZE_RANGE 01806 01808 #define CKR_KEY_TYPE_INCONSISTENT 01809 01811 #define CKR_KEY_UNEXTRACTABLE 01812 01814 #define CKR_MECHANISM_INVALID 01815 01817 #define CKR_MECHANISM_PARAM_INVALID 01818 01820 #define CKR_NEED_TO_CREATE_THREADS 01821 01823 #define CKR_NO_EVENT 01824 01826 #define CKR_OBJECT_HANDLE_INVALID 01827 01829 #define CKR_OPERATION_ACTIVE 01830 01832 #define CKR_OPERATION_NOT_INITIALIZED 01833 01835 #define CKR_PIN_EXPIRED 01836 01838 #define CKR_PIN_INCORRECT 01839 01841 #define CKR_PIN_INVALID 01842 01844 #define CKR_PIN_LEN_RANGE 01845 01847 #define CKR_PIN_LOCKED 01848 01850 #define CKR_RANDOM_NO_RNG 01851 01853 #define CKR_RANDOM_SEED_NOT_SUPPORTED 01854 01856 #define CKR_SAVED_STATE_INVALID 01857 01859 #define CKR_SESSION_COUNT 01860 01862 #define CKR_SESSION_EXISTS 01863 01865 #define CKR_SESSION_PARALLEL_NOT_SUPPORTED 01866 01868 #define CKR_SESSION_READ_ONLY 01869 01871 #define CKR_SESSION_READ_ONLY_EXISTS 01872 01874 #define CKR_SESSION_READ_WRITE_SO_EXISTS 01875 01877 #define CKR_SIGNATURE_LEN_RANGE 01878 01880 #define CKR_SIGNATURE_INVALID 01881 01883 #define CKR_SLOT_ID_INVALID 01884 01886 #define CKR_STATE_UNSAVEABLE 01887 01889 #define CKR_TEMPLATE_INCOMPLETE 01890 01892 #define CKR_TEMPLATE_INCONSISTENT 01893 01895 #define CKR_TOKEN_NOT_RECOGNIZED 01896 01898 #define CKR_TOKEN_WRITE_PROTECTED 01899 01901 #define CKR_UNWRAPPING_KEY_HANDLE_INVALID 01902 01904 #define CKR_UNWRAPPING_KEY_SIZE_RANGE 01905 01907 #define CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT 01908 01910 #define CKR_USER_ALREADY_LOGGED_IN 01911 01913 #define CKR_USER_ANOTHER_ALREADY_LOGGED_IN 01914 01916 #define CKR_USER_NOT_LOGGED_IN 01917 01919 #define CKR_USER_PIN_NOT_INITIALIZED 01920 01922 #define CKR_USER_TOO_MANY_TYPES 01923 01925 #define CKR_USER_TYPE_INVALID 01926 01928 #define CKR_WRAPPED_KEY_INVALID 01929 01931 #define CKR_WRAPPED_KEY_LEN_RANGE 01932 01934 #define CKR_WRAPPING_KEY_HANDLE_INVALID 01935 01937 #define CKR_WRAPPING_KEY_SIZE_RANGE 01938 01940 #define CKR_WRAPPING_KEY_TYPE_INCONSISTENT 01941 02026 CK_RV C_Initialize( CK_VOID_PTR pInitArgs); 02027 02028 02059 CK_RV C_Finalize( CK_VOID_PTR pReserved); 02060 02061 02075 CK_RV C_GetInfo( CK_INFO_PTR pInfo); 02076 02077 02098 CK_RV C_GetFunctionList( CK_FUNCTION_LIST_PTR_PTR ppFunctionList); 02099 02100 02152 CK_RV C_GetSlotList( CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, CK_ULONG_PTR pulCount); 02153 02154 02168 CK_RV C_GetSlotInfo( CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo); 02169 02170 02187 CK_RV C_GetTokenInfo( CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo); 02188 02189 02247 CK_RV C_WaitForSlotEvent( CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, CK_VOID_PTR pReserved); 02248 02249 02286 CK_RV C_GetMechanismList( CK_SLOT_ID slotID, CK_MECHANISM_TYPE_PTR pMechanismList, CK_ULONG_PTR pulCount); 02287 02288 02306 CK_RV C_GetMechanismInfo( CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, CK_MECHANISM_INFO_PTR pInfo); 02307 02308 02376 CK_RV C_InitToken( CK_SLOT_ID slotID, CK_CHAR_PTR pPin, CK_ULONG ulPinLen, CK_UTF8CHAR_PTR pLabel); 02377 02378 02415 CK_RV C_InitPIN( CK_SESSION_HANDLE hSession, CK_CHAR_PTR pPin, CK_ULONG ulPinLen); 02416 02417 02459 CK_RV C_SetPIN( CK_SESSION_HANDLE hSession, CK_CHAR_PTR pOldPin, CK_ULONG ulOldLen, CK_CHAR_PTR pNewPin, CK_ULONG ulNewLen); 02460 02461 02508 CK_RV C_OpenSession( CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession); 02509 02510 02548 CK_RV C_CloseSession( CK_SESSION_HANDLE hSession); 02549 02550 02577 CK_RV C_CloseAllSessions( CK_SLOT_ID slotID); 02578 02579 02596 CK_RV C_GetSessionInfo( CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo); 02597 02598 02672 CK_RV C_GetOperationState( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG_PTR pulOperationStateLen); 02673 02674 02756 CK_RV C_SetOperationState( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG ulOperationStateLen, CK_OBJECT_HANDLE hEncryptionKey, CK_OBJECT_HANDLE hAuthenticationKey); 02757 02758 02807 CK_RV C_Login( CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, CK_CHAR_PTR pPin, CK_ULONG ulPinLen); 02808 02809 02841 CK_RV C_Logout( CK_SESSION_HANDLE hSession); 02842 02843 02874 CK_RV C_CreateObject( CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject); 02875 02876 02920 CK_RV C_CopyObject( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phNewObject); 02921 02922 02941 CK_RV C_DestroyObject( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject); 02942 02943 02967 CK_RV C_GetObjectSize( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ULONG_PTR pulSize); 02968 02969 03030 CK_RV C_GetAttributeValue( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount); 03031 03032 03065 CK_RV C_SetAttributeValue( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount); 03066 03067 03110 CK_RV C_FindObjectsInit( CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount); 03111 03112 03134 CK_RV C_FindObjects( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount); 03135 03136 03152 CK_RV C_FindObjectsFinal( CK_SESSION_HANDLE hSession); 03153 03154 03185 CK_RV C_EncryptInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03186 03187 03231 CK_RV C_Encrypt( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData, CK_ULONG_PTR pulEncryptedDataLen); 03232 03233 03270 CK_RV C_EncryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen); 03271 03272 03305 CK_RV C_EncryptFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastEncryptedPart, CK_ULONG_PTR pulLastEncryptedPartLen); 03306 03307 03338 CK_RV C_DecryptInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03339 03340 03383 CK_RV C_Decrypt( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedData, CK_ULONG ulEncryptedDataLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen); 03384 03385 03417 CK_RV C_DecryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen); 03418 03419 03452 CK_RV C_DecryptFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastPart, CK_ULONG_PTR pulLastPartLen); 03453 03454 03480 CK_RV C_DigestInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism); 03481 03482 03519 CK_RV C_Digest( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen); 03520 03521 03542 CK_RV C_DigestUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen); 03543 03544 03569 CK_RV C_DigestKey( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hKey); 03570 03571 03599 CK_RV C_DigestFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen); 03600 03601 03632 CK_RV C_SignInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03633 03634 03669 CK_RV C_Sign( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen); 03670 03671 03692 CK_RV C_SignUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen); 03693 03694 03722 CK_RV C_SignFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen); 03723 03724 03753 CK_RV C_SignRecoverInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03754 03755 03785 CK_RV C_SignRecover( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen); 03786 03787 03818 CK_RV C_VerifyInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03819 03820 03858 CK_RV C_Verify( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen); 03859 03860 03881 CK_RV C_VerifyUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen); 03882 03883 03914 CK_RV C_VerifyFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen); 03915 03916 03944 CK_RV C_VerifyRecoverInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03945 03946 03988 CK_RV C_VerifyRecover( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen); 03989 03990 04027 CK_RV C_DigestEncryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen); 04028 04029 04108 CK_RV C_DecryptDigestUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen); 04109 04110 04145 CK_RV C_SignEncryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen); 04146 04147 04225 CK_RV C_DecryptVerifyUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen); 04226 04227 04264 CK_RV C_GenerateKey( CK_SESSION_HANDLE hSession CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phKey); 04265 04266 04316 CK_RV C_GenerateKeyPair( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pPublicKeyTemplate, CK_ULONG ulPublicKeyAttributeCount, CK_ATTRIBUTE_PTR pPrivateKeyTemplate, CK_ULONG ulPrivateKeyAttributeCount, CK_OBJECT_HANDLE_PTR phPublicKey, CK_OBJECT_HANDLE_PTR phPrivateKey); 04317 04318 04373 CK_RV C_WrapKey( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hWrappingKey, CK_OBJECT_HANDLE hKey, CK_BYTE_PTR pWrappedKey, CK_ULONG_PTR pulWrappedKeyLen); 04374 04375 04427 CK_RV C_UnwrapKey( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hUnwrappingKey, CK_BYTE_PTR pWrappedKey, CK_ULONG ulWrappedKeyLen, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulAttributeCount, CK_OBJECT_HANDLE_PTR phKey); 04428 04429 04469 CK_RV C_DeriveKey( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hBaseKey, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulAttributeCount, CK_OBJECT_HANDLE_PTR phKey); 04470 04471 04488 CK_RV C_SeedRandom( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed, CK_ULONG ulSeedLen); 04489 04490 04509 CK_RV C_GenerateRandom( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pRandomData, CK_ULONG ulRandomLen ); 04510 04511 04522 CK_RV C_GetFunctionStatus( CK_SESSION_HANDLE hSession); 04523 04524 04535 CK_RV C_CancelFunction( CK_SESSION_HANDLE hSession); 04536 04537 04544 typedef CK_ULONG CK_RSA_PKCS_MGF_TYPE; 04545 04546 04548 typedef CK_RSA_PKCS_MGF_TYPE CK_PTR CK_RSA_PKCS_MGF_TYPE_PTR; 04555 typedef CK_ULONG CK_RSA_PKCS_OAEP_SOURCE_TYPE; 04556 04557 04559 typedef CK_RSA_PKCS_OAEP_SOURCE_TYPE CK_PTR CK_RSA_PKCS_OAEP_SOURCE_TYPE_PTR; 04560 04561 04580 typedef struct CK_RSA_PKCS_OAEP_PARAMS { 04582 CK_MECHANISM_TYPE hashAlg; 04584 CK_RSA_PKCS_OAEP_MGF_TYPE mgf; 04586 CK_RSA_PKCS_OAEP_SOURCE_TYPE source; 04588 CK_VOID_PTR pSourceData; 04590 CK_ULONG ulSourceDataLen; 04591 } CK_RSA_PKCS_OAEP_PARAMS; 04592 04593 04595 typedef CK_RSA_PKCS_OAEP_PARAMS CK_PTR CK_RSA_PKCS_OAEP_PARAMS_PTR; 04596 04597 04628 typedef struct CK_KEA_DERIVE_PARAMS { 04630 CK_BBOOL isSender; 04632 CK_ULONG ulRandomLen; 04634 CK_BYTE_PTR pRandomA; 04636 CK_BYTE_PTR pRandomB; 04638 CK_ULONG ulPublicDataLen; 04640 CK_BYTE_PTR pPublicData; 04641 } CK_KEA_DERIVE_PARAMS; 04642 04643 04645 typedef CK_KEA_DERIVE_PARAMS CK_PTR CK_KEA_DERIVE_PARAMS_PTR; 04646 04647 04656 typedef CK_ULONG CK_RC2_PARAMS; 04657 04658 04660 typedef CK_RC2_PARAMS CK_PTR CK_RC2_PARAMS_PTR; 04661 04662 04687 typedef struct CK_RC2_CBC_PARAMS { 04689 CK_ULONG ulEffectiveBits; 04691 CK_BYTE iv[8]; 04692 } CK_RC2_CBC_PARAMS; 04693 04694 04696 typedef CK_RC2_CBC_PARAMS CK_PTR CK_RC2_CBC_PARAMS_PTR; 04697 04698 04714 typedef struct CK_RC2_MAC_GENERAL_PARAMS { 04716 CK_ULONG ulEffectiveBits; 04718 CK_ULONG ulMacLength; 04719 } CK_RC2_MAC_GENERAL_PARAMS; 04720 04721 04723 typedef CK_RC2_MAC_GENERAL_PARAMS CK_PTR CK_RC2_MAC_GENERAL_PARAMS_PTR; 04724 04725 04750 typedef struct CK_RC5_PARAMS { 04752 CK_ULONG ulWordsize; 04754 CK_ULONG ulRounds; 04755 } CK_RC5_PARAMS; 04756 04757 04759 typedef CK_RC5_PARAMS CK_PTR CK_RC5_PARAMS_PTR; 04760 04761 04788 typedef struct CK_RC5_CBC_PARAMS { 04790 CK_ULONG ulWordsize; 04792 CK_ULONG ulRounds; 04794 CK_BYTE_PTR pIv; 04796 CK_ULONG ulIvLen; 04797 } CK_RC5_CBC_PARAMS; 04798 04799 04801 typedef CK_RC5_CBC_PARAMS CK_PTR CK_RC5_CBC_PARAMS_PTR; 04802 04803 04820 typedef struct CK_RC5_MAC_GENERAL_PARAMS { 04822 CK_ULONG ulWordsize; 04824 CK_ULONG ulRounds; 04826 CK_ULONG ulMacLength; 04827 } CK_RC5_MAC_GENERAL_PARAMS; 04828 04829 04831 typedef CK_RC5_MAC_GENERAL_PARAMS CK_PTR CK_RC5_MAC_GENERAL_PARAMS_PTR; 04839 typedef CK_ULONG CK_MAC_GENERAL_PARAMS; 04840 04841 04843 typedef CK_MAC_GENERAL_PARAMS CK_PTR CK_MAC_GENERAL_PARAMS_PTR; 04844 04845 04879 typedef struct CK_SKIPJACK_PRIVATE_WRAP_PARAMS { 04881 CK_ULONG ulPasswordLen; 04883 CK_BYTE_PTR pPassword; 04885 CK_ULONG ulPublicDataLen; 04887 CK_BYTE_PTR pPublicData; 04889 CK_ULONG ulPandGLen; 04891 CK_ULONG ulQLen; 04893 CK_ULONG ulRandomLen; 04895 CK_BYTE_PTR pRandomA; 04897 CK_BYTE_PTR pPrimeP; 04899 CK_BYTE_PTR pBaseG; 04901 CK_BYTE_PTR pSubprimeQ; 04902 } CK_SKIPJACK_PRIVATE_WRAP_PARAMS; 04903 04904 04906 typedef CK_PRIVATE_WRAP_PARAMS CK_PTR CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR; 04907 04908 04936 typedef struct CK_SKIPJACK_RELAYX_PARAMS { 04938 CK_ULONG ulOldWrappedXLen; 04940 CK_BYTE_PTR pOldWrappedX; 04942 CK_ULONG ulOldPasswordLen; 04944 CK_BYTE_PTR pOldPassword; 04946 CK_ULONG ulOldPublicDataLen; 04948 CK_BYTE_PTR pOldPublicData; 04950 CK_ULONG ulOldRandomLen; 04952 CK_BYTE_PTR pOldRandomA; 04954 CK_ULONG ulNewPasswordLen; 04956 CK_BYTE_PTR pNewPassword; 04958 CK_ULONG ulNewPublicDataLen; 04960 CK_BYTE_PTR pNewPublicData; 04962 CK_ULONG ulNewRandomLen; 04964 CK_BYTE_PTR pNewRandomA; 04965 } CK_SKIPJACK_RELAYX_PARAMS; 04966 04967 04969 typedef CK_SKIPJACK_RELAYX_PARAMS CK_PTR CK_SKIPJACK_RELAYX_PARAMS_PTR; 04970 04971 04990 typedef struct CK_PBE_PARAMS { 04992 CK_CHAR_PTR pInitVector; 04994 CK_CHAR_PTR pPassword; 04996 CK_ULONG ulPasswordLen; 04998 CK_CHAR_PTR pSalt; 05000 CK_ULONG ulSaltLen; 05002 CK_ULONG ulIteration; 05003 } CK_PBE_PARAMS; 05004 05005 05007 typedef CK_PBE_PARAMS CK_PTR CK_PBE_PARAMS_PTR; 05014 typedef CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE; 05015 05016 05018 typedef CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE CK_PTR CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE_PTR; 05025 typedef CK_ULONG CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE; 05026 05027 05029 typedef CK_PKCS5_PBKD2_SALT_SOURCE_TYPE CK_PTR CK_PKCS5_PBKD2_SALT_SOURCE_TYPE_PTR; 05030 05031 05052 typedef struct CK_PKCS5_PBKD2_PARAMS { 05054 CK_PKCS5_PBKD2_SALT_SOURCE_TYPE saltSource; 05056 CK_VOID_PTR pSaltSourceData; 05058 CK_ULONG ulSaltSourceDataLen; 05060 CK_ULONG iterations; 05062 CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE prf; 05064 CK_VOID_PTR pPrfData; 05066 CK_ULONG ulPrfDataLen; 05067 } CK_PKCS5_PBKD2_PARAMS; 05068 05069 05071 typedef CK_PKCS5_PBKD2_PARAMS CK_PTR CK_PKCS5_PBKD2_PARAMS_PTR; 05072 05073 05090 typedef struct CK_KEY_WRAP_SET_OAEP_PARAMS { 05092 CK_BYTE bBC; 05094 CK_BYTE_PTR pX; 05096 CK_ULONG ulXLen; 05097 } CK_KEY_WRAP_SET_OAEP_PARAMS; 05098 05099 05101 typedef CK_KEY_WRAP_SET_OAEP_PARAMS CK_PTR CK_KEY_WRAP_SET_OAEP_PARAMS_PTR; 05102 05103 05127 typedef struct CK_SSL3_RANDOM_DATA { 05129 CK_BYTE_PTR pClientRandom; 05131 CK_ULONG ulClientRandomLen; 05133 CK_BYTE_PTR pServerRandom; 05135 CK_ULONG ulServerRandomLen; 05136 } CK_SSL3_RANDOM_DATA; 05137 05138 05139 05140 05171 typedef struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS { 05173 CK_SSL3_RANDOM_DATA RandomInfo; 05175 CK_VERSION_PTR pVersion; 05176 } CK_SSL3_MASTER_KEY_DERIVE_PARAMS; 05177 05178 05180 typedef CK_SSL3_MASTER_KEY_DERIVE_PARAMS CK_PTR CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR; 05181 05182 05211 typedef struct CK_SSL3_KEY_MAT_OUT { 05213 CK_OBJECT_HANDLE hClientMacSecret; 05215 CK_OBJECT_HANDLE hServerMacSecret; 05217 CK_OBJECT_HANDLE hClientKey; 05219 CK_OBJECT_HANDLE hServerKey; 05221 CK_BYTE_PTR pIVClient; 05223 CK_BYTE_PTR pIVServer; 05224 } CK_SSL3_KEY_MAT_OUT; 05225 05226 05228 typedef CK_SSL3_KEY_MAT_OUT CK_PTR CK_SSL3_KEY_MAT_OUT_PTR; 05229 05230 05250 typedef struct CK_SSL3_KEY_MAT_PARAMS { 05252 CK_ULONG ulMacSizeInBits; 05254 CK_ULONG ulKeySizeInBits; 05256 CK_ULONG ulIVSizeInBits; 05258 CK_BBOOL bIsExport; 05260 CK_SSL3_RANDOM_DATA RandomInfo; 05262 CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial; 05263 } CK_SSL3_KEY_MAT_PARAMS; 05264 05265 05267 typedef CK_SSL3_KEY_MAT_PARAMS CK_PTR CK_SSL3_KEY_MAT_PARAMS_PTR; 05268 05269 05292 typedef struct CK_KEY_DERIVATION_STRING_DATA { 05294 CK_BYTE_PTR pData; 05296 CK_ULONG ulLen; 05297 } CK_KEY_DERIVATION_STRING_DATA; 05298 05299 05308 typedef CK_ULONG CK_EXTRACT_PARAMS; 05309 05310 05312 typedef CK_EXTRACT_PARAMS CK_PTR CK_EXTRACT_PARAMS_PTR; 05313 05314