![]() | 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 00196 typedef struct CK_VERSION { 00198 CK_BYTE major; 00200 CK_BYTE minor; 00201 } CK_VERSION; 00202 00203 00205 typedef CK_VERSION CK_PTR CK_VERSION_PTR; 00206 00207 00249 typedef struct CK_INFO { 00251 CK_VERSION cryptokiVersion; 00253 CK_UTF8CHAR manufacturerID[32]; 00255 CK_FLAGS flags; 00257 CK_UTF8CHAR libraryDescription[32]; 00259 CK_VERSION libraryVersion; 00260 } CK_INFO; 00261 00262 00264 typedef CK_INFO CK_PTR CK_INFO_PTR; 00270 typedef CK_ULONG CK_NOTIFICATION; 00271 00272 00278 typedef CK_ULONG CK_SLOT_ID; 00279 00280 00282 typedef CK_SLOT_ID CK_PTR CK_SLOT_ID_PTR; 00283 00284 00343 typedef struct CK_SLOT_INFO { 00345 CK_UTF8CHAR slotDescription[64]; 00347 CK_UTF8CHAR manufacturerID[32]; 00349 CK_FLAGS flags; 00351 CK_VERSION hardwareVersion; 00353 CK_VERSION firmwareVersion; 00354 } CK_SLOT_INFO; 00355 00356 00358 #define CKF_TOKEN_PRESENT 0x00000001 00359 00361 #define CKF_REMOVABLE_DEVICE 0x00000002 00362 00364 #define CKF_HW_SLOT 0x00000004 00365 00367 typedef CK_SLOT_INFO CK_PTR CK_SLOT_INFO_PTR; 00368 00369 00588 typedef struct CK_TOKEN_INFO { 00590 CK_UTF8CHAR label[32]; 00592 CK_UTF8CHAR manufacturerID[32]; 00594 CK_UTF8CHAR model[16]; 00596 CK_CHAR serialNumber[16]; 00598 CK_FLAGS flags; 00600 CK_ULONG ulMaxSessionCount; 00602 CK_ULONG ulSessionCount; 00604 CK_ULONG ulMaxRwSessionCount; 00606 CK_ULONG ulRwSessionCount; 00608 CK_ULONG ulMaxPinLen; 00610 CK_ULONG ulMinPinLen; 00612 CK_ULONG ulTotalPublicMemory; 00614 CK_ULONG ulFreePublicMemory; 00616 CK_ULONG ulTotalPrivateMemory; 00618 CK_ULONG ulFreePrivateMemory; 00620 CK_VERSION hardwareVersion; 00622 CK_VERSION firmwareVersion; 00624 CK_CHAR utcTime[16]; 00625 } CK_TOKEN_INFO; 00626 00627 00629 #define CKF_RNG 0x00000001 00630 00632 #define CKF_WRITE_PROTECTED 0x00000002 00633 00635 #define CKF_LOGIN_REQUIRED 0x00000004 00636 00638 #define CKF_USER_PIN_INITIALIZED 0x00000008 00639 00641 #define CKF_RESTORE_KEY_NOT_NEEDED 0x00000020 00642 00644 #define CKF_CLOCK_ON_TOKEN 0x00000040 00645 00647 #define CKF_PROTECTED_AUTHENTICATION_PATH 0x00000100 00648 00650 #define CKF_DUAL_CRYPTO_OPERATIONS 0x00000200 00651 00653 #define CKF_TOKEN_INITIALIZED 0x00000400 00654 00656 #define CKF_SECONDARY_AUTHENTICATION 0x00000800 00657 00659 #define CKF_USER_PIN_COUNT_LOW 0x00010000 00660 00662 #define CKF_USER_PIN_FINAL_TRY 0x00020000 00663 00665 #define CKF_USER_PIN_LOCKED 0x00040000 00666 00668 #define CKF_USER_PIN_TO_BE_CHANGED 0x00080000 00669 00671 #define CKF_SO_PIN_COUNT_LOW 0x00100000 00672 00674 #define CKF_SO_PIN_FINAL_TRY 0x00200000 00675 00677 #define CKF_SO_PIN_LOCKED 0x00400000 00678 00680 #define CKF_SO_PIN_TO_BE_CHANGED 0x00800000 00681 00683 #define CKF_ERROR_STATE 0x01000000 00684 00685 00686 00688 typedef CK_TOKEN_INFO CK_PTR CK_TOKEN_INFO_PTR; 00694 typedef CK_ULONG CK_SESSION_HANDLE; 00695 00696 00698 typedef CK_SESSION_HANDLE CK_PTR CK_SESSION_HANDLE_PTR; 00705 typedef CK_ULONG CK_USER_TYPE; 00706 00707 00714 typedef CK_ULONG CK_STATE; 00715 00716 00717 00718 00758 typedef struct CK_SESSION_INFO { 00760 CK_SLOT_ID slotID; 00762 CK_STATE state; 00764 CK_FLAGS flags; 00766 CK_ULONG ulDeviceError; 00767 } CK_SESSION_INFO; 00768 00769 00771 #define CKF_RW_SESSION 0x00000002 00772 00774 #define CKF_SERIAL_SESSION 0x00000004 00775 00777 typedef CK_SESSION_INFO CK_PTR CK_SESSION_INFO_PTR; 00783 typedef CK_ULONG CK_OBJECT_HANDLE; 00784 00785 00787 typedef CK_OBJECT_HANDLE CK_PTR CK_OBJECT_HANDLE_PTR; 00793 typedef CK_ULONG CK_OBJECT_CLASS; 00794 00795 00797 typedef CK_OBJECT_CLASS CK_PTR CK_OBJECT_CLASS_PTR; 00803 typedef CK_ULONG CK_HW_FEATURE_TYPE; 00804 00805 00811 typedef CK_ULONG CK_KEY_TYPE; 00812 00813 00819 typedef CK_ULONG CK_CERTIFICATE_TYPE; 00820 00821 00827 typedef CK_ULONG CK_ATTRIBUTE_TYPE; 00828 00829 00830 00831 00862 typedef struct CK_ATTRIBUTE { 00864 CK_ATTRIBUTE_TYPE type; 00866 CK_VOID_PTR pValue; 00868 CK_ULONG ulValueLen; 00869 } CK_ATTRIBUTE; 00870 00871 00873 typedef CK_ATTRIBUTE CK_PTR CK_ATTRIBUTE_PTR; 00874 00875 00899 typedef struct CK_DATE { 00901 CK_CHAR year[4]; 00903 CK_CHAR month[2]; 00905 CK_CHAR day[2]; 00906 } CK_DATE; 00907 00908 00914 typedef CK_ULONG CK_MECHANISM_TYPE; 00915 00916 00918 typedef CK_MECHANISM_TYPE CK_PTR CK_MECHANISM_TYPE_PTR; 00919 00920 00946 typedef struct CK_MECHANISM { 00948 CK_MECHANISM_TYPE mechanism; 00950 CK_VOID_PTR pParameter; 00952 CK_ULONG ulParameterLen; 00953 } CK_MECHANISM; 00954 00955 00957 typedef CK_MECHANISM CK_PTR CK_MECHANISM_PTR; 00958 00959 01061 typedef struct CK_MECHANISM_INFO { 01063 CK_ULONG ulMinKeySize; 01065 CK_ULONG ulMaxKeySize; 01067 CK_FLAGS flags; 01068 } CK_MECHANISM_INFO; 01069 01070 01072 #define CKF_HW 0x00000001 01073 01075 #define CKF_ENCRYPT 0x00000100 01076 01078 #define CKF_DECRYPT 0x00000200 01079 01081 #define CKF_DIGEST 0x00000400 01082 01084 #define CKF_SIGN 0x00000800 01085 01087 #define CKF_SIGN_RECOVER 0x00001000 01088 01090 #define CKF_VERIFY 0x00002000 01091 01093 #define CKF_VERIFY_RECOVER 0x00004000 01094 01096 #define CKF_GENERATE 0x00008000 01097 01099 #define CKF_GENERATE_KEY_PAIR 0x00010000 01100 01102 #define CKF_WRAP 0x00020000 01103 01105 #define CKF_UNWRAP 0x00040000 01106 01108 #define CKF_DERIVE 0x00080000 01109 01111 #define CKF_EXTENSION 0x80000000 01112 01114 typedef CK_MECHANISM_INFO CK_PTR CK_MECHANISM_INFO_PTR; 01120 typedef CK_ULONG CK_RV; 01121 01122 01128 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_NOTIFY)( 01129 CK_SESSION_HANDLE hSession, 01130 CK_NOTIFICATION event, 01131 CK_VOID_PTR pApplication 01132 ); 01133 01134 01135 01136 01156 typedef struct CK_FUNCTION_LIST { 01157 CK_VERSION version; 01158 CK_C_Initialize C_Initialize; 01159 CK_C_Finalize C_Finalize; 01160 CK_C_GetInfo C_GetInfo; 01161 CK_C_GetFunctionList C_GetFunctionList; 01162 CK_C_GetSlotList C_GetSlotList; 01163 CK_C_GetSlotInfo C_GetSlotInfo; 01164 CK_C_GetTokenInfo C_GetTokenInfo; 01165 CK_C_GetMechanismList C_GetMechanismList; 01166 CK_C_GetMechanismInfo C_GetMechanismInfo; 01167 CK_C_InitToken C_InitToken; 01168 CK_C_InitPIN C_InitPIN; 01169 CK_C_SetPIN C_SetPIN; 01170 CK_C_OpenSession C_OpenSession; 01171 CK_C_CloseSession C_CloseSession; 01172 CK_C_CloseAllSessions C_CloseAllSessions; 01173 CK_C_GetSessionInfo C_GetSessionInfo; 01174 CK_C_GetOperationState C_GetOperationState; 01175 CK_C_SetOperationState C_SetOperationState; 01176 CK_C_Login C_Login; 01177 CK_C_Logout C_Logout; 01178 CK_C_CreateObject C_CreateObject; 01179 CK_C_CopyObject C_CopyObject; 01180 CK_C_DestroyObject C_DestroyObject; 01181 CK_C_GetObjectSize C_GetObjectSize; 01182 CK_C_GetAttributeValue C_GetAttributeValue; 01183 CK_C_SetAttributeValue C_SetAttributeValue; 01184 CK_C_FindObjectsInit C_FindObjectsInit; 01185 CK_C_FindObjects C_FindObjects; 01186 CK_C_FindObjectsFinal C_FindObjectsFinal; 01187 CK_C_EncryptInit C_EncryptInit; 01188 CK_C_Encrypt C_Encrypt; 01189 CK_C_EncryptUpdate C_EncryptUpdate; 01190 CK_C_EncryptFinal C_EncryptFinal; 01191 CK_C_DecryptInit C_DecryptInit; 01192 CK_C_Decrypt C_Decrypt; 01193 CK_C_DecryptUpdate C_DecryptUpdate; 01194 CK_C_DecryptFinal C_DecryptFinal; 01195 CK_C_DigestInit C_DigestInit; 01196 CK_C_Digest C_Digest; 01197 CK_C_DigestUpdate C_DigestUpdate; 01198 CK_C_DigestKey C_DigestKey; 01199 CK_C_DigestFinal C_DigestFinal; 01200 CK_C_SignInit C_SignInit; 01201 CK_C_Sign C_Sign; 01202 CK_C_SignUpdate C_SignUpdate; 01203 CK_C_SignFinal C_SignFinal; 01204 CK_C_SignRecoverInit C_SignRecoverInit; 01205 CK_C_SignRecover C_SignRecover; 01206 CK_C_VerifyInit C_VerifyInit; 01207 CK_C_Verify C_Verify; 01208 CK_C_VerifyUpdate C_VerifyUpdate; 01209 CK_C_VerifyFinal C_VerifyFinal; 01210 CK_C_VerifyRecoverInit C_VerifyRecoverInit; 01211 CK_C_VerifyRecover C_VerifyRecover; 01212 CK_C_DigestEncryptUpdate C_DigestEncryptUpdate; 01213 CK_C_DecryptDigestUpdate C_DecryptDigestUpdate; 01214 CK_C_SignEncryptUpdate C_SignEncryptUpdate; 01215 CK_C_DecryptVerifyUpdate C_DecryptVerifyUpdate; 01216 CK_C_GenerateKey C_GenerateKey; 01217 CK_C_GenerateKeyPair C_GenerateKeyPair; 01218 CK_C_WrapKey C_WrapKey; 01219 CK_C_UnwrapKey C_UnwrapKey; 01220 CK_C_DeriveKey C_DeriveKey; 01221 CK_C_SeedRandom C_SeedRandom; 01222 CK_C_GenerateRandom C_GenerateRandom; 01223 CK_C_GetFunctionStatus C_GetFunctionStatus; 01224 CK_C_CancelFunction C_CancelFunction; 01225 CK_C_WaitForSlotEvent C_WaitForSlotEvent; 01226 } CK_FUNCTION_LIST; 01227 01228 01230 typedef CK_FUNCTION_LIST CK_PTR CK_FUNCTION_LIST_PTR; 01232 typedef CK_FUNCTION_LIST_PTR CK_PTR CK_FUNCTION_LIST_PTR_PTR; 01239 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_CREATEMUTEX)( 01240 CK_VOID_PTR_PTR ppMutex 01241 ); 01242 01243 01249 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_DESTROYMUTEX)( 01250 CK_VOID_PTR pMutex 01251 ); 01252 01253 01280 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_LOCKMUTEX)( 01281 CK_VOID_PTR pMutex 01282 ); 01283 01284 01288 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_UNLOCKMUTEX)( 01289 CK_VOID_PTR pMutex 01290 ); 01291 01292 01293 01294 01341 typedef struct CK_C_INITIALIZE_ARGS { 01343 CK_CREATEMUTEX CreateMutex; 01345 CK_DESTROYMUTEX DestroyMutex; 01347 CK_LOCKMUTEX LockMutex; 01349 CK_UNLOCKMUTEX UnlockMutex; 01351 CK_FLAGS flags; 01353 CK_VOID_PTR pReserved; 01354 } CK_C_INITIALIZE_ARGS; 01355 01356 01358 #define CKF_LIBRARY_CANT_CREATE_OS_THREADS 0x00000001 01359 01361 #define CKF_OS_LOCKING_OK 0x00000002 01362 01364 typedef CK_C_INITIALIZE_ARGS CK_PTR CK_C_INITIALIZE_ARGS_PTR; 01366 #define CKA_CLASS 01367 01369 #define CKA_HW_FEATURE_TYPE 01370 01372 #define CKA_VALUE 01373 01375 #define CKA_RESET_ON_INIT 01376 01378 #define CKA_HAS_RESET 01379 01381 #define CKA_VALUE 01382 01384 #define CKA_PIXEL_X 01385 01387 #define CKA_PIXEL_Y 01388 01390 #define CKA_RESOLUTION 01391 01393 #define CKA_CHAR_ROWS 01394 01396 #define CKA_CHAR_COLUMNS 01397 01399 #define CKA_COLOR 01400 01402 #define CKA_BITS_PER_PIXEL 01403 01405 #define CKA_CHAR_SETS 01406 01408 #define CKA_ENCODING_METHODS 01409 01411 #define CKA_MIME_TYPES 01412 01414 #define CKA_TOKEN 01415 01417 #define CKA_PRIVATE 01418 01420 #define CKA_MODIFIABLE 01421 01423 #define CKA_LABEL 01424 01426 #define CKA_COPYABLE 01427 01429 #define CKA_APPLICATION 01430 01432 #define CKA_OBJECT_ID 01433 01435 #define CKA_VALUE 01436 01437 01438 01440 #define CKA_CERTIFICATE_TYPE 01441 01443 #define CKA_TRUSTED 01444 01446 #define CKA_CERTIFICATE_CATEGORY 01447 01449 #define CKA_CHECK_VALUE 01450 01452 #define CKA_START_DATE 01453 01455 #define CKA_END_DATE 01456 01458 #define CKA_SUBJECT 01459 01461 #define CKA_ID 01462 01464 #define CKA_ISSUER 01465 01467 #define CKA_SERIAL_NUMBER 01468 01470 #define CKA_VALUE 01471 01473 #define CKA_URL 01474 01476 #define CKA_HASH_OF_SUBJECT_PUBLIC_KEY 01477 01479 #define CKA_HASH_OF_ISSUER_PUBLIC_KEY 01480 01482 #define CKA_JAVA_MIDP_SECURITY_DOMAIN 01483 01485 #define CKA_NAME_HASH_ALGORITHM 01486 01487 01488 01490 #define CKA_SUBJECT 01491 01493 #define CKA_ISSUER 01494 01496 #define CKA_VALUE 01497 01499 #define CKA_URL 01500 01502 #define CKA_HASH_OF_SUBJECT_PUBLIC_KEY 01503 01505 #define CKA_HASH_OF_ISSUER_PUBLIC_KEY 01506 01508 #define CKA_NAME_HASH_ALGORITHM 01509 01510 01511 01513 #define CKA_OWNER 01514 01516 #define CKA_AC_ISSUER 01517 01519 #define CKA_SERIAL_NUMBER 01520 01522 #define CKA_ATTR_TYPES 01523 01525 #define CKA_VALUE 01526 01527 01528 01530 #define CKA_KEY_TYPE 01531 01533 #define CKA_ID 01534 01536 #define CKA_START_DATE 01537 01539 #define CKA_END_DATE 01540 01542 #define CKA_DERIVE 01543 01545 #define CKA_LOCAL 01546 01548 #define CKA_KEY_GEN_MECHANISM 01549 01551 #define CKA_ALLOWED_MECHANISMS 01552 01554 #define CKA_SUBJECT 01555 01557 #define CKA_ENCRYPT 01558 01560 #define CKA_VERIFY 01561 01563 #define CKA_VERIFY_RECOVER 01564 01566 #define CKA_WRAP 01567 01569 #define CKA_TRUSTED 01570 01572 #define CKA_WRAP_TEMPLATE 01573 01575 #define CKA_SUBJECT 01576 01578 #define CKA_SENSITIVE 01579 01581 #define CKA_DECRYPT 01582 01584 #define CKA_SIGN 01585 01587 #define CKA_SIGN_RECOVER 01588 01590 #define CKA_UNWRAP 01591 01593 #define CKA_EXTRACTABLE 01594 01596 #define CKA_ALWAYS_SENSITIVE 01597 01599 #define CKA_NEVER_EXTRACTABLE 01600 01602 #define CKA_WRAP_WITH_TRUSTED 01603 01605 #define CKA_UNWRAP_TEMPLATE 01606 01608 #define CKA_ALWAYS_AUTHENTICATE 01609 01611 #define CKA_SENSITIVE 01612 01614 #define CKA_ENCRYPT 01615 01617 #define CKA_DECRYPT 01618 01620 #define CKA_SIGN 01621 01623 #define CKA_VERIFY 01624 01626 #define CKA_WRAP 01627 01629 #define CKA_UNWRAP 01630 01632 #define CKA_EXTRACTABLE 01633 01635 #define CKA_ALWAYS_SENSITIVE 01636 01638 #define CKA_NEVER_EXTRACTABLE 01639 01641 #define CKA_CHECK_VALUE 01642 01644 #define CKA_WRAP_WITH_TRUSTED 01645 01647 #define CKA_TRUSTED 01648 01650 #define CKA_WRAP_TEMPLATE 01651 01653 #define CKA_UNWRAP_TEMPLATE 01654 01656 #define CKA_KEY_TYPE 01657 01659 #define CKA_LOCAL 01660 01662 #define CKA_MECHANISM_TYPE 01663 01665 #define CKR_GENERAL_ERROR 01666 01668 #define CKR_HOST_MEMORY 01669 01671 #define CKR_FUNCTION_FAILED 01672 01674 #define CKR_OK 01675 01677 #define CKR_SESSION_HANDLE_INVALID 01678 01680 #define CKR_DEVICE_REMOVED 01681 01683 #define CKR_SESSION_CLOSED 01684 01686 #define CKR_DEVICE_MEMORY 01687 01689 #define CKR_DEVICE_ERROR 01690 01692 #define CKR_TOKEN_NOT_PRESENT 01693 01695 #define CKR_DEVICE_REMOVED 01696 01698 #define CKR_CANCEL 01699 01701 #define CKR_MUTEX_BAD 01702 01704 #define CKR_MUTEX_NOT_LOCKED 01705 01707 #define CKR_ARGUMENTS_BAD 01708 01710 #define CKR_ATTRIBUTE_READ_ONLY 01711 01713 #define CKR_ATTRIBUTE_SENSITIVE 01714 01716 #define CKR_ATTRIBUTE_TYPE_INVALID 01717 01719 #define CKR_ATTRIBUTE_VALUE_INVALID 01720 01722 #define CKR_BUFFER_TOO_SMALL 01723 01725 #define CKR_CANT_LOCK 01726 01728 #define CKR_CRYPTOKI_ALREADY_INITIALIZED 01729 01731 #define CKR_CRYPTOKI_NOT_INITIALIZED 01732 01734 #define CKR_DATA_INVALID 01735 01737 #define CKR_DATA_LEN_RANGE 01738 01740 #define CKR_DOMAIN_PARAMS_INVALID 01741 01743 #define CKR_ENCRYPTED_DATA_INVALID 01744 01746 #define CKR_ENCRYPTED_DATA_LEN_RANGE 01747 01749 #define CKR_EXCEEDED_MAX_ITERATIONS 01750 01752 #define CKR_FIPS_SELF_TEST_FAILED 01753 01755 #define CKR_FUNCTION_CANCELED 01756 01758 #define CKR_FUNCTION_NOT_PARALLEL 01759 01761 #define CKR_FUNCTION_NOT_SUPPORTED 01762 01764 #define CKR_FUNCTION_REJECTED 01765 01767 #define CKR_INFORMATION_SENSITIVE 01768 01770 #define CKR_KEY_CHANGED 01771 01773 #define CKR_KEY_FUNCTION_NOT_PERMITTED 01774 01776 #define CKR_KEY_HANDLE_INVALID 01777 01779 #define CKR_KEY_INDIGESTIBLE 01780 01782 #define CKR_KEY_NEEDED 01783 01785 #define CKR_KEY_NOT_NEEDED 01786 01788 #define CKR_KEY_NOT_WRAPPABLE 01789 01791 #define CKR_KEY_SIZE_RANGE 01792 01794 #define CKR_KEY_TYPE_INCONSISTENT 01795 01797 #define CKR_KEY_UNEXTRACTABLE 01798 01800 #define CKR_LIBRARY_LOAD_FAILED 01801 01803 #define CKR_MECHANISM_INVALID 01804 01806 #define CKR_MECHANISM_PARAM_INVALID 01807 01809 #define CKR_NEED_TO_CREATE_THREADS 01810 01812 #define CKR_NO_EVENT 01813 01815 #define CKR_OBJECT_HANDLE_INVALID 01816 01818 #define CKR_OPERATION_ACTIVE 01819 01821 #define CKR_OPERATION_NOT_INITIALIZED 01822 01824 #define CKR_PIN_EXPIRED 01825 01827 #define CKR_PIN_INCORRECT 01828 01830 #define CKR_PIN_INVALID 01831 01833 #define CKR_PIN_LEN_RANGE 01834 01836 #define CKR_PIN_LOCKED 01837 01839 #define CKR_PIN_TOO_WEAK 01840 01842 #define CKR_PUBLIC_KEY_INVALID 01843 01845 #define CKR_RANDOM_NO_RNG 01846 01848 #define CKR_RANDOM_SEED_NOT_SUPPORTED 01849 01851 #define CKR_SAVED_STATE_INVALID 01852 01854 #define CKR_SESSION_COUNT 01855 01857 #define CKR_SESSION_EXISTS 01858 01860 #define CKR_SESSION_PARALLEL_NOT_SUPPORTED 01861 01863 #define CKR_SESSION_READ_ONLY 01864 01866 #define CKR_SESSION_READ_ONLY_EXISTS 01867 01869 #define CKR_SESSION_READ_WRITE_SO_EXISTS 01870 01872 #define CKR_SIGNATURE_LEN_RANGE 01873 01875 #define CKR_SIGNATURE_INVALID 01876 01878 #define CKR_SLOT_ID_INVALID 01879 01881 #define CKR_STATE_UNSAVEABLE 01882 01884 #define CKR_TEMPLATE_INCOMPLETE 01885 01887 #define CKR_TEMPLATE_INCONSISTENT 01888 01890 #define CKR_TOKEN_NOT_RECOGNIZED 01891 01893 #define CKR_TOKEN_WRITE_PROTECTED 01894 01896 #define CKR_UNWRAPPING_KEY_HANDLE_INVALID 01897 01899 #define CKR_UNWRAPPING_KEY_SIZE_RANGE 01900 01902 #define CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT 01903 01905 #define CKR_USER_ALREADY_LOGGED_IN 01906 01908 #define CKR_USER_ANOTHER_ALREADY_LOGGED_IN 01909 01911 #define CKR_USER_NOT_LOGGED_IN 01912 01914 #define CKR_USER_PIN_NOT_INITIALIZED 01915 01917 #define CKR_USER_TOO_MANY_TYPES 01918 01920 #define CKR_USER_TYPE_INVALID 01921 01923 #define CKR_WRAPPED_KEY_INVALID 01924 01926 #define CKR_WRAPPED_KEY_LEN_RANGE 01927 01929 #define CKR_WRAPPING_KEY_HANDLE_INVALID 01930 01932 #define CKR_WRAPPING_KEY_SIZE_RANGE 01933 01935 #define CKR_WRAPPING_KEY_TYPE_INCONSISTENT 01936 02021 CK_RV C_Initialize( CK_VOID_PTR pInitArgs); 02022 02023 02054 CK_RV C_Finalize( CK_VOID_PTR pReserved); 02055 02056 02070 CK_RV C_GetInfo( CK_INFO_PTR pInfo); 02071 02072 02093 CK_RV C_GetFunctionList( CK_FUNCTION_LIST_PTR_PTR ppFunctionList); 02094 02095 02148 CK_RV C_GetSlotList( CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, CK_ULONG_PTR pulCount); 02149 02150 02164 CK_RV C_GetSlotInfo( CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo); 02165 02166 02183 CK_RV C_GetTokenInfo( CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo); 02184 02185 02240 CK_RV C_WaitForSlotEvent( CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, CK_VOID_PTR pReserved); 02241 02242 02279 CK_RV C_GetMechanismList( CK_SLOT_ID slotID, CK_MECHANISM_TYPE_PTR pMechanismList, CK_ULONG_PTR pulCount); 02280 02281 02299 CK_RV C_GetMechanismInfo( CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, CK_MECHANISM_INFO_PTR pInfo); 02300 02301 02371 CK_RV C_InitToken( CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen, CK_UTF8CHAR_PTR pLabel); 02372 02373 02412 CK_RV C_InitPIN( CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen); 02413 02414 02457 CK_RV C_SetPIN( CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pOldPin, CK_ULONG ulOldLen, CK_UTF8CHAR_PTR pNewPin, CK_ULONG ulNewLen); 02458 02459 02506 CK_RV C_OpenSession( CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession); 02507 02508 02546 CK_RV C_CloseSession( CK_SESSION_HANDLE hSession); 02547 02548 02575 CK_RV C_CloseAllSessions( CK_SLOT_ID slotID); 02576 02577 02594 CK_RV C_GetSessionInfo( CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo); 02595 02596 02670 CK_RV C_GetOperationState( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG_PTR pulOperationStateLen); 02671 02672 02754 CK_RV C_SetOperationState( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG ulOperationStateLen, CK_OBJECT_HANDLE hEncryptionKey, CK_OBJECT_HANDLE hAuthenticationKey); 02755 02756 02814 CK_RV C_Login( CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen); 02815 02816 02848 CK_RV C_Logout( CK_SESSION_HANDLE hSession); 02849 02850 02885 CK_RV C_CreateObject( CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject); 02886 02887 02933 CK_RV C_CopyObject( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phNewObject); 02934 02935 02954 CK_RV C_DestroyObject( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject); 02955 02956 02981 CK_RV C_GetObjectSize( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ULONG_PTR pulSize); 02982 02983 03062 CK_RV C_GetAttributeValue( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount); 03063 03064 03097 CK_RV C_SetAttributeValue( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount); 03098 03099 03143 CK_RV C_FindObjectsInit( CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount); 03144 03145 03167 CK_RV C_FindObjects( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount); 03168 03169 03185 CK_RV C_FindObjectsFinal( CK_SESSION_HANDLE hSession); 03186 03187 03218 CK_RV C_EncryptInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03219 03220 03265 CK_RV C_Encrypt( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData, CK_ULONG_PTR pulEncryptedDataLen); 03266 03267 03299 CK_RV C_EncryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen); 03300 03301 03335 CK_RV C_EncryptFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastEncryptedPart, CK_ULONG_PTR pulLastEncryptedPartLen); 03336 03337 03368 CK_RV C_DecryptInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03369 03370 03413 CK_RV C_Decrypt( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedData, CK_ULONG ulEncryptedDataLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen); 03414 03415 03447 CK_RV C_DecryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen); 03448 03449 03482 CK_RV C_DecryptFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastPart, CK_ULONG_PTR pulLastPartLen); 03483 03484 03510 CK_RV C_DigestInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism); 03511 03512 03549 CK_RV C_Digest( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen); 03550 03551 03573 CK_RV C_DigestUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen); 03574 03575 03600 CK_RV C_DigestKey( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hKey); 03601 03602 03630 CK_RV C_DigestFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen); 03631 03632 03662 CK_RV C_SignInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03663 03664 03700 CK_RV C_Sign( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen); 03701 03702 03723 CK_RV C_SignUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen); 03724 03725 03754 CK_RV C_SignFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen); 03755 03756 03785 CK_RV C_SignRecoverInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03786 03787 03818 CK_RV C_SignRecover( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen); 03819 03820 03851 CK_RV C_VerifyInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03852 03853 03891 CK_RV C_Verify( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen); 03892 03893 03914 CK_RV C_VerifyUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen); 03915 03916 03947 CK_RV C_VerifyFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen); 03948 03949 03977 CK_RV C_VerifyRecoverInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03978 03979 04021 CK_RV C_VerifyRecover( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen); 04022 04023 04061 CK_RV C_DigestEncryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen); 04062 04063 04142 CK_RV C_DecryptDigestUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen); 04143 04144 04180 CK_RV C_SignEncryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen); 04181 04182 04260 CK_RV C_DecryptVerifyUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen); 04261 04262 04303 CK_RV C_GenerateKey( CK_SESSION_HANDLE hSession CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phKey); 04304 04305 04356 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); 04357 04358 04420 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); 04421 04422 04479 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); 04480 04481 04522 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); 04523 04524 04541 CK_RV C_SeedRandom( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed, CK_ULONG ulSeedLen); 04542 04543 04562 CK_RV C_GenerateRandom( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pRandomData, CK_ULONG ulRandomLen ); 04563 04564 04575 CK_RV C_GetFunctionStatus( CK_SESSION_HANDLE hSession); 04576 04577 04588 CK_RV C_CancelFunction( CK_SESSION_HANDLE hSession); 04589 04590