0N/A/* $Revision: 1.4 $ */ 0N/A/* License to copy and use this software is granted provided that it is 0N/A * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface 0N/A * (Cryptoki)" in all material mentioning or referencing this software. 0N/A * License is also granted to make and use derivative works provided that 0N/A * such works are identified as "derived from the RSA Security Inc. PKCS #11 0N/A * Cryptographic Token Interface (Cryptoki)" in all material mentioning or 0N/A * referencing the derived work. 0N/A * RSA Security Inc. makes no representations concerning either the 0N/A * merchantability of this software or the suitability of this software for 0N/A * any particular purpose. It is provided "as is" without express or implied 0N/A * warranty of any kind. 0N/A/* This header file contains pretty much everything about all the */ 0N/A/* Cryptoki function prototypes. Because this information is */ 0N/A/* used for more than just declaring function prototypes, the */ 0N/A/* order of the functions appearing herein is important, and */ 0N/A/* should not be altered. */ 0N/A/* General-purpose */ 0N/A/* C_Initialize initializes the Cryptoki library. */ 0N/A * cast to CK_C_INITIALIZE_ARGS_PTR 0N/A * and dereferenced */ 0N/A/* C_Finalize indicates that an application is done with the 0N/A * Cryptoki library. */ 0N/A/* C_GetInfo returns general information about Cryptoki. */ 0N/A/* C_GetFunctionList returns the function list. */ 0N/A/* Slot and token management */ 0N/A/* C_GetSlotList obtains a list of slots in the system. */ 0N/A/* C_GetSlotInfo obtains information about a particular slot in 0N/A/* C_GetTokenInfo obtains information about a particular token 0N/A/* C_GetMechanismList obtains a list of mechanism types 0N/A * supported by a token. */ 0N/A/* C_GetMechanismInfo obtains information about a particular 0N/A * mechanism possibly supported by a token. */ 0N/A/* C_InitToken initializes a token. */ 0N/A/* pLabel changed from CK_CHAR_PTR to CK_UTF8CHAR_PTR for v2.10 */ 0N/A/* C_InitPIN initializes the normal user's PIN. */ 0N/A/* C_SetPIN modifies the PIN of the user who is logged in. */ 0N/A/* Session management */ 0N/A/* C_OpenSession opens a session between an application and a 0N/A/* C_CloseSession closes a session between an application and a 0N/A/* C_CloseAllSessions closes all sessions with a token. */ 0N/A/* C_GetSessionInfo obtains information about the session. */ 0N/A/* C_GetOperationState obtains the state of the cryptographic operation 0N/A/* C_SetOperationState restores the state of the cryptographic 0N/A * operation in a session. */ 0N/A/* C_Login logs a user into a token. */ 0N/A/* C_Logout logs a user out from a token. */ 0N/A/* Object management */ 0N/A/* C_CreateObject creates a new object. */ 0N/A/* C_CopyObject copies an object, creating a new object for the 0N/A/* C_DestroyObject destroys an object. */ 0N/A/* C_GetObjectSize gets the size of an object in bytes. */ 0N/A/* C_GetAttributeValue obtains the value of one or more object 0N/A/* C_SetAttributeValue modifies the value of one or more object 0N/A/* C_FindObjectsInit initializes a search for token and session 0N/A * objects that match a template. */ 0N/A/* C_FindObjects continues a search for token and session 0N/A * objects that match a template, obtaining additional object 0N/A/* C_FindObjectsFinal finishes a search for token and session 0N/A/* Encryption and decryption */ 0N/A/* C_EncryptInit initializes an encryption operation. */ 0N/A/* C_Encrypt encrypts single-part data. */ 0N/A/* C_EncryptUpdate continues a multiple-part encryption 0N/A/* C_EncryptFinal finishes a multiple-part encryption 0N/A/* C_DecryptInit initializes a decryption operation. */ 0N/A/* C_Decrypt decrypts encrypted data in a single part. */ 0N/A/* C_DecryptUpdate continues a multiple-part decryption 0N/A/* C_DecryptFinal finishes a multiple-part decryption 0N/A/* Message digesting */ 0N/A/* C_DigestInit initializes a message-digesting operation. */ 0N/A/* C_Digest digests data in a single part. */ 0N/A/* C_DigestUpdate continues a multiple-part message-digesting 0N/A/* C_DigestKey continues a multi-part message-digesting 0N/A * operation, by digesting the value of a secret key as part of 0N/A * the data already digested. */ 0N/A/* C_DigestFinal finishes a multiple-part message-digesting 0N/A/* Signing and MACing */ 0N/A/* C_SignInit initializes a signature (private key encryption) 0N/A * operation, where the signature is (will be) an appendix to 0N/A * the data, and plaintext cannot be recovered from the 0N/A/* C_Sign signs (encrypts with private key) data in a single 0N/A * part, where the signature is (will be) an appendix to the 0N/A * data, and plaintext cannot be recovered from the signature. */ 0N/A/* C_SignUpdate continues a multiple-part signature operation, 0N/A * where the signature is (will be) an appendix to the data, 0N/A * and plaintext cannot be recovered from the signature. */ 0N/A/* C_SignFinal finishes a multiple-part signature operation, 0N/A * returning the signature. */ 0N/A/* C_SignRecoverInit initializes a signature operation, where 0N/A * the data can be recovered from the signature. */ 0N/A/* C_SignRecover signs data in a single operation, where the 0N/A * data can be recovered from the signature. */ 0N/A/* Verifying signatures and MACs */ 0N/A/* C_VerifyInit initializes a verification operation, where the 0N/A * signature is an appendix to the data, and plaintext cannot 0N/A * cannot be recovered from the signature (e.g. DSA). */ 0N/A/* C_Verify verifies a signature in a single-part operation, 0N/A * where the signature is an appendix to the data, and plaintext 0N/A * cannot be recovered from the signature. */ 0N/A/* C_VerifyUpdate continues a multiple-part verification 0N/A * operation, where the signature is an appendix to the data, 0N/A * and plaintext cannot be recovered from the signature. */ 0N/A/* C_VerifyFinal finishes a multiple-part verification 0N/A * operation, checking the signature. */ 0N/A/* C_VerifyRecoverInit initializes a signature verification 0N/A * operation, where the data is recovered from the signature. */ 0N/A/* C_VerifyRecover verifies a signature in a single-part 0N/A * operation, where the data is recovered from the signature. */ 0N/A/* Dual-function cryptographic operations */ 0N/A/* C_DigestEncryptUpdate continues a multiple-part digesting 0N/A * and encryption operation. */ 0N/A/* C_DecryptDigestUpdate continues a multiple-part decryption and 0N/A * digesting operation. */ 0N/A/* C_SignEncryptUpdate continues a multiple-part signing and 0N/A * encryption operation. */ 0N/A/* C_DecryptVerifyUpdate continues a multiple-part decryption and 0N/A * verify operation. */ 0N/A/* C_GenerateKey generates a secret key, creating a new key 0N/A * creating new key objects. */ 0N/A/* C_WrapKey wraps (i.e., encrypts) a key. */ 0N/A/* C_UnwrapKey unwraps (decrypts) a wrapped key, creating a new 0N/A/* C_DeriveKey derives a key from a base key, creating a new key 0N/A/* Random number generation */ 0N/A/* C_SeedRandom mixes additional seed material into the token's 0N/A * random number generator. */ 0N/A/* C_GenerateRandom generates random data. */ 0N/A/* Parallel function management */ 0N/A/* C_GetFunctionStatus is a legacy function; it obtains an 0N/A * updated status of a function running in parallel with an 0N/A/* C_CancelFunction is a legacy function; it cancels a function 0N/A * running in parallel. */ 0N/A/* Functions added in for Cryptoki Version 2.01 or later */ 0N/A/* C_WaitForSlotEvent waits for a slot event (token insertion, 0N/A * removal, etc.) to occur. */