Cryptographic Token Interface Standard

PKCS#11


pkcs11_all.h

Go to the documentation of this file.
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 

RSA Security Inc. Public-Key Cryptography Standards - PKCS#11 - v220