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 /* a BYTE-sized Boolean flag */
00057 typedef CK_BYTE CK_BBOOL;
00058 /* an unsigned value, at least 32 bits long */
00062 typedef unsigned long int CK_ULONG;
00063 /* a signed value, the same size as a CK_ULONG */
00067 typedef long int CK_LONG;
00068 /* at least 32 bits; each bit is a Boolean flag */
00072 typedef CK_ULONG CK_FLAGS;
00073 
00074 
00076 typedef CK_BYTE CK_PTR CK_BYTE_PTR;
00078 typedef CK_CHAR CK_PTR CK_CHAR_PTR;
00080 typedef CK_ULONG CK_PTR CK_ULONG_PTR;
00082 typedef void CK_PTR CK_VOID_PTR;
00084 typedef NULL CK_PTR NULL_PTR;
00085 
00086 
00087 
00088 
00116 typedef struct CK_VERSION {
00118 CK_BYTE major;
00120 CK_BYTE minor;
00121 } CK_VERSION;
00122 
00123 
00124 
00125 
00201 typedef struct CK_INFO {
00203 CK_VERSION cryptokiVersion;
00205 CK_CHAR manufacturerID[32];
00207 CK_FLAGS flags;
00209 CK_CHAR libraryDescription[32];
00211 CK_VERSION libraryVersion;
00212 } CK_INFO;
00213 
00214 
00220 typedef CK_ULONG CK_NOTIFICATION;
00221 
00222 
00228 typedef CK_ULONG CK_SLOT_ID;
00229 
00230 
00231 
00232 
00287 typedef struct CK_SLOT_INFO {
00289 CK_CHAR slotDescription[64];
00291 CK_CHAR manufacturerID[32];
00293 CK_FLAGS flags;
00295 CK_VERSION hardwareVersion;
00297 CK_VERSION firmwareVersion;
00298 } CK_SLOT_INFO;
00299 
00300 
00302 #define CKF_TOKEN_PRESENT 0x00000001
00303 
00305 #define CKF_REMOVABLE_DEVICE 0x00000002
00306 
00308 #define CKF_HW_SLOT 0x00000004
00309 
00310 
00311 
00482 typedef struct CK_TOKEN_INFO {
00484 CK_CHAR label[32];
00486 CK_CHAR manufacturerID[32];
00488 CK_CHAR model[16];
00490 CK_CHAR serialNumber[16];
00492 CK_FLAGS flags;
00494 CK_ULONG ulMaxSessionCount;
00496 CK_ULONG ulSessionCount;
00498 CK_ULONG ulMaxRwSessionCount;
00500 CK_ULONG ulRwSessionCount;
00502 CK_ULONG ulMaxPinLen;
00504 CK_ULONG ulMinPinLen;
00506 CK_ULONG ulTotalPublicMemory;
00508 CK_ULONG ulFreePublicMemory;
00510 CK_ULONG ulTotalPrivateMemory;
00512 CK_ULONG ulFreePrivateMemory;
00514 CK_VERSION hardwareVersion;
00516 CK_VERSION firmwareVersion;
00518 CK_CHAR utcTime[16];
00519 } CK_TOKEN_INFO;
00520 
00521 
00523 #define CKF_RNG 0x00000001
00524 
00526 #define CKF_WRITE_PROTECTED 0x00000002
00527 
00529 #define CKF_LOGIN_REQUIRED 0x00000004
00530 
00532 #define CKF_USER_PIN_INITIALIZED 0x00000008
00533 
00535 #define CKF_EXCLUSIVE_EXISTS 0x00000010
00536 
00538 #define CKF_RESTORE_KEY_NOT_NEEDED 0x00000020
00539 
00541 #define CKF_CLOCK_ON_TOKEN 0x00000040
00542 
00544 #define CKF_SUPPORTS_PARALLEL 0x00000080
00545 
00547 #define CKF_PROTECTED_AUTHENTICATION_PATH 0x00000100
00548 
00550 #define CKF_DUAL_CRYPTO_OPERATIONS 0x00000200
00551 
00552 
00553 
00559 typedef CK_ULONG CK_SESSION_HANDLE;
00560 
00561 
00567 typedef CK_ULONG CK_USER_TYPE;
00568 
00569 
00575 typedef CK_ULONG CK_STATE;
00576 
00577 
00578 
00579 
00738 typedef struct CK_SESSION_INFO {
00740 CK_SLOT_ID slotID;
00742 CK_STATE state;
00744 CK_FLAGS flags;
00746 CK_ULONG ulDeviceError;
00747 } CK_SESSION_INFO;
00748 
00749 
00751 #define CKF_EXCLUSIVE_SESSION 0x00000001
00752 
00754 #define CKF_RW_SESSION 0x00000002
00755 
00757 #define CKF_SERIAL_SESSION 0x00000004
00758 
00760 #define CKF_INSERTION_CALLBACK 0x00000008
00761 
00767 typedef CK_ULONG CK_OBJECT_HANDLE;
00768 
00769 
00775 typedef CK_ULONG CK_OBJECT_CLASS;
00776 
00777 
00783 typedef CK_ULONG CK_KEY_TYPE;
00784 
00785 
00791 typedef CK_ULONG CK_CERTIFICATE_TYPE;
00792 
00793 
00799 typedef CK_ULONG CK_ATTRIBUTE_TYPE;
00800 
00801 
00802 
00803 
00834 typedef struct CK_ATTRIBUTE {
00836 CK_ATTRIBUTE_TYPE type;
00838 CK_VOID_PTR pValue;
00840 CK_ULONG ulValueLen;
00841 } CK_ATTRIBUTE;
00842 
00843 
00844 
00845 
00892 typedef struct CK_DATE {
00894 CK_CHAR year[4];
00896 CK_CHAR month[2];
00898 CK_CHAR day[2];
00899 } CK_DATE;
00900 
00901 
00907 typedef CK_ULONG CK_MECHANISM_TYPE;
00908 
00909 
00910 
00911 
00939 typedef struct CK_MECHANISM {
00941 CK_MECHANISM_TYPE mechanism;
00943 CK_VOID_PTR pParameter;
00944 CK_ULONG ulParameterLen;
00945 } CK_MECHANISM;
00946 
00947 
00948 
00949 
01119 typedef struct CK_MECHANISM_INFO {
01121 CK_ULONG ulMinKeySize;
01123 CK_ULONG ulMaxKeySize;
01125 CK_FLAGS flags;
01126 } CK_MECHANISM_INFO;
01127 
01128 
01130 #define CKF_HW 0x00000001
01131 
01133 #define CKF_ENCRYPT 0x00000100
01134 
01136 #define CKF_DECRYPT 0x00000200
01137 
01139 #define CKF_DIGEST 0x00000400
01140 
01142 #define CKF_SIGN 0x00000800
01143 
01145 #define CKF_SIGN_RECOVER 0x00001000
01146 
01148 #define CKF_VERIFY 0x00002000
01149 
01151 #define CKF_VERIFY_RECOVER 0x00004000
01152 
01154 #define CKF_GENERATE 0x00008000
01155 
01157 #define CKF_GENERATE_KEY_PAIR 0x00010000
01158 
01160 #define CKF_WRAP 0x00020000
01161 
01163 #define CKF_UNWRAP 0x00040000
01164 
01166 #define CKF_DERIVE 0x00080000
01167 
01169 #define CKF_EXTENSION 0x80000000
01170 
01176 typedef CK_ULONG CK_RV;
01177 
01178 
01186 typedef CK_RV (CK_ENTRY * CK_NOTIFY)(
01187 CK_SESSION_HANDLE hSession,
01188 CK_NOTIFICATION event,
01189 CK_VOID_PTR pApplication
01190 );
01191 
01192 
01193 
01194 
01209 typedef struct CK_FUNCTION_LIST {
01210 CK_VERSION version;
01211 CK_C_Initialize C_Initialize;
01212 CK_C_Finalize C_Finalize;
01213 CK_C_GetInfo C_GetInfo;
01214 CK_C_GetFunctionList C_GetFunctionList;
01215 CK_C_GetSlotList C_GetSlotList;
01216 CK_C_GetSlotInfo C_GetSlotInfo;
01217 CK_C_GetTokenInfo C_GetTokenInfo;
01218 CK_C_GetMechanismList C_GetMechanismList;
01219 CK_C_GetMechanismInfo C_GetMechanismInfo;
01220 CK_C_InitToken C_InitToken;
01221 CK_C_InitPIN C_InitPIN;
01222 CK_C_SetPIN C_SetPIN;
01223 CK_C_OpenSession C_OpenSession;
01224 CK_C_CloseSession C_CloseSession;
01225 CK_C_CloseAllSessions C_CloseAllSessions;
01226 CK_C_GetSessionInfo C_GetSessionInfo;
01227 CK_C_GetOperationState C_GetOperationState;
01228 CK_C_SetOperationState C_SetOperationState;
01229 CK_C_Login C_Login;
01230 CK_C_Logout C_Logout;
01231 CK_C_CreateObject C_CreateObject;
01232 CK_C_CopyObject C_CopyObject;
01233 CK_C_DestroyObject C_DestroyObject;
01234 CK_C_GetObjectSize C_GetObjectSize;
01235 CK_C_GetAttributeValue C_GetAttributeValue;
01236 CK_C_SetAttributeValue C_SetAttributeValue;
01237 CK_C_FindObjectsInit C_FindObjectsInit;
01238 CK_C_FindObjects C_FindObjects;
01239 CK_C_FindObjectsFinal C_FindObjectsFinal;
01240 CK_C_EncryptInit C_EncryptInit;
01241 CK_C_Encrypt C_Encrypt;
01242 CK_C_EncryptUpdate C_EncryptUpdate;
01243 CK_C_EncryptFinal C_EncryptFinal;
01244 CK_C_DecryptInit C_DecryptInit;
01245 CK_C_Decrypt C_Decrypt;
01246 CK_C_DecryptUpdate C_DecryptUpdate;
01247 CK_C_DecryptFinal C_DecryptFinal;
01248 CK_C_DigestInit C_DigestInit;
01249 CK_C_Digest C_Digest;
01250 CK_C_DigestUpdate C_DigestUpdate;
01251 CK_C_DigestKey C_DigestKey;
01252 CK_C_DigestFinal C_DigestFinal;
01253 CK_C_SignInit C_SignInit;
01254 CK_C_Sign C_Sign;
01255 CK_C_SignUpdate C_SignUpdate;
01256 CK_C_SignFinal C_SignFinal;
01257 CK_C_SignRecoverInit C_SignRecoverInit;
01258 CK_C_SignRecover C_SignRecover;
01259 CK_C_VerifyInit C_VerifyInit;
01260 CK_C_Verify C_Verify;
01261 CK_C_VerifyUpdate C_VerifyUpdate;
01262 CK_C_VerifyFinal C_VerifyFinal;
01263 CK_C_VerifyRecoverInit C_VerifyRecoverInit;
01264 CK_C_VerifyRecover C_VerifyRecover;
01265 CK_C_DigestEncryptUpdate C_DigestEncryptUpdate;
01266 CK_C_DecryptDigestUpdate C_DecryptDigestUpdate;
01267 CK_C_SignEncryptUpdate C_SignEncryptUpdate;
01268 CK_C_DecryptVerifyUpdate C_DecryptVerifyUpdate;
01269 CK_C_GenerateKey C_GenerateKey;
01270 CK_C_GenerateKeyPair C_GenerateKeyPair;
01271 CK_C_WrapKey C_WrapKey;
01272 CK_C_UnwrapKey C_UnwrapKey;
01273 CK_C_DeriveKey C_DeriveKey;
01274 CK_C_SeedRandom C_SeedRandom;
01275 CK_C_GenerateRandom C_GenerateRandom;
01276 CK_C_GetFunctionStatus C_GetFunctionStatus;
01277 CK_C_CancelFunction C_CancelFunction;
01278 } CK_FUNCTION_LIST;
01279 
01280 
01282 #define CKA_CLASS 
01283 
01285 #define CKA_TOKEN 
01286 
01288 #define CKA_PRIVATE 
01289 
01291 #define CKA_MODIFIABLE 
01292 
01294 #define CKA_LABEL 
01295 
01297 #define CKA_APPLICATION 
01298 
01300 #define CKA_VALUE 
01301 
01302 
01303 
01305 #define CKA_CERTIFICATE_TYPE 
01306 
01308 #define CKA_SUBJECT 
01309 
01311 #define CKA_ID 
01312 
01314 #define CKA_ISSUER 
01315 
01317 #define CKA_SERIAL_NUMBER 
01318 
01320 #define CKA_VALUE 
01321 
01322 
01323 
01325 #define CKA_KEY_TYPE 
01326 
01328 #define CKA_ID 
01329 
01331 #define CKA_START_DATE 
01332 
01334 #define CKA_END_DATE 
01335 
01337 #define CKA_DERIVE 
01338 
01340 #define CKA_LOCAL 
01341 
01343 #define CKA_SUBJECT 
01344 
01346 #define CKA_ENCRYPT 
01347 
01349 #define CKA_VERIFY 
01350 
01352 #define CKA_VERIFY_RECOVER 
01353 
01355 #define CKA_WRAP 
01356 
01358 #define CKA_MODULUS 
01359 
01361 #define CKA_MODULUS_BITS 
01362 
01364 #define CKA_PUBLIC_EXPONENT 
01365 
01366 
01367 
01369 #define CKA_PRIME 
01370 
01372 #define CKA_SUBPRIME 
01373 
01375 #define CKA_BASE 
01376 
01378 #define CKA_VALUE 
01379 
01380 
01381 
01383 #define CKA_PRIME 
01384 
01386 #define CKA_SUBPRIME 
01387 
01389 #define CKA_BASE 
01390 
01392 #define CKA_VALUE 
01393 
01394 
01395 
01397 #define CKA_PRIME 
01398 
01400 #define CKA_BASE 
01401 
01403 #define CKA_VALUE 
01404 
01405 
01406 
01408 #define CKA_PRIME 
01409 
01411 #define CKA_SUBPRIME 
01412 
01414 #define CKA_BASE 
01415 
01417 #define CKA_VALUE 
01418 
01419 
01420 
01422 #define CKA_PRIME 
01423 
01425 #define CKA_SUBPRIME 
01426 
01428 #define CKA_BASE 
01429 
01431 #define CKA_VALUE 
01432 
01433 
01434 
01436 #define CKA_SUBJECT 
01437 
01439 #define CKA_SENSITIVE 
01440 
01442 #define CKA_DECRYPT 
01443 
01445 #define CKA_SIGN 
01446 
01448 #define CKA_SIGN_RECOVER 
01449 
01451 #define CKA_UNWRAP 
01452 
01454 #define CKA_EXTRACTABLE 
01455 
01457 #define CKA_ALWAYS_SENSITIVE 
01458 
01460 #define CKA_NEVER_EXTRACTABLE 
01461 
01463 #define CKA_MODULUS 
01464 
01466 #define CKA_PUBLIC_EXPONENT 
01467 
01469 #define CKA_PRIVATE_EXPONENT 
01470 
01472 #define CKA_PRIME_1 
01473 
01475 #define CKA_PRIME_2 
01476 
01478 #define CKA_EXPONENT_1 
01479 
01481 #define CKA_EXPONENT_2 
01482 
01484 #define CKA_COEFFICIENT 
01485 
01486 
01487 
01489 #define CKA_PRIME 
01490 
01492 #define CKA_SUBPRIME 
01493 
01495 #define CKA_BASE 
01496 
01498 #define CKA_VALUE 
01499 
01500 
01501 
01503 #define CKA_PRIME 
01504 
01506 #define CKA_SUBPRIME 
01507 
01509 #define CKA_BASE 
01510 
01512 #define CKA_VALUE 
01513 
01514 
01515 
01517 #define CKA_PRIME 
01518 
01520 #define CKA_BASE 
01521 
01523 #define CKA_VALUE 
01524 
01526 #define CKA_VALUE_BITS 
01527 
01528 
01529 
01531 #define CKA_PRIME 
01532 
01534 #define CKA_SUBPRIME 
01535 
01537 #define CKA_BASE 
01538 
01540 #define CKA_VALUE 
01541 
01542 
01543 
01545 #define CKA_PRIME 
01546 
01548 #define CKA_SUBPRIME 
01549 
01551 #define CKA_BASE 
01552 
01554 #define CKA_VALUE 
01555 
01556 
01557 
01559 #define CKA_SENSITIVE 
01560 
01562 #define CKA_ENCRYPT 
01563 
01565 #define CKA_DECRYPT 
01566 
01568 #define CKA_SIGN 
01569 
01571 #define CKA_VERIFY 
01572 
01574 #define CKA_WRAP 
01575 
01577 #define CKA_UNWRAP 
01578 
01580 #define CKA_EXTRACTABLE 
01581 
01583 #define CKA_ALWAYS_SENSITIVE 
01584 
01586 #define CKA_NEVER_EXTRACTABLE 
01587 
01589 #define CKA_VALUE 
01590 
01592 #define CKA_VALUE_LEN 
01593 
01594 
01595 
01597 #define CKA_VALUE 
01598 
01600 #define CKA_VALUE_LEN 
01601 
01602 
01603 
01605 #define CKA_VALUE 
01606 
01608 #define CKA_VALUE_LEN 
01609 
01610 
01611 
01613 #define CKA_VALUE 
01614 
01616 #define CKA_VALUE_LEN 
01617 
01618 
01619 
01621 #define CKA_VALUE 
01622 
01623 
01624 
01626 #define CKA_VALUE 
01627 
01628 
01629 
01631 #define CKA_VALUE 
01632 
01633 
01634 
01636 #define CKA_VALUE 
01637 
01639 #define CKA_VALUE_LEN 
01640 
01641 
01642 
01644 #define CKA_VALUE 
01645 
01647 #define CKA_VALUE_LEN 
01648 
01649 
01650 
01652 #define CKA_VALUE 
01653 
01655 #define CKA_VALUE_LEN 
01656 
01657 
01658 
01660 #define CKA_VALUE 
01661 
01662 
01663 
01665 #define CKA_VALUE 
01666 
01667 
01668 
01670 #define CKA_VALUE 
01671 
01672 
01673 
01675 #define CKA_VALUE 
01676 
01677 
01678 
01680 #define CKA_VALUE 
01681 
01682 
01683 
01685 #define CKR_GENERAL_ERROR
01686 
01688 #define CKR_HOST_MEMORY
01689 
01691 #define CKR_FUNCTION_FAILED
01692 
01694 #define CKR_OK
01695 
01697 #define CKR_SESSION_HANDLE_INVALID
01698 
01700 #define CKR_DEVICE_REMOVED
01701 
01703 #define CKR_SESSION_CLOSED
01704 
01706 #define CKR_DEVICE_MEMORY
01707 
01709 #define CKR_DEVICE_ERROR
01710 
01712 #define CKR_TOKEN_NOT_PRESENT
01713 
01715 #define CKR_DEVICE_REMOVED
01716 
01718 #define CKR_ATTRIBUTE_READ_ONLY
01719 
01721 #define CKR_ATTRIBUTE_SENSITIVE
01722 
01724 #define CKR_ATTRIBUTE_TYPE_INVALID
01725 
01727 #define CKR_ATTRIBUTE_VALUE_INVALID
01728 
01730 #define CKR_BUFFER_TOO_SMALL
01731 
01733 #define CKR_CANCEL
01734 
01736 #define CKR_DATA_INVALID
01737 
01739 #define CKR_DATA_LEN_RANGE
01740 
01742 #define CKR_ENCRYPTED_DATA_INVALID
01743 
01745 #define CKR_ENCRYPTED_DATA_LEN_RANGE
01746 
01748 #define CKR_FUNCTION_CANCELED
01749 
01751 #define CKR_FUNCTION_NOT_PARALLEL
01752 
01754 #define CKR_FUNCTION_NOT_SUPPORTED
01755 
01757 #define CKR_FUNCTION_PARALLEL
01758 
01760 #define CKR_INFORMATION_SENSITIVE
01761 
01763 #define CKR_INSERTION_CALLBACK_NOT_SUPPORTED
01764 
01766 #define CKR_KEY_CHANGED
01767 
01769 #define CKR_KEY_FUNCTION_NOT_PERMITTED
01770 
01772 #define CKR_KEY_HANDLE_INVALID
01773 
01775 #define CKR_KEY_INDIGESTIBLE
01776 
01778 #define CKR_KEY_NEEDED
01779 
01781 #define CKR_KEY_NOT_NEEDED
01782 
01784 #define CKR_KEY_NOT_WRAPPABLE
01785 
01787 #define CKR_KEY_SIZE_RANGE
01788 
01790 #define CKR_KEY_TYPE_INCONSISTENT
01791 
01793 #define CKR_KEY_UNEXTRACTABLE
01794 
01796 #define CKR_MECHANISM_INVALID
01797 
01799 #define CKR_MECHANISM_PARAM_INVALID
01800 
01802 #define CKR_OBJECT_HANDLE_INVALID
01803 
01805 #define CKR_OPERATION_ACTIVE
01806 
01808 #define CKR_OPERATION_NOT_INITIALIZED
01809 
01811 #define CKR_PIN_INCORRECT
01812 
01814 #define CKR_PIN_INVALID
01815 
01817 #define CKR_PIN_LEN_RANGE
01818 
01820 #define CKR_RANDOM_NO_RNG
01821 
01823 #define CKR_RANDOM_SEED_NOT_SUPPORTED
01824 
01826 #define CKR_SAVED_STATE_INVALID
01827 
01829 #define CKR_SESSION_COUNT
01830 
01832 #define CKR_SESSION_EXCLUSIVE_EXISTS
01833 
01835 #define CKR_SESSION_EXISTS
01836 
01838 #define CKR_SESSION_PARALLEL_NOT_SUPPORTED
01839 
01841 #define CKR_SESSION_READ_ONLY
01842 
01844 #define CKR_SESSION_READ_ONLY_EXISTS
01845 
01847 #define CKR_SESSION_READ_WRITE_SO_EXISTS
01848 
01850 #define CKR_SIGNATURE_LEN_RANGE
01851 
01853 #define CKR_SIGNATURE_INVALID
01854 
01856 #define CKR_SLOT_ID_INVALID
01857 
01859 #define CKR_STATE_UNSAVEABLE
01860 
01862 #define CKR_TEMPLATE_INCOMPLETE
01863 
01865 #define CKR_TEMPLATE_INCONSISTENT
01866 
01868 #define CKR_TOKEN_NOT_RECOGNIZED
01869 
01871 #define CKR_TOKEN_WRITE_PROTECTED
01872 
01874 #define CKR_UNWRAPPING_KEY_HANDLE_INVALID
01875 
01877 #define CKR_UNWRAPPING_KEY_SIZE_RANGE
01878 
01880 #define CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT
01881 
01883 #define CKR_USER_ALREADY_LOGGED_IN
01884 
01886 #define CKR_USER_NOT_LOGGED_IN
01887 
01889 #define CKR_USER_PIN_NOT_INITIALIZED
01890 
01892 #define CKR_USER_TYPE_INVALID
01893 
01895 #define CKR_WRAPPED_KEY_INVALID
01896 
01898 #define CKR_WRAPPED_KEY_LEN_RANGE
01899 
01901 #define CKR_WRAPPING_KEY_HANDLE_INVALID
01902 
01904 #define CKR_WRAPPING_KEY_SIZE_RANGE
01905 
01907 #define CKR_WRAPPING_KEY_TYPE_INCONSISTENT
01908 
01927 CK_RV C_Initialize(
01928 CK_VOID_PTR pReserved
01929 );
01930 
01931 
01949 CK_RV C_Finalize(
01950 CK_VOID_PTR pReserved
01951 );
01952 
01953 
01966 CK_RV C_GetInfo(
01967 CK_INFO_PTR pInfo
01968 );
01969 
01970 
01995 CK_RV C_GetFunctionList(
01996 CK_FUNCTION_LIST_PTR_PTR ppFunctionList
01997 );
01998 
01999 
02036 CK_RV C_GetSlotList(
02037 CK_BBOOL tokenPresent,
02038 CK_SLOT_ID_PTR pSlotList,
02039 CK_ULONG_PTR pulCount
02040 );
02041 
02042 
02054 CK_RV C_GetSlotInfo(
02055 CK_SLOT_ID slotID,
02056 CK_SLOT_INFO_PTR pInfo
02057 );
02058 
02059 
02074 CK_RV C_GetTokenInfo(
02075 CK_SLOT_ID slotID,
02076 CK_TOKEN_INFO_PTR pInfo
02077 );
02078 
02079 
02114 CK_RV C_GetMechanismList(
02115 CK_SLOT_ID slotID,
02116 CK_MECHANISM_TYPE_PTR pMechanismList,
02117 CK_ULONG_PTR pulCount
02118 );
02119 
02120 
02137 CK_RV C_GetMechanismInfo(
02138 CK_SLOT_ID slotID,
02139 CK_MECHANISM_TYPE type,
02140 CK_MECHANISM_INFO_PTR pInfo
02141 );
02142 
02143 
02191 CK_RV C_InitToken(
02192 CK_SLOT_ID slotID,
02193 CK_CHAR_PTR pPin,
02194 CK_ULONG ulPinLen,
02195 CK_CHAR_PTR pLabel
02196 );
02197 
02198 
02234 CK_RV C_InitPIN(
02235 CK_SESSION_HANDLE hSession,
02236 CK_CHAR_PTR pPin,
02237 CK_ULONG ulPinLen
02238 );
02239 
02240 
02311 CK_RV C_SetPIN(
02312 CK_SESSION_HANDLE hSession,
02313 CK_CHAR_PTR pOldPin,
02314 CK_ULONG ulOldLen,
02315 CK_CHAR_PTR pNewPin,
02316 CK_ULONG ulNewLen
02317 );
02318 
02319 
02424 CK_RV C_OpenSession(
02425 CK_SLOT_ID slotID,
02426 CK_FLAGS flags,
02427 CK_VOID_PTR pApplication,
02428 CK_NOTIFY Notify,
02429 CK_SESSION_HANDLE_PTR phSession
02430 );
02431 
02432 
02463 CK_RV C_CloseSession(
02464 CK_SESSION_HANDLE hSession
02465 );
02466 
02467 
02491 CK_RV C_CloseAllSessions(
02492 CK_SLOT_ID slotID
02493 );
02494 
02495 
02510 CK_RV C_GetSessionInfo(
02511 CK_SESSION_HANDLE hSession,
02512 CK_SESSION_INFO_PTR pInfo
02513 );
02514 
02515 
02589 CK_RV C_GetOperationState(
02590 CK_SESSION_HANDLE hSession,
02591 CK_BYTE_PTR pOperationState,
02592 CK_ULONG_PTR pulOperationStateLen
02593 );
02594 
02595 
02675 CK_RV C_SetOperationState(
02676 CK_SESSION_HANDLE hSession,
02677 CK_BYTE_PTR pOperationState,
02678 CK_ULONG ulOperationStateLen,
02679 CK_OBJECT_HANDLE hEncryptionKey,
02680 CK_OBJECT_HANDLE hAuthenticationKey
02681 );
02682 
02683 
02727 CK_RV C_Login(
02728 CK_SESSION_HANDLE hSession,
02729 CK_USER_TYPE userType,
02730 CK_CHAR_PTR pPin,
02731 CK_ULONG ulPinLen
02732 );
02733 
02734 
02769 CK_RV C_Logout(
02770 CK_SESSION_HANDLE hSession
02771 );
02772 
02773 
02799 CK_RV C_CreateObject(
02800 CK_SESSION_HANDLE hSession,
02801 CK_ATTRIBUTE_PTR pTemplate,
02802 CK_ULONG ulCount,
02803 CK_OBJECT_HANDLE_PTR phObject
02804 );
02805 
02806 
02845 CK_RV C_CopyObject(
02846 CK_SESSION_HANDLE hSession,
02847 CK_OBJECT_HANDLE hObject,
02848 CK_ATTRIBUTE_PTR pTemplate,
02849 CK_ULONG ulCount,
02850 CK_OBJECT_HANDLE_PTR phNewObject
02851 );
02852 
02853 
02870 CK_RV C_DestroyObject(
02871 CK_SESSION_HANDLE hSession,
02872 CK_OBJECT_HANDLE hObject
02873 );
02874 
02875 
02898 CK_RV C_GetObjectSize(
02899 CK_SESSION_HANDLE hSession,
02900 CK_OBJECT_HANDLE hObject,
02901 CK_ULONG_PTR pulSize
02902 );
02903 
02904 
02954 CK_RV C_GetAttributeValue(
02955 CK_SESSION_HANDLE hSession,
02956 CK_OBJECT_HANDLE hObject,
02957 CK_ATTRIBUTE_PTR pTemplate,
02958 CK_ULONG ulCount
02959 );
02960 
02961 
02990 CK_RV C_SetAttributeValue(
02991 CK_SESSION_HANDLE hSession,
02992 CK_OBJECT_HANDLE hObject,
02993 CK_ATTRIBUTE_PTR pTemplate,
02994 CK_ULONG ulCount
02995 );
02996 
02997 
03038 CK_RV C_FindObjectsInit(
03039 CK_SESSION_HANDLE hSession,
03040 CK_ATTRIBUTE_PTR pTemplate,
03041 CK_ULONG ulCount
03042 );
03043 
03044 
03065 CK_RV C_FindObjects(
03066 CK_SESSION_HANDLE hSession,
03067 CK_OBJECT_HANDLE_PTR phObject,CK_ULONG ulMaxObjectCount,
03068 CK_ULONG_PTR pulObjectCount
03069 );
03070 
03071 
03094 CK_RV C_FindObjectsFinal(
03095 CK_SESSION_HANDLE hSession
03096 );
03097 
03098 
03128 CK_RV C_EncryptInit(
03129 CK_SESSION_HANDLE hSession,
03130 CK_MECHANISM_PTR pMechanism,
03131 CK_OBJECT_HANDLE hKey
03132 );
03133 
03134 
03174 CK_RV C_Encrypt(
03175 CK_SESSION_HANDLE hSession,
03176 CK_BYTE_PTR pData,
03177 CK_ULONG ulDataLen,
03178 CK_BYTE_PTR pEncryptedData,
03179 CK_ULONG_PTR pulEncryptedDataLen
03180 );
03181 
03182 
03218 CK_RV C_EncryptUpdate(
03219 CK_SESSION_HANDLE hSession,
03220 CK_BYTE_PTR pPart,
03221 CK_ULONG ulPartLen,
03222 CK_BYTE_PTR pEncryptedPart,
03223 CK_ULONG_PTR pulEncryptedPartLen
03224 );
03225 
03226 
03266 CK_RV C_EncryptFinal(
03267 CK_SESSION_HANDLE hSession,
03268 CK_BYTE_PTR pLastEncryptedPart,
03269 CK_ULONG_PTR pulLastEncryptedPartLen
03270 );
03271 
03272 
03302 CK_RV C_DecryptInit(
03303 CK_SESSION_HANDLE hSession,
03304 CK_MECHANISM_PTR pMechanism,
03305 CK_OBJECT_HANDLE hKey
03306 );
03307 
03308 
03346 CK_RV C_Decrypt(
03347 CK_SESSION_HANDLE hSession,
03348 CK_BYTE_PTR pEncryptedData,
03349 CK_ULONG ulEncryptedDataLen,
03350 CK_BYTE_PTR pData,
03351 CK_ULONG_PTR pulDataLen
03352 );
03353 
03354 
03385 CK_RV C_DecryptUpdate(
03386 CK_SESSION_HANDLE hSession,
03387 CK_BYTE_PTR pEncryptedPart,
03388 CK_ULONG ulEncryptedPartLen,
03389 CK_BYTE_PTR pPart,
03390 CK_ULONG_PTR pulPartLen
03391 );
03392 
03393 
03433 CK_RV C_DecryptFinal(
03434 CK_SESSION_HANDLE hSession,
03435 CK_BYTE_PTR pLastPart,
03436 CK_ULONG_PTR pulLastPartLen
03437 );
03438 
03439 
03463 CK_RV C_DigestInit(
03464 CK_SESSION_HANDLE hSession,
03465 CK_MECHANISM_PTR pMechanism
03466 );
03467 
03468 
03500 CK_RV C_Digest(
03501 CK_SESSION_HANDLE hSession,
03502 CK_BYTE_PTR pData,
03503 CK_ULONG ulDataLen,
03504 CK_BYTE_PTR pDigest,
03505 CK_ULONG_PTR pulDigestLen
03506 );
03507 
03508 
03529 CK_RV C_DigestUpdate(
03530 CK_SESSION_HANDLE hSession,
03531 CK_BYTE_PTR pPart,
03532 CK_ULONG ulPartLen
03533 );
03534 
03535 
03558 CK_RV C_DigestKey(
03559 CK_SESSION_HANDLE hSession,
03560 CK_OBJECT_HANDLE hKey
03561 );
03562 
03563 
03599 CK_RV C_DigestFinal(
03600 CK_SESSION_HANDLE hSession,
03601 CK_BYTE_PTR pDigest,
03602 CK_ULONG_PTR pulDigestLen
03603 );
03604 
03605 
03634 CK_RV C_SignInit(
03635 CK_SESSION_HANDLE hSession,
03636 CK_MECHANISM_PTR pMechanism,
03637 CK_OBJECT_HANDLE hKey
03638 );
03639 
03640 
03671 CK_RV C_Sign(
03672 CK_SESSION_HANDLE hSession,
03673 CK_BYTE_PTR pData,
03674 CK_ULONG ulDataLen,
03675 CK_BYTE_PTR pSignature,
03676 CK_ULONG_PTR pulSignatureLen
03677 );
03678 
03679 
03699 CK_RV C_SignUpdate(
03700 CK_SESSION_HANDLE hSession,
03701 CK_BYTE_PTR pPart,
03702 CK_ULONG ulPartLen
03703 );
03704 
03705 
03732 CK_RV C_SignFinal(
03733 CK_SESSION_HANDLE hSession,
03734 CK_BYTE_PTR pSignature,
03735 CK_ULONG_PTR pulSignatureLen
03736 );
03737 
03738 
03766 CK_RV C_SignRecoverInit(
03767 CK_SESSION_HANDLE hSession,
03768 CK_MECHANISM_PTR pMechanism,
03769 CK_OBJECT_HANDLE hKey
03770 );
03771 
03772 
03811 CK_RV C_SignRecover(
03812 CK_SESSION_HANDLE hSession,
03813 CK_BYTE_PTR pData,
03814 CK_ULONG ulDataLen,
03815 CK_BYTE_PTR pSignature,
03816 CK_ULONG_PTR pulSignatureLen
03817 );
03818 
03819 
03849 CK_RV C_VerifyInit(
03850 CK_SESSION_HANDLE hSession,
03851 CK_MECHANISM_PTR pMechanism,
03852 CK_OBJECT_HANDLE hKey
03853 );
03854 
03855 
03887 CK_RV C_Verify(
03888 CK_SESSION_HANDLE hSession,
03889 CK_BYTE_PTR pData,
03890 CK_ULONG ulDataLen,
03891 CK_BYTE_PTR pSignature,
03892 CK_ULONG ulSignatureLen
03893 );
03894 
03895 
03915 CK_RV C_VerifyUpdate(
03916 CK_SESSION_HANDLE hSession,
03917 CK_BYTE_PTR pPart,
03918 CK_ULONG ulPartLen
03919 );
03920 
03921 
03950 CK_RV C_VerifyFinal(
03951 CK_SESSION_HANDLE hSession,
03952 CK_BYTE_PTR pSignature,
03953 CK_ULONG ulSignatureLen
03954 );
03955 
03956 
03983 CK_RV C_VerifyRecoverInit(
03984 CK_SESSION_HANDLE hSession,
03985 CK_MECHANISM_PTR pMechanism,
03986 CK_OBJECT_HANDLE hKey
03987 );
03988 
03989 
04040 CK_RV C_VerifyRecover(
04041 CK_SESSION_HANDLE hSession,
04042 CK_BYTE_PTR pSignature,
04043 CK_ULONG ulSignatureLen,
04044 CK_BYTE_PTR pData,
04045 CK_ULONG_PTR pulDataLen
04046 );
04047 
04048 
04079 CK_RV C_DigestEncryptUpdate(
04080 CK_SESSION_HANDLE hSession,
04081 CK_BYTE_PTR pPart,
04082 CK_ULONG ulPartLen,
04083 CK_BYTE_PTR pEncryptedPart,
04084 CK_ULONG_PTR pulEncryptedPartLen
04085 );
04086 
04087 
04161 CK_RV C_DecryptDigestUpdate(
04162 CK_SESSION_HANDLE hSession,
04163 CK_BYTE_PTR pEncryptedPart,
04164 CK_ULONG ulEncryptedPartLen,
04165 CK_BYTE_PTR pPart,
04166 CK_ULONG_PTR pulPartLen
04167 );
04168 
04169 
04198 CK_RV C_SignEncryptUpdate(
04199 CK_SESSION_HANDLE hSession,
04200 CK_BYTE_PTR pPart,
04201 CK_ULONG ulPartLen,
04202 CK_BYTE_PTR pEncryptedPart,
04203 CK_ULONG_PTR pulEncryptedPartLen
04204 );
04205 
04206 
04286 CK_RV C_DecryptVerifyUpdate(
04287 CK_SESSION_HANDLE hSession,
04288 CK_BYTE_PTR pEncryptedPart,
04289 CK_ULONG ulEncryptedPartLen,
04290 CK_BYTE_PTR pPart,
04291 CK_ULONG_PTR pulPartLen
04292 );
04293 
04294 
04326 CK_RV C_GenerateKey(
04327 CK_SESSION_HANDLE hSession,
04328 CK_MECHANISM_PTR pMechanism,
04329 CK_ATTRIBUTE_PTR pTemplate,
04330 CK_ULONG ulCount,
04331 CK_OBJECT_HANDLE_PTR phKey
04332 );
04333 
04334 
04369 CK_RV C_GenerateKeyPair(
04370 CK_SESSION_HANDLE hSession,
04371 CK_MECHANISM_PTR pMechanism,
04372 CK_ATTRIBUTE_PTR pPublicKeyTemplate,
04373 CK_ULONG ulPublicKeyAttributeCount,
04374 CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
04375 CK_ULONG ulPrivateKeyAttributeCount,
04376 CK_OBJECT_HANDLE_PTR phPublicKey,
04377 CK_OBJECT_HANDLE_PTR phPrivateKey
04378 );
04379 
04380 
04432 CK_RV C_WrapKey(
04433 CK_SESSION_HANDLE hSession,
04434 CK_MECHANISM_PTR pMechanism,
04435 CK_OBJECT_HANDLE hWrappingKey,
04436 CK_OBJECT_HANDLE hKey,
04437 CK_BYTE_PTR pWrappedKey,
04438 CK_ULONG_PTR pulWrappedKeyLen
04439 );
04440 
04441 
04488 CK_RV C_UnwrapKey(
04489 CK_SESSION_HANDLE hSession,
04490 CK_MECHANISM_PTR pMechanism,
04491 CK_OBJECT_HANDLE hUnwrappingKey,
04492 CK_BYTE_PTR pWrappedKey,
04493 CK_ULONG ulWrappedKeyLen,
04494 CK_ATTRIBUTE_PTR pTemplate,
04495 CK_ULONG ulAttributeCount,
04496 CK_OBJECT_HANDLE_PTR phKey
04497 );
04498 
04499 
04541 CK_RV C_DeriveKey(
04542 CK_SESSION_HANDLE hSession,
04543 CK_MECHANISM_PTR pMechanism,
04544 CK_OBJECT_HANDLE hBaseKey,
04545 CK_ATTRIBUTE_PTR pTemplate,
04546 CK_ULONG ulAttributeCount,
04547 CK_OBJECT_HANDLE_PTR phKey
04548 );
04549 
04550 
04571 CK_RV C_SeedRandom(
04572 CK_SESSION_HANDLE hSession,
04573 CK_BYTE_PTR pSeed,
04574 CK_ULONG ulSeedLen
04575 );
04576 
04577 
04600 CK_RV C_GenerateRandom(
04601 CK_SESSION_HANDLE hSession,
04602 CK_BYTE_PTR pRandomData,
04603 CK_ULONG ulRandomLen
04604 );
04605 
04606 
04647 CK_RV C_GetFunctionStatus(
04648 CK_SESSION_HANDLE hSession
04649 );
04650 
04651 
04728 CK_RV C_CancelFunction(
04729 CK_SESSION_HANDLE hSession
04730 );
04731 
04732 
04733 
04734 
04825 typedef struct CK_KEA_DERIVE_PARAMS {
04827 CK_BBOOL isSender;
04829 CK_ULONG ulRandomLen;
04831 CK_BYTE_PTR pRandomA;
04833 CK_BYTE_PTR pRandomB;
04835 CK_ULONG ulPublicDataLen;
04837 CK_BYTE_PTR pPublicData;
04838 } CK_KEA_DERIVE;
04839 
04840 
04841 
04842 
05031 typedef struct CK_MAYFLY_DERIVE_PARAMS {
05033 CK_BBOOL isSender;
05035 CK_ULONG ulRandomLen;
05037 CK_BYTE_PTR pRandomA;
05039 CK_BYTE_PTR pRandomB;
05041 CK_ULONG ulPublicDataLen;
05043 CK_BYTE_PTR pPublicData;
05044 } CK_MAYFLY_DERIVE;
05045 
05046 
05047 
05048 
05075 typedef struct CK_RC2_CBC_PARAMS {
05077 CK_ULONG ulEffectiveBits;
05079 CK_BYTE iv[8];
05080 } CK_RC2_CBC_PARAMS;
05081 
05082 
05083 
05084 
05530 typedef struct CK_RC2_MAC_GENERAL_PARAMS {
05532 CK_ULONG ulEffectiveBits;
05534 CK_ULONG ulMacLength;
05535 } CK_RC2_MAC_GENERAL_PARAMS;
05536 
05537 
05538 
05539 
05540 
05541 
05570 typedef struct CK_RC5_CBC_PARAMS {
05572 CK_ULONG ulWordsize;
05574 CK_ULONG ulRounds;
05576 CK_BYTE_PTR pIv;
05578 CK_ULONG ulIvLen;
05579 } CK_RC5_CBC_PARAMS;
05580 
05581 
05582 
05583 
06301 typedef struct CK_RC5_MAC_GENERAL_PARAMS {
06303 CK_ULONG ulWordsize;
06305 CK_ULONG ulRounds;
06307 CK_ULONG ulMacLength;
06308 } CK_RC5_MAC_GENERAL_PARAMS;
06309 
06310 
06318 typedef CK_ULONG CK_MAC_GENERAL_PARAMS;
06319 
06320 
06321 
06322 
06357 typedef struct CK_SKIPJACK_PRIVATE_WRAP_PARAMS {
06359 CK_ULONG ulPasswordLen;
06361 CK_BYTE_PTR pPassword;
06363 CK_ULONG ulPublicDataLen;
06365 CK_BYTE_PTR pPublicData;
06367 CK_ULONG ulPandGLen;
06369 CK_ULONG ulQLen;
06371 CK_ULONG ulRandomLen;
06373 CK_BYTE_PTR pRandomA;
06375 CK_BYTE_PTR pPrimeP;
06377 CK_BYTE_PTR pBaseG;
06379 CK_BYTE_PTR pSubprimeQ;
06380 } CK_SKIPJACK_PRIVATE_WRAP_PARAMS;
06381 
06382 
06383 
06384 
07633 typedef struct CK_SKIPJACK_RELAYX_PARAMS {
07635 CK_ULONG ulOldWrappedXLen;
07637 CK_BYTE_PTR pOldWrappedX;
07639 CK_ULONG ulOldPasswordLen;
07641 CK_BYTE_PTR pOldPassword;
07643 CK_ULONG ulOldPublicDataLen;
07645 CK_BYTE_PTR pOldPublicData;
07647 CK_ULONG ulOldRandomLen;
07649 CK_BYTE_PTR pOldRandomA;
07651 CK_ULONG ulNewPasswordLen;
07653 CK_BYTE_PTR pNewPassword;
07655 CK_ULONG ulNewPublicDataLen;
07657 CK_BYTE_PTR pNewPublicData;
07659 CK_ULONG ulNewRandomLen;
07661 CK_BYTE_PTR pNewRandomA;
07662 } CK_SKIPJACK_RELAYX_PARAMS;
07663 
07664 
07665 
07666 
07770 typedef struct CK_PBE_PARAMS {
07772 CK_CHAR_PTR pInitVector;
07774 CK_CHAR_PTR pPassword;
07776 CK_ULONG ulPasswordLen;
07778 CK_CHAR_PTR pSalt;
07779 CK_ULONG ulSaltLen;
07780 CK_ULONG ulIteration;
07781 } CK_PBE_PARAMS;
07782 
07783 
07784 
07785 
07867 typedef struct CK_KEY_WRAP_SET_OAEP_PARAMS {
07869 CK_BYTE bBC;
07871 CK_BYTE_PTR pX;
07873 CK_ULONG ulXLen;
07874 } CK_KEY_WRAP_SET_OAEP_PARAMS;
07875 
07876 
07877 
07878 
07902 typedef struct CK_SSL3_RANDOM_DATA {
07904 CK_BYTE_PTR pClientRandom;
07906 CK_ULONG ulClientRandomLen;
07908 CK_BYTE_PTR pServerRandom;
07910 CK_ULONG ulServerRandomLen;
07911 } CK_SSL3_RANDOM_DATA;
07912 
07913 
07914 
07915 
07947 typedef struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS {
07949 CK_SSL3_RANDOM_DATA RandomInfo;
07951 CK_VERSION_PTR pVersion;
07952 } CK_SSL3_MASTER_KEY_DERIVE_PARAMS;
07953 
07954 
07955 
07956 
07985 typedef struct CK_SSL3_KEY_MAT_OUT {
07987 CK_OBJECT_HANDLE hClientMacSecret;
07989 CK_OBJECT_HANDLE hServerMacSecret;
07991 CK_OBJECT_HANDLE hClientKey;
07993 CK_OBJECT_HANDLE hServerKey;
07995 CK_BYTE_PTR pIVClient;
07997 CK_BYTE_PTR pIVServer;
07998 } CK_SSL3_KEY_MAT_OUT;
07999 
08000 
08001 
08002 
08251 typedef struct CK_SSL3_KEY_MAT_PARAMS {
08253 CK_ULONG ulMacSizeInBits;
08255 CK_ULONG ulKeySizeInBits;
08257 CK_ULONG ulIVSizeInBits;
08259 CK_BBOOL bIsExport;
08261 CK_SSL3_RANDOM_DATA RandomInfo;
08263 CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;
08264 } CK_SSL3_KEY_MAT_PARAMS;
08265 
08266 
08267 
08268 
08563 typedef struct CK_KEY_DERIVATION_STRING_DATA {
08565 CK_BYTE_PTR pData;
08567 CK_ULONG ulLen;
08568 } CK_KEY_DERIVATION_STRING_DATA;
08569 
08570 
08579 typedef CK_ULONG CK_EXTRACT_PARAMS;
08580 
08581 

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