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 00191 typedef struct CK_VERSION { 00193 CK_BYTE major; 00195 CK_BYTE minor; 00196 } CK_VERSION; 00197 00198 00200 typedef CK_VERSION CK_PTR CK_VERSION_PTR; 00201 00202 00244 typedef struct CK_INFO { 00246 CK_VERSION cryptokiVersion; 00248 CK_UTF8CHAR manufacturerID[32]; 00250 CK_FLAGS flags; 00252 CK_UTF8CHAR libraryDescription[32]; 00254 CK_VERSION libraryVersion; 00255 } CK_INFO; 00256 00257 00259 typedef CK_INFO CK_PTR CK_INFO_PTR; 00265 typedef CK_ULONG CK_NOTIFICATION; 00266 00267 00273 typedef CK_ULONG CK_SLOT_ID; 00274 00275 00277 typedef CK_SLOT_ID CK_PTR CK_SLOT_ID_PTR; 00278 00279 00338 typedef struct CK_SLOT_INFO { 00340 CK_UTF8CHAR slotDescription[64]; 00342 CK_UTF8CHAR manufacturerID[32]; 00344 CK_FLAGS flags; 00346 CK_VERSION hardwareVersion; 00348 CK_VERSION firmwareVersion; 00349 } CK_SLOT_INFO; 00350 00351 00353 #define CKF_TOKEN_PRESENT 0x00000001 00354 00356 #define CKF_REMOVABLE_DEVICE 0x00000002 00357 00359 #define CKF_HW_SLOT 0x00000004 00360 00362 typedef CK_SLOT_INFO CK_PTR CK_SLOT_INFO_PTR; 00363 00364 00575 typedef struct CK_TOKEN_INFO { 00577 CK_UTF8CHAR label[32]; 00579 CK_UTF8CHAR manufacturerID[32]; 00581 CK_UTF8CHAR model[16]; 00583 CK_CHAR serialNumber[16]; 00585 CK_FLAGS flags; 00587 CK_ULONG ulMaxSessionCount; 00589 CK_ULONG ulSessionCount; 00591 CK_ULONG ulMaxRwSessionCount; 00593 CK_ULONG ulRwSessionCount; 00595 CK_ULONG ulMaxPinLen; 00597 CK_ULONG ulMinPinLen; 00599 CK_ULONG ulTotalPublicMemory; 00601 CK_ULONG ulFreePublicMemory; 00603 CK_ULONG ulTotalPrivateMemory; 00605 CK_ULONG ulFreePrivateMemory; 00607 CK_VERSION hardwareVersion; 00609 CK_VERSION firmwareVersion; 00611 CK_CHAR utcTime[16]; 00612 } CK_TOKEN_INFO; 00613 00614 00616 #define CKF_RNG 0x00000001 00617 00619 #define CKF_WRITE_PROTECTED 0x00000002 00620 00622 #define CKF_LOGIN_REQUIRED 0x00000004 00623 00625 #define CKF_USER_PIN_INITIALIZED 0x00000008 00626 00628 #define CKF_RESTORE_KEY_NOT_NEEDED 0x00000020 00629 00631 #define CKF_CLOCK_ON_TOKEN 0x00000040 00632 00634 #define CKF_PROTECTED_AUTHENTICATION_PATH 0x00000100 00635 00637 #define CKF_DUAL_CRYPTO_OPERATIONS 0x00000200 00638 00640 #define CKF_TOKEN_INITIALIZED 0x00000400 00641 00643 #define CKF_SECONDARY_AUTHENTICATION 0x00000800 00644 00646 #define CKF_USER_PIN_COUNT_LOW 0x00010000 00647 00649 #define CKF_USER_PIN_FINAL_TRY 0x00020000 00650 00652 #define CKF_USER_PIN_LOCKED 0x00040000 00653 00655 #define CKF_USER_PIN_TO_BE_CHANGED 0x00080000 00656 00658 #define CKF_SO_PIN_COUNT_LOW 0x00100000 00659 00661 #define CKF_SO_PIN_FINAL_TRY 0x00200000 00662 00664 #define CKF_SO_PIN_LOCKED 0x00400000 00665 00667 #define CKF_SO_PIN_TO_BE_CHANGED 0x00800000 00668 00669 00670 00672 typedef CK_TOKEN_INFO CK_PTR CK_TOKEN_INFO_PTR; 00678 typedef CK_ULONG CK_SESSION_HANDLE; 00679 00680 00682 typedef CK_SESSION_HANDLE CK_PTR CK_SESSION_HANDLE_PTR; 00689 typedef CK_ULONG CK_USER_TYPE; 00690 00691 00698 typedef CK_ULONG CK_STATE; 00699 00700 00701 00702 00742 typedef struct CK_SESSION_INFO { 00744 CK_SLOT_ID slotID; 00746 CK_STATE state; 00748 CK_FLAGS flags; 00750 CK_ULONG ulDeviceError; 00751 } CK_SESSION_INFO; 00752 00753 00755 #define CKF_RW_SESSION 0x00000002 00756 00758 #define CKF_SERIAL_SESSION 0x00000004 00759 00761 typedef CK_SESSION_INFO CK_PTR CK_SESSION_INFO_PTR; 00767 typedef CK_ULONG CK_OBJECT_HANDLE; 00768 00769 00771 typedef CK_OBJECT_HANDLE CK_PTR CK_OBJECT_HANDLE_PTR; 00777 typedef CK_ULONG CK_OBJECT_CLASS; 00778 00779 00781 typedef CK_OBJECT_CLASS CK_PTR CK_OBJECT_CLASS_PTR; 00787 typedef CK_ULONG CK_HW_FEATURE_TYPE; 00788 00789 00795 typedef CK_ULONG CK_KEY_TYPE; 00796 00797 00803 typedef CK_ULONG CK_CERTIFICATE_TYPE; 00804 00805 00811 typedef CK_ULONG CK_ATTRIBUTE_TYPE; 00812 00813 00814 00815 00846 typedef struct CK_ATTRIBUTE { 00848 CK_ATTRIBUTE_TYPE type; 00850 CK_VOID_PTR pValue; 00852 CK_ULONG ulValueLen; 00853 } CK_ATTRIBUTE; 00854 00855 00857 typedef CK_ATTRIBUTE CK_PTR CK_ATTRIBUTE_PTR; 00858 00859 00883 typedef struct CK_DATE { 00885 CK_CHAR year[4]; 00887 CK_CHAR month[2]; 00889 CK_CHAR day[2]; 00890 } CK_DATE; 00891 00892 00898 typedef CK_ULONG CK_MECHANISM_TYPE; 00899 00900 00902 typedef CK_MECHANISM_TYPE CK_PTR CK_MECHANISM_TYPE_PTR; 00903 00904 00930 typedef struct CK_MECHANISM { 00932 CK_MECHANISM_TYPE mechanism; 00934 CK_VOID_PTR pParameter; 00936 CK_ULONG ulParameterLen; 00937 } CK_MECHANISM; 00938 00939 00941 typedef CK_MECHANISM CK_PTR CK_MECHANISM_PTR; 00942 00943 01045 typedef struct CK_MECHANISM_INFO { 01047 CK_ULONG ulMinKeySize; 01049 CK_ULONG ulMaxKeySize; 01051 CK_FLAGS flags; 01052 } CK_MECHANISM_INFO; 01053 01054 01056 #define CKF_HW 0x00000001 01057 01059 #define CKF_ENCRYPT 0x00000100 01060 01062 #define CKF_DECRYPT 0x00000200 01063 01065 #define CKF_DIGEST 0x00000400 01066 01068 #define CKF_SIGN 0x00000800 01069 01071 #define CKF_SIGN_RECOVER 0x00001000 01072 01074 #define CKF_VERIFY 0x00002000 01075 01077 #define CKF_VERIFY_RECOVER 0x00004000 01078 01080 #define CKF_GENERATE 0x00008000 01081 01083 #define CKF_GENERATE_KEY_PAIR 0x00010000 01084 01086 #define CKF_WRAP 0x00020000 01087 01089 #define CKF_UNWRAP 0x00040000 01090 01092 #define CKF_DERIVE 0x00080000 01093 01095 #define CKF_EXTENSION 0x80000000 01096 01098 typedef CK_MECHANISM_INFO CK_PTR CK_MECHANISM_INFO_PTR; 01104 typedef CK_ULONG CK_RV; 01105 01106 01112 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_NOTIFY)( 01113 CK_SESSION_HANDLE hSession, 01114 CK_NOTIFICATION event, 01115 CK_VOID_PTR pApplication 01116 ); 01117 01118 01119 01120 01136 typedef struct CK_FUNCTION_LIST { 01137 CK_VERSION version; 01138 CK_C_Initialize C_Initialize; 01139 CK_C_Finalize C_Finalize; 01140 CK_C_GetInfo C_GetInfo; 01141 CK_C_GetFunctionList C_GetFunctionList; 01142 CK_C_GetSlotList C_GetSlotList; 01143 CK_C_GetSlotInfo C_GetSlotInfo; 01144 CK_C_GetTokenInfo C_GetTokenInfo; 01145 CK_C_GetMechanismList C_GetMechanismList; 01146 CK_C_GetMechanismInfo C_GetMechanismInfo; 01147 CK_C_InitToken C_InitToken; 01148 CK_C_InitPIN C_InitPIN; 01149 CK_C_SetPIN C_SetPIN; 01150 CK_C_OpenSession C_OpenSession; 01151 CK_C_CloseSession C_CloseSession; 01152 CK_C_CloseAllSessions C_CloseAllSessions; 01153 CK_C_GetSessionInfo C_GetSessionInfo; 01154 CK_C_GetOperationState C_GetOperationState; 01155 CK_C_SetOperationState C_SetOperationState; 01156 CK_C_Login C_Login; 01157 CK_C_Logout C_Logout; 01158 CK_C_CreateObject C_CreateObject; 01159 CK_C_CopyObject C_CopyObject; 01160 CK_C_DestroyObject C_DestroyObject; 01161 CK_C_GetObjectSize C_GetObjectSize; 01162 CK_C_GetAttributeValue C_GetAttributeValue; 01163 CK_C_SetAttributeValue C_SetAttributeValue; 01164 CK_C_FindObjectsInit C_FindObjectsInit; 01165 CK_C_FindObjects C_FindObjects; 01166 CK_C_FindObjectsFinal C_FindObjectsFinal; 01167 CK_C_EncryptInit C_EncryptInit; 01168 CK_C_Encrypt C_Encrypt; 01169 CK_C_EncryptUpdate C_EncryptUpdate; 01170 CK_C_EncryptFinal C_EncryptFinal; 01171 CK_C_DecryptInit C_DecryptInit; 01172 CK_C_Decrypt C_Decrypt; 01173 CK_C_DecryptUpdate C_DecryptUpdate; 01174 CK_C_DecryptFinal C_DecryptFinal; 01175 CK_C_DigestInit C_DigestInit; 01176 CK_C_Digest C_Digest; 01177 CK_C_DigestUpdate C_DigestUpdate; 01178 CK_C_DigestKey C_DigestKey; 01179 CK_C_DigestFinal C_DigestFinal; 01180 CK_C_SignInit C_SignInit; 01181 CK_C_Sign C_Sign; 01182 CK_C_SignUpdate C_SignUpdate; 01183 CK_C_SignFinal C_SignFinal; 01184 CK_C_SignRecoverInit C_SignRecoverInit; 01185 CK_C_SignRecover C_SignRecover; 01186 CK_C_VerifyInit C_VerifyInit; 01187 CK_C_Verify C_Verify; 01188 CK_C_VerifyUpdate C_VerifyUpdate; 01189 CK_C_VerifyFinal C_VerifyFinal; 01190 CK_C_VerifyRecoverInit C_VerifyRecoverInit; 01191 CK_C_VerifyRecover C_VerifyRecover; 01192 CK_C_DigestEncryptUpdate C_DigestEncryptUpdate; 01193 CK_C_DecryptDigestUpdate C_DecryptDigestUpdate; 01194 CK_C_SignEncryptUpdate C_SignEncryptUpdate; 01195 CK_C_DecryptVerifyUpdate C_DecryptVerifyUpdate; 01196 CK_C_GenerateKey C_GenerateKey; 01197 CK_C_GenerateKeyPair C_GenerateKeyPair; 01198 CK_C_WrapKey C_WrapKey; 01199 CK_C_UnwrapKey C_UnwrapKey; 01200 CK_C_DeriveKey C_DeriveKey; 01201 CK_C_SeedRandom C_SeedRandom; 01202 CK_C_GenerateRandom C_GenerateRandom; 01203 CK_C_GetFunctionStatus C_GetFunctionStatus; 01204 CK_C_CancelFunction C_CancelFunction; 01205 CK_C_WaitForSlotEvent C_WaitForSlotEvent; 01206 } CK_FUNCTION_LIST; 01207 01208 01210 typedef CK_FUNCTION_LIST CK_PTR CK_FUNCTION_LIST_PTR; 01212 typedef CK_FUNCTION_LIST_PTR CK_PTR CK_FUNCTION_LIST_PTR_PTR; 01219 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_CREATEMUTEX)( 01220 CK_VOID_PTR_PTR ppMutex 01221 ); 01222 01223 01229 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_DESTROYMUTEX)( 01230 CK_VOID_PTR pMutex 01231 ); 01232 01233 01260 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_LOCKMUTEX)( 01261 CK_VOID_PTR pMutex 01262 ); 01263 01264 01268 typedef CK_CALLBACK_FUNCTION(CK_RV, CK_UNLOCKMUTEX)( 01269 CK_VOID_PTR pMutex 01270 ); 01271 01272 01273 01274 01321 typedef struct CK_C_INITIALIZE_ARGS { 01323 CK_CREATEMUTEX CreateMutex; 01325 CK_DESTROYMUTEX DestroyMutex; 01327 CK_LOCKMUTEX LockMutex; 01329 CK_UNLOCKMUTEX UnlockMutex; 01331 CK_FLAGS flags; 01333 CK_VOID_PTR pReserved; 01334 } CK_C_INITIALIZE_ARGS; 01335 01336 01338 #define CKF_LIBRARY_CANT_CREATE_OS_THREADS 0x00000001 01339 01341 #define CKF_OS_LOCKING_OK 0x00000002 01342 01344 typedef CK_C_INITIALIZE_ARGS CK_PTR CK_C_INITIALIZE_ARGS_PTR; 01346 #define CKA_CLASS 01347 01349 #define CKA_HW_FEATURE_TYPE 01350 01352 #define CKA_VALUE 01353 01355 #define CKA_RESET_ON_INIT 01356 01358 #define CKA_HAS_RESET 01359 01361 #define CKA_VALUE 01362 01364 #define CKA_PIXEL_X 01365 01367 #define CKA_PIXEL_Y 01368 01370 #define CKA_RESOLUTION 01371 01373 #define CKA_CHAR_ROWS 01374 01376 #define CKA_CHAR_COLUMNS 01377 01379 #define CKA_COLOR 01380 01382 #define CKA_BITS_PER_PIXEL 01383 01385 #define CKA_CHAR_SETS 01386 01388 #define CKA_ENCODING_METHODS 01389 01391 #define CKA_MIME_TYPES 01392 01394 #define CKA_TOKEN 01395 01397 #define CKA_PRIVATE 01398 01400 #define CKA_MODIFIABLE 01401 01403 #define CKA_LABEL 01404 01406 #define CKA_APPLICATION 01407 01409 #define CKA_OBJECT_ID 01410 01412 #define CKA_VALUE 01413 01414 01415 01417 #define CKA_CERTIFICATE_TYPE 01418 01420 #define CKA_TRUSTED 01421 01423 #define CKA_CERTIFICATE_CATEGORY 01424 01426 #define CKA_CHECK_VALUE 01427 01429 #define CKA_START_DATE 01430 01432 #define CKA_END_DATE 01433 01435 #define CKA_SUBJECT 01436 01438 #define CKA_ID 01439 01441 #define CKA_ISSUER 01442 01444 #define CKA_SERIAL_NUMBER 01445 01447 #define CKA_VALUE 01448 01450 #define CKA_URL 01451 01453 #define CKA_HASH_OF_SUBJECT_PUBLIC_KEY 01454 01456 #define CKA_HASH_OF_ISSUER_PUBLIC_KEY 01457 01459 #define CKA_JAVA_MIDP_SECURITY_DOMAIN 01460 01461 01462 01464 #define CKA_SUBJECT 01465 01467 #define CKA_ISSUER 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 01481 01482 01484 #define CKA_OWNER 01485 01487 #define CKA_AC_ISSUER 01488 01490 #define CKA_SERIAL_NUMBER 01491 01493 #define CKA_ATTR_TYPES 01494 01496 #define CKA_VALUE 01497 01498 01499 01501 #define CKA_KEY_TYPE 01502 01504 #define CKA_ID 01505 01507 #define CKA_START_DATE 01508 01510 #define CKA_END_DATE 01511 01513 #define CKA_DERIVE 01514 01516 #define CKA_LOCAL 01517 01519 #define CKA_KEY_GEN_MECHANISM 01520 01522 #define CKA_ALLOWED_MECHANISMS 01523 01525 #define CKA_SUBJECT 01526 01528 #define CKA_ENCRYPT 01529 01531 #define CKA_VERIFY 01532 01534 #define CKA_VERIFY_RECOVER 01535 01537 #define CKA_WRAP 01538 01540 #define CKA_TRUSTED 01541 01543 #define CKA_WRAP_TEMPLATE 01544 01546 #define CKA_SUBJECT 01547 01549 #define CKA_SENSITIVE 01550 01552 #define CKA_DECRYPT 01553 01555 #define CKA_SIGN 01556 01558 #define CKA_SIGN_RECOVER 01559 01561 #define CKA_UNWRAP 01562 01564 #define CKA_EXTRACTABLE 01565 01567 #define CKA_ALWAYS_SENSITIVE 01568 01570 #define CKA_NEVER_EXTRACTABLE 01571 01573 #define CKA_WRAP_WITH_TRUSTED 01574 01576 #define CKA_UNWRAP_TEMPLATE 01577 01579 #define CKA_ALWAYS_AUTHENTICATE 01580 01582 #define CKA_SENSITIVE 01583 01585 #define CKA_ENCRYPT 01586 01588 #define CKA_DECRYPT 01589 01591 #define CKA_SIGN 01592 01594 #define CKA_VERIFY 01595 01597 #define CKA_WRAP 01598 01600 #define CKA_UNWRAP 01601 01603 #define CKA_EXTRACTABLE 01604 01606 #define CKA_ALWAYS_SENSITIVE 01607 01609 #define CKA_NEVER_EXTRACTABLE 01610 01612 #define CKA_CHECK_VALUE 01613 01615 #define CKA_WRAP_WITH_TRUSTED 01616 01618 #define CKA_TRUSTED 01619 01621 #define CKA_WRAP_TEMPLATE 01622 01624 #define CKA_UNWRAP_TEMPLATE 01625 01627 #define CKA_KEY_TYPE 01628 01630 #define CKA_LOCAL 01631 01633 #define CKA_MECHANISM_TYPE 01634 01636 #define CKR_GENERAL_ERROR 01637 01639 #define CKR_HOST_MEMORY 01640 01642 #define CKR_FUNCTION_FAILED 01643 01645 #define CKR_OK 01646 01648 #define CKR_SESSION_HANDLE_INVALID 01649 01651 #define CKR_DEVICE_REMOVED 01652 01654 #define CKR_SESSION_CLOSED 01655 01657 #define CKR_DEVICE_MEMORY 01658 01660 #define CKR_DEVICE_ERROR 01661 01663 #define CKR_TOKEN_NOT_PRESENT 01664 01666 #define CKR_DEVICE_REMOVED 01667 01669 #define CKR_CANCEL 01670 01672 #define CKR_MUTEX_BAD 01673 01675 #define CKR_MUTEX_NOT_LOCKED 01676 01678 #define CKR_ARGUMENTS_BAD 01679 01681 #define CKR_ATTRIBUTE_READ_ONLY 01682 01684 #define CKR_ATTRIBUTE_SENSITIVE 01685 01687 #define CKR_ATTRIBUTE_TYPE_INVALID 01688 01690 #define CKR_ATTRIBUTE_VALUE_INVALID 01691 01693 #define CKR_BUFFER_TOO_SMALL 01694 01696 #define CKR_CANT_LOCK 01697 01699 #define CKR_CRYPTOKI_ALREADY_INITIALIZED 01700 01702 #define CKR_CRYPTOKI_NOT_INITIALIZED 01703 01705 #define CKR_DATA_INVALID 01706 01708 #define CKR_DATA_LEN_RANGE 01709 01711 #define CKR_DOMAIN_PARAMS_INVALID 01712 01714 #define CKR_ENCRYPTED_DATA_INVALID 01715 01717 #define CKR_ENCRYPTED_DATA_LEN_RANGE 01718 01720 #define CKR_FUNCTION_CANCELED 01721 01723 #define CKR_FUNCTION_NOT_PARALLEL 01724 01726 #define CKR_FUNCTION_NOT_SUPPORTED 01727 01729 #define CKR_FUNCTION_REJECTED 01730 01732 #define CKR_INFORMATION_SENSITIVE 01733 01735 #define CKR_KEY_CHANGED 01736 01738 #define CKR_KEY_FUNCTION_NOT_PERMITTED 01739 01741 #define CKR_KEY_HANDLE_INVALID 01742 01744 #define CKR_KEY_INDIGESTIBLE 01745 01747 #define CKR_KEY_NEEDED 01748 01750 #define CKR_KEY_NOT_NEEDED 01751 01753 #define CKR_KEY_NOT_WRAPPABLE 01754 01756 #define CKR_KEY_SIZE_RANGE 01757 01759 #define CKR_KEY_TYPE_INCONSISTENT 01760 01762 #define CKR_KEY_UNEXTRACTABLE 01763 01765 #define CKR_MECHANISM_INVALID 01766 01768 #define CKR_MECHANISM_PARAM_INVALID 01769 01771 #define CKR_NEED_TO_CREATE_THREADS 01772 01774 #define CKR_NO_EVENT 01775 01777 #define CKR_OBJECT_HANDLE_INVALID 01778 01780 #define CKR_OPERATION_ACTIVE 01781 01783 #define CKR_OPERATION_NOT_INITIALIZED 01784 01786 #define CKR_PIN_EXPIRED 01787 01789 #define CKR_PIN_INCORRECT 01790 01792 #define CKR_PIN_INVALID 01793 01795 #define CKR_PIN_LEN_RANGE 01796 01798 #define CKR_PIN_LOCKED 01799 01801 #define CKR_RANDOM_NO_RNG 01802 01804 #define CKR_RANDOM_SEED_NOT_SUPPORTED 01805 01807 #define CKR_SAVED_STATE_INVALID 01808 01810 #define CKR_SESSION_COUNT 01811 01813 #define CKR_SESSION_EXISTS 01814 01816 #define CKR_SESSION_PARALLEL_NOT_SUPPORTED 01817 01819 #define CKR_SESSION_READ_ONLY 01820 01822 #define CKR_SESSION_READ_ONLY_EXISTS 01823 01825 #define CKR_SESSION_READ_WRITE_SO_EXISTS 01826 01828 #define CKR_SIGNATURE_LEN_RANGE 01829 01831 #define CKR_SIGNATURE_INVALID 01832 01834 #define CKR_SLOT_ID_INVALID 01835 01837 #define CKR_STATE_UNSAVEABLE 01838 01840 #define CKR_TEMPLATE_INCOMPLETE 01841 01843 #define CKR_TEMPLATE_INCONSISTENT 01844 01846 #define CKR_TOKEN_NOT_RECOGNIZED 01847 01849 #define CKR_TOKEN_WRITE_PROTECTED 01850 01852 #define CKR_UNWRAPPING_KEY_HANDLE_INVALID 01853 01855 #define CKR_UNWRAPPING_KEY_SIZE_RANGE 01856 01858 #define CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT 01859 01861 #define CKR_USER_ALREADY_LOGGED_IN 01862 01864 #define CKR_USER_ANOTHER_ALREADY_LOGGED_IN 01865 01867 #define CKR_USER_NOT_LOGGED_IN 01868 01870 #define CKR_USER_PIN_NOT_INITIALIZED 01871 01873 #define CKR_USER_TOO_MANY_TYPES 01874 01876 #define CKR_USER_TYPE_INVALID 01877 01879 #define CKR_WRAPPED_KEY_INVALID 01880 01882 #define CKR_WRAPPED_KEY_LEN_RANGE 01883 01885 #define CKR_WRAPPING_KEY_HANDLE_INVALID 01886 01888 #define CKR_WRAPPING_KEY_SIZE_RANGE 01889 01891 #define CKR_WRAPPING_KEY_TYPE_INCONSISTENT 01892 01977 CK_RV C_Initialize( CK_VOID_PTR pInitArgs); 01978 01979 02010 CK_RV C_Finalize( CK_VOID_PTR pReserved); 02011 02012 02026 CK_RV C_GetInfo( CK_INFO_PTR pInfo); 02027 02028 02049 CK_RV C_GetFunctionList( CK_FUNCTION_LIST_PTR_PTR ppFunctionList); 02050 02051 02104 CK_RV C_GetSlotList( CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, CK_ULONG_PTR pulCount); 02105 02106 02120 CK_RV C_GetSlotInfo( CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo); 02121 02122 02139 CK_RV C_GetTokenInfo( CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo); 02140 02141 02196 CK_RV C_WaitForSlotEvent( CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, CK_VOID_PTR pReserved); 02197 02198 02235 CK_RV C_GetMechanismList( CK_SLOT_ID slotID, CK_MECHANISM_TYPE_PTR pMechanismList, CK_ULONG_PTR pulCount); 02236 02237 02255 CK_RV C_GetMechanismInfo( CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, CK_MECHANISM_INFO_PTR pInfo); 02256 02257 02327 CK_RV C_InitToken( CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen, CK_UTF8CHAR_PTR pLabel); 02328 02329 02368 CK_RV C_InitPIN( CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen); 02369 02370 02413 CK_RV C_SetPIN( CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pOldPin, CK_ULONG ulOldLen, CK_UTF8CHAR_PTR pNewPin, CK_ULONG ulNewLen); 02414 02415 02462 CK_RV C_OpenSession( CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession); 02463 02464 02502 CK_RV C_CloseSession( CK_SESSION_HANDLE hSession); 02503 02504 02531 CK_RV C_CloseAllSessions( CK_SLOT_ID slotID); 02532 02533 02550 CK_RV C_GetSessionInfo( CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo); 02551 02552 02626 CK_RV C_GetOperationState( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG_PTR pulOperationStateLen); 02627 02628 02710 CK_RV C_SetOperationState( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG ulOperationStateLen, CK_OBJECT_HANDLE hEncryptionKey, CK_OBJECT_HANDLE hAuthenticationKey); 02711 02712 02770 CK_RV C_Login( CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen); 02771 02772 02804 CK_RV C_Logout( CK_SESSION_HANDLE hSession); 02805 02806 02841 CK_RV C_CreateObject( CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject); 02842 02843 02887 CK_RV C_CopyObject( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phNewObject); 02888 02889 02908 CK_RV C_DestroyObject( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject); 02909 02910 02935 CK_RV C_GetObjectSize( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ULONG_PTR pulSize); 02936 02937 03016 CK_RV C_GetAttributeValue( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount); 03017 03018 03051 CK_RV C_SetAttributeValue( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount); 03052 03053 03097 CK_RV C_FindObjectsInit( CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount); 03098 03099 03121 CK_RV C_FindObjects( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount); 03122 03123 03139 CK_RV C_FindObjectsFinal( CK_SESSION_HANDLE hSession); 03140 03141 03172 CK_RV C_EncryptInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03173 03174 03219 CK_RV C_Encrypt( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData, CK_ULONG_PTR pulEncryptedDataLen); 03220 03221 03253 CK_RV C_EncryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen); 03254 03255 03289 CK_RV C_EncryptFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastEncryptedPart, CK_ULONG_PTR pulLastEncryptedPartLen); 03290 03291 03322 CK_RV C_DecryptInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03323 03324 03367 CK_RV C_Decrypt( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedData, CK_ULONG ulEncryptedDataLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen); 03368 03369 03401 CK_RV C_DecryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen); 03402 03403 03436 CK_RV C_DecryptFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastPart, CK_ULONG_PTR pulLastPartLen); 03437 03438 03464 CK_RV C_DigestInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism); 03465 03466 03503 CK_RV C_Digest( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen); 03504 03505 03527 CK_RV C_DigestUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen); 03528 03529 03554 CK_RV C_DigestKey( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hKey); 03555 03556 03584 CK_RV C_DigestFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen); 03585 03586 03616 CK_RV C_SignInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03617 03618 03654 CK_RV C_Sign( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen); 03655 03656 03677 CK_RV C_SignUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen); 03678 03679 03708 CK_RV C_SignFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen); 03709 03710 03739 CK_RV C_SignRecoverInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03740 03741 03772 CK_RV C_SignRecover( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen); 03773 03774 03805 CK_RV C_VerifyInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03806 03807 03845 CK_RV C_Verify( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen); 03846 03847 03868 CK_RV C_VerifyUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen); 03869 03870 03901 CK_RV C_VerifyFinal( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen); 03902 03903 03931 CK_RV C_VerifyRecoverInit( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey); 03932 03933 03975 CK_RV C_VerifyRecover( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen); 03976 03977 04015 CK_RV C_DigestEncryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen); 04016 04017 04096 CK_RV C_DecryptDigestUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen); 04097 04098 04134 CK_RV C_SignEncryptUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen); 04135 04136 04214 CK_RV C_DecryptVerifyUpdate( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen); 04215 04216 04257 CK_RV C_GenerateKey( CK_SESSION_HANDLE hSession CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phKey); 04258 04259 04310 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); 04311 04312 04374 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); 04375 04376 04433 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); 04434 04435 04476 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); 04477 04478 04495 CK_RV C_SeedRandom( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed, CK_ULONG ulSeedLen); 04496 04497 04516 CK_RV C_GenerateRandom( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pRandomData, CK_ULONG ulRandomLen ); 04517 04518 04529 CK_RV C_GetFunctionStatus( CK_SESSION_HANDLE hSession); 04530 04531 04542 CK_RV C_CancelFunction( CK_SESSION_HANDLE hSession); 04543 04544 04546 #define CKA_MODULUS 04547 04549 #define CKA_MODULUS_BITS 04550 04552 #define CKA_PUBLIC_EXPONENT 04553 04554 04555 04557 #define CKA_MODULUS 04558 04560 #define CKA_PUBLIC_EXPONENT 04561 04563 #define CKA_PRIVATE_EXPONENT 04564 04566 #define CKA_PRIME_1 04567 04569 #define CKA_PRIME_2 04570 04572 #define CKA_EXPONENT_1 04573 04575 #define CKA_EXPONENT_2 04576 04578 #define CKA_COEFFICIENT 04579 04580 04581 04589 typedef CK_ULONG CK_RSA_PKCS_MGF_TYPE; 04590 04591 04593 typedef CK_RSA_PKCS_MGF_TYPE CK_PTR CK_RSA_PKCS_MGF_TYPE_PTR; 04600 typedef CK_ULONG CK_RSA_PKCS_OAEP_SOURCE_TYPE; 04601 04602 04604 typedef CK_RSA_PKCS_OAEP_SOURCE_TYPE CK_PTR CK_RSA_PKCS_OAEP_SOURCE_TYPE_PTR; 04605 04606 04625 typedef struct CK_RSA_PKCS_OAEP_PARAMS { 04627 CK_MECHANISM_TYPE hashAlg; 04629 CK_RSA_PKCS_MGF_TYPE mgf; 04631 CK_RSA_PKCS_OAEP_SOURCE_TYPE source; 04633 CK_VOID_PTR pSourceData; 04635 CK_ULONG ulSourceDataLen; 04636 } CK_RSA_PKCS_OAEP_PARAMS; 04637 04638 04640 typedef CK_RSA_PKCS_OAEP_PARAMS CK_PTR CK_RSA_PKCS_OAEP_PARAMS_PTR; 04641 04642 04659 typedef struct CK_RSA_PKCS_PSS_PARAMS { 04661 CK_MECHANISM_TYPE hashAlg; 04663 CK_RSA_PKCS_MGF_TYPE mgf; 04665 CK_ULONG sLen; 04666 } CK_RSA_PKCS_PSS_PARAMS; 04667 04668 04670 typedef CK_RSA_PKCS_PSS_PARAMS CK_PTR CK_RSA_PKCS_PSS_PARAMS_PTR; 04671 04672 04674 #define CKA_PRIME 04675 04677 #define CKA_SUBPRIME 04678 04680 #define CKA_BASE 04681 04683 #define CKA_VALUE 04684 04685 04686 04688 #define CKA_PRIME 04689 04691 #define CKA_SUBPRIME 04692 04694 #define CKA_BASE 04695 04697 #define CKA_VALUE 04698 04699 04700 04702 #define CKA_PRIME 04703 04705 #define CKA_SUBPRIME 04706 04708 #define CKA_BASE 04709 04711 #define CKA_PRIME_BITS 04712 04713 04714 04716 #define CKA_EC_PARAMS 04717 04719 #define CKA_EC_POINT 04720 04721 04722 04724 #define CKA_EC_PARAMS 04725 04727 #define CKA_VALUE 04728 04729 04730 04738 typedef CK_ULONG CK_EC_KDF_TYPE; 04739 04740 04742 typedef CK_EC_KDF_TYPE CK_PTR CK_EC_KDF_TYPE_PTR; 04743 04744 04779 typedef struct CK_ECDH1_DERIVE_PARAMS { 04781 CK_EC_KDF_TYPE kdf; 04783 CK_ULONG ulSharedDataLen; 04785 CK_BYTE_PTR pSharedData; 04787 CK_ULONG ulPublicDataLen; 04789 CK_BYTE_PTR pPublicData; 04790 } CK_ECDH1_DERIVE_PARAMS; 04791 04792 04794 typedef CK_ECDH1_DERIVE_PARAMS CK_PTR CK_ECDH1_DERIVE_PARAMS_PTR; 04795 04796 04827 typedef struct CK_ECMQV_DERIVE_PARAMS { 04829 CK_EC_KDF_TYPE kdf; 04831 CK_ULONG ulSharedDataLen; 04833 CK_BYTE_PTR pSharedData; 04835 CK_ULONG ulPublicDataLen; 04837 CK_BYTE_PTR pPublicData; 04839 CK_ULONG ulPrivateDataLen; 04841 CK_OBJECT_HANDLE hPrivateData; 04843 CK_ULONG ulPublicDataLen2; 04845 CK_BYTE_PTR pPublicData2; 04847 CK_OBJECT_HANDLE publicKey; 04848 } CK_ECMQV_DERIVE_PARAMS; 04849 04850 04852 typedef CK_ECMQV_DERIVE_PARAMS CK_PTR CK_ECMQV_DERIVE_PARAMS_PTR; 04853 04854 04856 #define CKA_PRIME 04857 04859 #define CKA_BASE 04860 04862 #define CKA_VALUE 04863 04864 04865 04867 #define CKA_PRIME 04868 04870 #define CKA_BASE 04871 04873 #define CKA_SUBPRIME 04874 04876 #define CKA_VALUE 04877 04878 04879 04881 #define CKA_PRIME 04882 04884 #define CKA_BASE 04885 04887 #define CKA_VALUE 04888 04890 #define CKA_VALUE_BITS 04891 04892 04893 04895 #define CKA_PRIME 04896 04898 #define CKA_BASE 04899 04901 #define CKA_SUBPRIME 04902 04904 #define CKA_VALUE 04905 04906 04907 04909 #define CKA_PRIME 04910 04912 #define CKA_BASE 04913 04915 #define CKA_PRIME_BITS 04916 04917 04918 04920 #define CKA_PRIME 04921 04923 #define CKA_BASE 04924 04926 #define CKA_SUBPRIME 04927 04929 #define CKA_PRIME_BITS 04930 04932 #define CKA_SUBPRIME_BITS 04933 04934 04935 04943 typedef CK_ULONG CK_X9_42_DH_KDF_TYPE; 04944 04945 04947 typedef CK_X9_42_DH_KDF_TYPE CK_PTR CK_X9_42_DH_KDF_TYPE_PTR; 04948 04949 04991 typedef struct CK_X9_42_DH1_DERIVE_PARAMS { 04993 CK_X9_42_DH_KDF_TYPE kdf; 04995 CK_ULONG ulOtherInfoLen; 04997 CK_BYTE_PTR pOtherInfo; 04999 CK_ULONG ulPublicDataLen; 05001 CK_BYTE_PTR pPublicData; 05002 } CK_X9_42_DH1_DERIVE_PARAMS; 05003 05004 05006 typedef CK_X9_42_DH1_DERIVE_PARAMS CK_PTR CK_X9_42_DH1_DERIVE_PARAMS_PTR; 05007 05008 05054 typedef struct CK_X9_42_DH2_DERIVE_PARAMS { 05056 CK_X9_42_DH_KDF_TYPE kdf; 05058 CK_ULONG ulOtherInfoLen; 05060 CK_BYTE_PTR pOtherInfo; 05062 CK_ULONG ulPublicDataLen; 05064 CK_BYTE_PTR pPublicData; 05066 CK_ULONG ulPrivateDataLen; 05068 CK_OBJECT_HANDLE hPrivateData; 05070 CK_ULONG ulPublicDataLen2; 05072 CK_BYTE_PTR pPublicData2; 05073 } CK_X9_42_DH2_DERIVE_PARAMS; 05074 05075 05077 typedef CK_X9_42_DH2_DERIVE_PARAMS CK_PTR CK_X9_42_DH2_DERIVE_PARAMS_PTR; 05078 05079 05115 typedef struct CK_X9_42_MQV_DERIVE_PARAMS { 05117 CK_X9_42_DH_KDF_TYPE kdf; 05119 CK_ULONG ulOtherInfoLen; 05121 CK_BYTE_PTR pOtherInfo; 05123 CK_ULONG ulPublicDataLen; 05125 CK_BYTE_PTR pPublicData; 05127 CK_ULONG ulPrivateDataLen; 05129 CK_OBJECT_HANDLE hPrivateData; 05131 CK_ULONG ulPublicDataLen2; 05133 CK_BYTE_PTR pPublicData2; 05135 CK_OBJECT_HANDLE publicKey; 05136 } CK_X9_42_MQV_DERIVE_PARAMS; 05137 05138 05140 typedef CK_X9_42_MQV_DERIVE_PARAMS CK_PTR CK_X9_42_MQV_DERIVE_PARAMS_PTR; 05141 05142 05143 05144 05175 typedef struct CK_KEA_DERIVE_PARAMS { 05177 CK_BBOOL isSender; 05179 CK_ULONG ulRandomLen; 05181 CK_BYTE_PTR pRandomA; 05183 CK_BYTE_PTR pRandomB; 05185 CK_ULONG ulPublicDataLen; 05187 CK_BYTE_PTR pPublicData; 05188 } CK_KEA_DERIVE_PARAMS; 05189 05190 05192 typedef CK_KEA_DERIVE_PARAMS CK_PTR CK_KEA_DERIVE_PARAMS_PTR; 05194 #define CKA_PRIME 05195 05197 #define CKA_SUBPRIME 05198 05200 #define CKA_BASE 05201 05203 #define CKA_VALUE 05204 05205 05206 05208 #define CKA_PRIME 05209 05211 #define CKA_SUBPRIME 05212 05214 #define CKA_BASE 05215 05217 #define CKA_VALUE 05218 05219 05220 05222 #define CKA_VALUE 05223 05225 #define CKA_VALUE_LEN 05226 05227 05228 05230 #define CKA_VALUE 05231 05233 #define CKA_VALUE_LEN 05234 05235 05236 05245 typedef CK_ULONG CK_RC2_PARAMS; 05246 05247 05249 typedef CK_RC2_PARAMS CK_PTR CK_RC2_PARAMS_PTR; 05250 05251 05276 typedef struct CK_RC2_CBC_PARAMS { 05278 CK_ULONG ulEffectiveBits; 05280 CK_BYTE iv[8]; 05281 } CK_RC2_CBC_PARAMS; 05282 05283 05285 typedef CK_RC2_CBC_PARAMS CK_PTR CK_RC2_CBC_PARAMS_PTR; 05286 05287 05303 typedef struct CK_RC2_MAC_GENERAL_PARAMS { 05305 CK_ULONG ulEffectiveBits; 05307 CK_ULONG ulMacLength; 05308 } CK_RC2_MAC_GENERAL_PARAMS; 05309 05310 05312 typedef CK_RC2_MAC_GENERAL_PARAMS CK_PTR CK_RC2_MAC_GENERAL_PARAMS_PTR; 05313 05314 05316 #define CKA_VALUE 05317 05319 #define CKA_VALUE_LEN 05320 05321 05322 05324 #define CKA_VALUE 05325 05327 #define CKA_VALUE_LEN 05328 05329 05330 05331 05332 05357 typedef struct CK_RC5_PARAMS { 05359 CK_ULONG ulWordsize; 05361 CK_ULONG ulRounds; 05362 } CK_RC5_PARAMS; 05363 05364 05366 typedef CK_RC5_PARAMS CK_PTR CK_RC5_PARAMS_PTR; 05367 05368 05395 typedef struct CK_RC5_CBC_PARAMS { 05397 CK_ULONG ulWordsize; 05399 CK_ULONG ulRounds; 05401 CK_BYTE_PTR pIv; 05403 CK_ULONG ulIvLen; 05404 } CK_RC5_CBC_PARAMS; 05405 05406 05408 typedef CK_RC5_CBC_PARAMS CK_PTR CK_RC5_CBC_PARAMS_PTR; 05409 05410 05427 typedef struct CK_RC5_MAC_GENERAL_PARAMS { 05429 CK_ULONG ulWordsize; 05431 CK_ULONG ulRounds; 05433 CK_ULONG ulMacLength; 05434 } CK_RC5_MAC_GENERAL_PARAMS; 05435 05436 05438 typedef CK_RC5_MAC_GENERAL_PARAMS CK_PTR CK_RC5_MAC_GENERAL_PARAMS_PTR; 05439 05440 05442 #define CKA_VALUE 05443 05445 #define CKA_VALUE_LEN 05446 05447 05448 05450 #define CKA_VALUE 05451 05452 05453 05455 #define CKA_VALUE 05456 05458 #define CKA_VALUE_LEN 05459 05460 05461 05463 #define CKA_VALUE 05464 05466 #define CKA_VALUE_LEN 05467 05468 05469 05471 #define CKA_VALUE 05472 05474 #define CKA_VALUE_LEN 05475 05476 05477 05479 #define CKA_VALUE 05480 05481 05482 05484 #define CKA_VALUE 05485 05486 05487 05498 typedef CK_ULONG CK_MAC_GENERAL_PARAMS; 05499 05500 05502 typedef CK_MAC_GENERAL_PARAMS CK_PTR CK_MAC_GENERAL_PARAMS_PTR; 05503 05504 05509 typedef struct CK_DES_CBC_ENCRYPT_DATA_PARAMS { 05510 CK_BYTE iv[8]; 05511 CK_BYTE_PTR pData; 05512 CK_ULONG length; 05513 } CK_DES_CBC_ENCRYPT_DATA_PARAMS; 05517 typedef CK_DES_CBC_ENCRYPT_DATA_PARAMS * CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR; 05518 05519 05524 typedef struct CK_AES_CBC_ENCRYPT_DATA_PARAMS { 05525 CK_BYTE iv[16]; 05526 CK_BYTE_PTR pData; 05527 CK_ULONG length; 05528 } CK_AES_CBC_ENCRYPT_DATA_PARAMS; 05529 05530 05534 typedef CK_DES_CBC_ENCRYPT_DATA_PARAMS CK_PTR 05535 CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR; 05536 05537 05539 #define CKA_VALUE 05540 05541 05542 05544 #define CKA_VALUE 05545 05546 05547 05549 #define CKA_VALUE 05550 05551 05552 05553 05554 05588 typedef struct CK_SKIPJACK_PRIVATE_WRAP_PARAMS { 05590 CK_ULONG ulPasswordLen; 05592 CK_BYTE_PTR pPassword; 05594 CK_ULONG ulPublicDataLen; 05596 CK_BYTE_PTR pPublicData; 05598 CK_ULONG ulPandGLen; 05600 CK_ULONG ulQLen; 05602 CK_ULONG ulRandomLen; 05604 CK_BYTE_PTR pRandomA; 05606 CK_BYTE_PTR pPrimeP; 05608 CK_BYTE_PTR pBaseG; 05610 CK_BYTE_PTR pSubprimeQ; 05611 } CK_SKIPJACK_PRIVATE_WRAP_PARAMS; 05612 05613 05615 typedef CK_PRIVATE_WRAP_PARAMS CK_PTR CK_SKIPJACK_PRIVATE_WRAP_PARAMS_PTR; 05616 05617 05645 typedef struct CK_SKIPJACK_RELAYX_PARAMS { 05647 CK_ULONG ulOldWrappedXLen; 05649 CK_BYTE_PTR pOldWrappedX; 05651 CK_ULONG ulOldPasswordLen; 05653 CK_BYTE_PTR pOldPassword; 05655 CK_ULONG ulOldPublicDataLen; 05657 CK_BYTE_PTR pOldPublicData; 05659 CK_ULONG ulOldRandomLen; 05661 CK_BYTE_PTR pOldRandomA; 05663 CK_ULONG ulNewPasswordLen; 05665 CK_BYTE_PTR pNewPassword; 05667 CK_ULONG ulNewPublicDataLen; 05669 CK_BYTE_PTR pNewPublicData; 05671 CK_ULONG ulNewRandomLen; 05673 CK_BYTE_PTR pNewRandomA; 05674 } CK_SKIPJACK_RELAYX_PARAMS; 05675 05676 05678 typedef CK_SKIPJACK_RELAYX_PARAMS CK_PTR CK_SKIPJACK_RELAYX_PARAMS_PTR; 05679 05680 05682 #define CKA_VALUE 05683 05684 05685 05687 #define CKA_VALUE 05688 05689 05690 05691 05692 05711 typedef struct CK_PBE_PARAMS { 05713 CK_BYTE_PTR pInitVector; 05715 CK_UTF8CHAR_PTR pPassword; 05717 CK_ULONG ulPasswordLen; 05719 CK_BYTE_PTR pSalt; 05721 CK_ULONG ulSaltLen; 05723 CK_ULONG ulIteration; 05724 } CK_PBE_PARAMS; 05725 05726 05728 typedef CK_PBE_PARAMS CK_PTR CK_PBE_PARAMS_PTR; 05735 typedef CK_ULONG CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE; 05736 05737 05739 typedef CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE CK_PTR CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE_PTR; 05746 typedef CK_ULONG CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE; 05747 05748 05750 typedef CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE CK_PTR CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE_PTR; 05751 05752 05775 typedef struct CK_PKCS5_PBKD2_PARAMS { 05777 CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE saltSource; 05779 CK_VOID_PTR pSaltSourceData; 05781 CK_ULONG ulSaltSourceDataLen; 05783 CK_ULONG iterations; 05785 CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE prf; 05787 CK_VOID_PTR pPrfData; 05788 CK_ULONG ulPrfDataLen;CK_UTF8CHAR_PTR pPassword; 05790 CK_ULONG_PTR ulPasswordLen; 05791 } CK_PKCS5_PBKD2_PARAMS; 05792 05793 05795 typedef CK_PKCS5_PBKD2_PARAMS CK_PTR CK_PKCS5_PBKD2_PARAMS_PTR; 05796 05797 05798 05799 05816 typedef struct CK_KEY_WRAP_SET_OAEP_PARAMS { 05818 CK_BYTE bBC; 05820 CK_BYTE_PTR pX; 05822 CK_ULONG ulXLen; 05823 } CK_KEY_WRAP_SET_OAEP_PARAMS; 05824 05825 05827 typedef CK_KEY_WRAP_SET_OAEP_PARAMS CK_PTR CK_KEY_WRAP_SET_OAEP_PARAMS_PTR; 05828 05829 05830 05831 05855 typedef struct CK_SSL3_RANDOM_DATA { 05857 CK_BYTE_PTR pClientRandom; 05859 CK_ULONG ulClientRandomLen; 05861 CK_BYTE_PTR pServerRandom; 05863 CK_ULONG ulServerRandomLen; 05864 } CK_SSL3_RANDOM_DATA; 05865 05866 05867 05868 05899 typedef struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS { 05901 CK_SSL3_RANDOM_DATA RandomInfo; 05903 CK_VERSION_PTR pVersion; 05904 } CK_SSL3_MASTER_KEY_DERIVE_PARAMS; 05905 05906 05908 typedef CK_SSL3_MASTER_KEY_DERIVE_PARAMS CK_PTR CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR; 05909 05910 05939 typedef struct CK_SSL3_KEY_MAT_OUT { 05941 CK_OBJECT_HANDLE hClientMacSecret; 05943 CK_OBJECT_HANDLE hServerMacSecret; 05945 CK_OBJECT_HANDLE hClientKey; 05947 CK_OBJECT_HANDLE hServerKey; 05949 CK_BYTE_PTR pIVClient; 05951 CK_BYTE_PTR pIVServer; 05952 } CK_SSL3_KEY_MAT_OUT; 05953 05954 05956 typedef CK_SSL3_KEY_MAT_OUT CK_PTR CK_SSL3_KEY_MAT_OUT_PTR; 05957 05958 05978 typedef struct CK_SSL3_KEY_MAT_PARAMS { 05980 CK_ULONG ulMacSizeInBits; 05982 CK_ULONG ulKeySizeInBits; 05984 CK_ULONG ulIVSizeInBits; 05986 CK_BBOOL bIsExport; 05988 CK_SSL3_RANDOM_DATA RandomInfo; 05990 CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial; 05991 } CK_SSL3_KEY_MAT_PARAMS; 05992 05993 05995 typedef CK_SSL3_KEY_MAT_PARAMS CK_PTR CK_SSL3_KEY_MAT_PARAMS_PTR; 05996 05997 05998 05999 06039 typedef struct CK_TLS_PRF_PARAMS { 06040 CK_BYTE_PTR pSeed; 06041 CK_ULONG ulSeedLen; 06042 CK_BYTE_PTR pLabel; 06043 CK_ULONG ulLabelLen; 06044 CK_BYTE_PTR pOutput; 06045 CK_ULONG_PTR pulOutputLen; 06046 } CK_TLS_PRF_PARAMS; 06047 06048 06050 typedef CK_TLS_PRF_PARAMS CK_PTR CK_TLS_PRF_PARAMS_PTR; 06051 06052 06053 06054 06095 typedef struct CK_WTLS_RANDOM_DATA { 06096 CK_BYTE_PTR pClientRandom; 06097 CK_ULONG ulClientRandomLen; 06098 CK_BYTE_PTR pServerRandom; 06099 CK_ULONG ulServerRandomLen; 06100 } CK_WTLS_RANDOM_DATA; 06101 06102 06104 typedef CK_WTLS_RANDOM_DATA CK_PTR CK_WTLS_RANDOM_DATA_PTR ; 06105 06106 06146 typedef struct CK_WTLS_MASTER_KEY_DERIVE_PARAMS { 06147 CK_MECHANISM_TYPE DigestMechanism; 06148 CK_WTLS_RANDOM_DATA RandomInfo; 06149 CK_BYTE_PTR pVersion; 06150 } CK_WTLS_MASTER_KEY_DERIVE_PARAMS; 06151 06152 06154 typedef CK_WTLS_MASTER_KEY_DERIVE_PARAMS CK_PTR CK_WTLS_MASTER_KEY_DERIVE_PARAMS_PTR ; 06155 06156 06213 typedef struct CK_WTLS_PRF_PARAMS { 06214 CK_MECHANISM_TYPE DigestMechanism; 06215 CK_BYTE_PTR pSeed; 06216 CK_ULONG ulSeedLen; 06217 CK_BYTE_PTR pLabel; 06218 CK_ULONG ulLabelLen; 06219 CK_BYTE_PTR pOutput; 06220 CK_ULONG_PTR pulOutputLen; 06221 } CK_WTLS_PRF_PARAMS; 06222 06223 06225 typedef CK_WTLS_PRF_PARAMS CK_PTR CK_WTLS_PRF_PARAMS_PTR ; 06226 06227 06270 typedef struct CK_WTLS_KEY_MAT_OUT { 06271 CK_OBJECT_HANDLE hMacSecret; 06272 CK_OBJECT_HANDLE hKey; 06273 CK_BYTE_PTR pIV; 06274 } CK_WTLS_KEY_MAT_OUT; 06275 06276 06278 typedef CK_WTLS_KEY_MAT_OUT CK_PTR CK_WTLS_KEY_MAT_OUT_PTR ; 06279 06280 06344 typedef struct CK_WTLS_KEY_MAT_PARAMS { 06345 CK_MECHANISM_TYPE DigestMechanism; 06346 CK_ULONG ulMacSizeInBits; 06347 CK_ULONG ulKeySizeInBits; 06348 CK_ULONG ulIVSizeInBits; 06349 CK_ULONG ulSequenceNumber; 06350 CK_BBOOL bIsExport; 06351 CK_WTLS_RANDOM_DATA RandomInfo; 06352 CK_WTLS_KEY_MAT_OUT_PTR pReturnedKeyMaterial; 06353 } CK_WTLS_KEY_MAT_PARAMS; 06354 06355 06357 typedef CK_WTLS_KEY_MAT_PARAMS CK_PTR CK_WTLS_KEY_MAT_PARAMS_PTR ; 06358 06359 06360 06361 06384 typedef struct CK_KEY_DERIVATION_STRING_DATA { 06386 CK_BYTE_PTR pData; 06388 CK_ULONG ulLen; 06389 } CK_KEY_DERIVATION_STRING_DATA; 06390 06391 06400 typedef CK_ULONG CK_EXTRACT_PARAMS; 06401 06402 06404 typedef CK_EXTRACT_PARAMS CK_PTR CK_EXTRACT_PARAMS_PTR; 06405 06406 06408 #define CKA_REQUIRED_CMS_ATTRIBUTES 06409 06411 #define CKA_DEFAULT_CMS_ATTRIBUTES 06412 06414 #define CKA_SUPPORTED_CMS_ATTRIBUTES 06415 06416 06417 06418 06419 06435 typedef struct CK_CMS_SIG_PARAMS { 06436 CK_OBJECT_HANDLEcertificateHandle; 06437 CK_MECHANISM_PTRpSigningMechanism; 06438 CK_MECHANISM_PTRpDigestMechanism; 06439 CK_UTF8CHAR_PTRpContentType; 06440 CK_BYTE_PTRpRequestedAttributes; 06441 CK_ULONGulRequestedAttributesLen; 06442 CK_BYTE_PTRpRequiredAttributes; 06443 CK_ULONGulRequiredAttributesLen; 06444 } CK_CMS_SIG_PARAMS; 06445 06446 06448 #define CKA_VALUE 06449 06451 #define CKA_VALUE_LEN 06452 06453 06454 06456 #define CKA_VALUE 06457 06459 #define CKA_VALUE_LEN 06460 06461 06462