fpkcs11f.h

来自「支持SSL v2/v3, TLS, PKCS #5, PKCS #7, PKCS」· C头文件 代码 · 共 954 行 · 第 1/2 页

H
954
字号
/* * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ *  * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. *  * The Original Code is the Netscape security libraries. *  * The Initial Developer of the Original Code is Netscape * Communications Corporation.  Portions created by Netscape are  * Copyright (C) 1994-2000 Netscape Communications Corporation.  All * Rights Reserved. *  * Contributor(s): *  * Alternatively, the contents of this file may be used under the * terms of the GNU General Public License Version 2 or later (the * "GPL"), in which case the provisions of the GPL are applicable  * instead of those above.  If you wish to allow use of your  * version of this file only under the terms of the GPL and not to * allow others to use your version of this file under the MPL, * indicate your decision by deleting the provisions above and * replace them with the notice and other provisions required by * the GPL.  If you do not delete the provisions above, a recipient * may use your version of this file under either the MPL or the * GPL. *//* * Copyright (C) 1994-1999 RSA Security Inc. Licence to copy this document * is granted provided that it is identified as "RSA Security In.c Public-Key * Cryptography Standards (PKCS)" in all material mentioning or referencing * this document. *//* This function contains pretty much everything about all *//* the PKCS #11 function prototypes. *//* General-purpose *//* C_Initialize initializes the PKCS #11 library. */CK_EXTERN _CK_RV CK_FUNC(C_Initialize)#ifdef CK_NEED_ARG_LIST(  CK_VOID_PTR   pReserved  /* reserved.  Should be NULL_PTR */);#endif/* C_Finalize indicates that an application is done with the PKCS #11 * library. */CK_EXTERN _CK_RV CK_FUNC(C_Finalize)#ifdef CK_NEED_ARG_LIST(  CK_VOID_PTR   pReserved  /* reserved.  Should be NULL_PTR */);#endif/* C_GetInfo returns general information about PKCS #11. */CK_EXTERN _CK_RV CK_FUNC(C_GetInfo)#ifdef CK_NEED_ARG_LIST(  CK_INFO_PTR   pInfo  /* location that receives the information */);#endif/* C_GetFunctionList returns the function list. */CK_EXTERN _CK_RV CK_FUNC(C_GetFunctionList)#ifdef CK_NEED_ARG_LIST(  CK_FUNCTION_LIST_PTR_PTR ppFunctionList  /* receives ptr to functionlist */);#endif/* Slot and token management *//* C_GetSlotList obtains a list of slots in the system. */CK_EXTERN _CK_RV CK_FUNC(C_GetSlotList)#ifdef CK_NEED_ARG_LIST(  CK_BBOOL       tokenPresent,  /* only slots with token present */  CK_SLOT_ID_PTR pSlotList,     /* receives the array of slot IDs */  CK_ULONG_PTR   pulCount       /* receives the number of slots */);#endif/* C_GetSlotInfo obtains information about a particular slot in thesystem. */CK_EXTERN _CK_RV CK_FUNC(C_GetSlotInfo)#ifdef CK_NEED_ARG_LIST(  CK_SLOT_ID       slotID,  /* the ID of the slot */  CK_SLOT_INFO_PTR pInfo    /* receives the slot information */);#endif/* C_GetTokenInfo obtains information about a particular token in the * system. */CK_EXTERN _CK_RV CK_FUNC(C_GetTokenInfo)#ifdef CK_NEED_ARG_LIST(  CK_SLOT_ID        slotID,  /* ID of the token's slot */  CK_TOKEN_INFO_PTR pInfo    /* receives the token information */);#endif/* C_GetMechanismList obtains a list of mechanism types supported by * a token. */CK_EXTERN _CK_RV CK_FUNC(C_GetMechanismList)#ifdef CK_NEED_ARG_LIST(  CK_SLOT_ID            slotID,          /* ID of the token's slot */  CK_MECHANISM_TYPE_PTR pMechanismList,  /* receives mech. types array*/  CK_ULONG_PTR          pulCount         /* receives number of mechs. */);#endif/* C_GetMechanismInfo obtains information about a particular mechanism  * possibly supported by a token. */CK_EXTERN _CK_RV CK_FUNC(C_GetMechanismInfo)#ifdef CK_NEED_ARG_LIST(  CK_SLOT_ID            slotID,  /* ID of the token's slot */  CK_MECHANISM_TYPE     type,    /* type of mechanism */  CK_MECHANISM_INFO_PTR pInfo    /* receives mechanism information */);#endif/* C_InitToken initializes a token. */CK_EXTERN _CK_RV CK_FUNC(C_InitToken)#ifdef CK_NEED_ARG_LIST(  CK_SLOT_ID     slotID,    /* ID of the token's slot */  CK_CHAR_PTR    pPin,      /* the SO's initial PIN */  CK_ULONG       ulPinLen,  /* length in bytes of the PIN */  CK_CHAR_PTR    pLabel     /* 32-byte token label (blank padded) */);#endif/* C_InitPIN initializes the normal user's PIN. */CK_EXTERN _CK_RV CK_FUNC(C_InitPIN)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,  /* the session's handle */  CK_CHAR_PTR       pPin,      /* the normal user's PIN */  CK_ULONG          ulPinLen   /* length in bytes of the PIN */);#endif/* C_SetPIN modifies the PIN of user that is currently logged in. */CK_EXTERN _CK_RV CK_FUNC(C_SetPIN)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,  /* the session's handle */  CK_CHAR_PTR       pOldPin,   /* the old PIN */  CK_ULONG          ulOldLen,  /* length of the old PIN */  CK_CHAR_PTR       pNewPin,   /* the new PIN */  CK_ULONG          ulNewLen   /* length of the new PIN */);#endif/* Session management *//* C_OpenSession opens a session between an application and a token. */CK_EXTERN _CK_RV CK_FUNC(C_OpenSession)#ifdef CK_NEED_ARG_LIST(  CK_SLOT_ID            slotID,        /* the slot's ID */  CK_FLAGS              flags,         /* defined in CK_SESSION_INFO */  CK_VOID_PTR           pApplication,  /* pointer passed to callback */  CK_NOTIFY             Notify,        /* notification callback function*/  CK_SESSION_HANDLE_PTR phSession      /* receives new session handle */);#endif/* C_CloseSession closes a session between an application and a token.*/CK_EXTERN _CK_RV CK_FUNC(C_CloseSession)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession  /* the session's handle */);#endif/* C_CloseAllSessions closes all sessions with a token. */CK_EXTERN _CK_RV CK_FUNC(C_CloseAllSessions)#ifdef CK_NEED_ARG_LIST(  CK_SLOT_ID     slotID  /* the token's slot */);#endif/* C_GetSessionInfo obtains information about the session. */CK_EXTERN _CK_RV CK_FUNC(C_GetSessionInfo)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE   hSession,  /* the session's handle */  CK_SESSION_INFO_PTR pInfo      /* receives session information */);#endif/* C_GetOperationState obtains the state of the cryptographic operation * in a session. */CK_EXTERN _CK_RV CK_FUNC(C_GetOperationState)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,             /* the session's handle */  CK_BYTE_PTR       pOperationState,      /* location receiving state */  CK_ULONG_PTR      pulOperationStateLen  /* location receiving statelength */);#endif/* C_SetOperationState restores the state of the cryptographic operation * in a session. */CK_EXTERN _CK_RV CK_FUNC(C_SetOperationState)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,            /* the session's handle */  CK_BYTE_PTR      pOperationState,      /* the location holding thestate */  CK_ULONG         ulOperationStateLen,  /* location holding statelength */  CK_OBJECT_HANDLE hEncryptionKey,       /* handle of en/decryption key*/  CK_OBJECT_HANDLE hAuthenticationKey    /* handle of sign/verify key */);#endif/* C_Login logs a user into a token. */CK_EXTERN _CK_RV CK_FUNC(C_Login)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,  /* the session's handle */  CK_USER_TYPE      userType,  /* the user type */  CK_CHAR_PTR       pPin,      /* the user's PIN */  CK_ULONG          ulPinLen   /* the length of the PIN */);#endif/* C_Logout logs a user out from a token. */CK_EXTERN _CK_RV CK_FUNC(C_Logout)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession  /* the session's handle */);#endif/* Object management *//* C_CreateObject creates a new object. */CK_EXTERN _CK_RV CK_FUNC(C_CreateObject)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,    /* the session's handle */  CK_ATTRIBUTE_PTR  pTemplate,   /* the object's template */  CK_ULONG          ulCount,     /* attributes in template */  CK_OBJECT_HANDLE_PTR phObject  /* receives new object's handle. */);#endif/* C_CopyObject copies an object, creating a new object for the copy. */CK_EXTERN _CK_RV CK_FUNC(C_CopyObject)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE    hSession,    /* the session's handle */  CK_OBJECT_HANDLE     hObject,     /* the object's handle */  CK_ATTRIBUTE_PTR     pTemplate,   /* template for new object */  CK_ULONG             ulCount,     /* attributes in template */  CK_OBJECT_HANDLE_PTR phNewObject  /* receives handle of copy */);#endif/* C_DestroyObject destroys an object. */CK_EXTERN _CK_RV CK_FUNC(C_DestroyObject)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,  /* the session's handle */  CK_OBJECT_HANDLE  hObject    /* the object's handle */);#endif/* C_GetObjectSize gets the size of an object in bytes. */CK_EXTERN _CK_RV CK_FUNC(C_GetObjectSize)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,  /* the session's handle */  CK_OBJECT_HANDLE  hObject,   /* the object's handle */  CK_ULONG_PTR      pulSize    /* receives size of object */);#endif/* C_GetAttributeValue obtains the value of one or more objectattributes. */CK_EXTERN _CK_RV CK_FUNC(C_GetAttributeValue)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,   /* the session's handle */  CK_OBJECT_HANDLE  hObject,    /* the object's handle */  CK_ATTRIBUTE_PTR  pTemplate,  /* specifies attributes, gets values */  CK_ULONG          ulCount     /* attributes in template */);#endif/* C_SetAttributeValue modifies the value of one or more objectattributes */CK_EXTERN _CK_RV CK_FUNC(C_SetAttributeValue)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,   /* the session's handle */  CK_OBJECT_HANDLE  hObject,    /* the object's handle */  CK_ATTRIBUTE_PTR  pTemplate,  /* specifies attributes and values */  CK_ULONG          ulCount     /* attributes in template */);#endif/* C_FindObjectsInit initializes a search for token and session objects  * that match a template. */CK_EXTERN _CK_RV CK_FUNC(C_FindObjectsInit)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,   /* the session's handle */  CK_ATTRIBUTE_PTR  pTemplate,  /* attribute values to match */  CK_ULONG          ulCount     /* attributes in search template */);#endif/* C_FindObjects continues a search for token and session objects  * that match a template, obtaining additional object handles. */CK_EXTERN _CK_RV CK_FUNC(C_FindObjects)#ifdef CK_NEED_ARG_LIST( CK_SESSION_HANDLE    hSession,          /* the session's handle */ CK_OBJECT_HANDLE_PTR phObject,          /* receives object handle array*/ CK_ULONG             ulMaxObjectCount,  /* max handles to be returned*/ CK_ULONG_PTR         pulObjectCount     /* actual number returned */);#endif/* C_FindObjectsFinal finishes a search for token and session objects.*/CK_EXTERN _CK_RV CK_FUNC(C_FindObjectsFinal)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession  /* the session's handle */);#endif/* Encryption and decryption *//* C_EncryptInit initializes an encryption operation. */CK_EXTERN _CK_RV CK_FUNC(C_EncryptInit)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,    /* the session's handle */  CK_MECHANISM_PTR  pMechanism,  /* the encryption mechanism */  CK_OBJECT_HANDLE  hKey         /* handle of encryption key */);#endif/* C_Encrypt encrypts single-part data. */CK_EXTERN _CK_RV CK_FUNC(C_Encrypt)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,            /* the session's handle */  CK_BYTE_PTR       pData,               /* the plaintext data */  CK_ULONG          ulDataLen,           /* bytes of plaintext data */  CK_BYTE_PTR       pEncryptedData,      /* receives encrypted data */  CK_ULONG_PTR      pulEncryptedDataLen  /* receives encrypted bytecount */);#endif/* C_EncryptUpdate continues a multiple-part encryption operation. */CK_EXTERN _CK_RV CK_FUNC(C_EncryptUpdate)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,           /* the session's handle */  CK_BYTE_PTR       pPart,              /* the plaintext data */  CK_ULONG          ulPartLen,          /* bytes of plaintext data */  CK_BYTE_PTR       pEncryptedPart,     /* receives encrypted data */  CK_ULONG_PTR      pulEncryptedPartLen /* receives encrypted byte count*/);#endif/* C_EncryptFinal finishes a multiple-part encryption operation. */CK_EXTERN _CK_RV CK_FUNC(C_EncryptFinal)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,                /* the session's handle */  CK_BYTE_PTR       pLastEncryptedPart,      /* receives encrypted lastpart */  CK_ULONG_PTR      pulLastEncryptedPartLen  /* receives byte count */);#endif/* C_DecryptInit initializes a decryption operation. */CK_EXTERN _CK_RV CK_FUNC(C_DecryptInit)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,    /* the session's handle */  CK_MECHANISM_PTR  pMechanism,  /* the decryption mechanism */  CK_OBJECT_HANDLE  hKey         /* handle of the decryption key */);#endif/* C_Decrypt decrypts encrypted data in a single part. */CK_EXTERN _CK_RV CK_FUNC(C_Decrypt)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,           /* the session's handle */  CK_BYTE_PTR       pEncryptedData,     /* input encrypted data */  CK_ULONG          ulEncryptedDataLen, /* count of bytes of input */  CK_BYTE_PTR       pData,              /* receives decrypted output */  CK_ULONG_PTR      pulDataLen          /* receives decrypted byte count*/);#endif/* C_DecryptUpdate continues a multiple-part decryption operation. */CK_EXTERN _CK_RV CK_FUNC(C_DecryptUpdate)#ifdef CK_NEED_ARG_LIST(  CK_SESSION_HANDLE hSession,            /* the session's handle */  CK_BYTE_PTR       pEncryptedPart,      /* input encrypted data */  CK_ULONG          ulEncryptedPartLen,  /* count of bytes of input */  CK_BYTE_PTR       pPart,               /* receives decrypted output */  CK_ULONG_PTR      pulPartLen           /* receives decrypted bytecount */);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?