pkcs11f.h
来自「支持SSL v2/v3, TLS, PKCS #5, PKCS #7, PKCS」· C头文件 代码 · 共 934 行 · 第 1/2 页
H
934 行
/* * 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. Because this information is *//* used for more than just declaring function prototypes, the *//* order of the functions appearing herein is important, and *//* should not be altered. *//* General-purpose *//* C_Initialize initializes the PKCS #11 library. */CK_PKCS11_FUNCTION_INFO(C_Initialize)#ifdef CK_NEED_ARG_LIST( CK_VOID_PTR pInitArgs /* if this is not NULL_PTR, it gets * cast to CK_C_INITIALIZE_ARGS_PTR * and dereferenced */);#endif/* C_Finalize indicates that an application is done with the * PKCS #11 library. */CK_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(C_GetInfo)#ifdef CK_NEED_ARG_LIST( CK_INFO_PTR pInfo /* location that receives information */);#endif/* C_GetFunctionList returns the function list. */CK_PKCS11_FUNCTION_INFO(C_GetFunctionList)#ifdef CK_NEED_ARG_LIST( CK_FUNCTION_LIST_PTR_PTR ppFunctionList /* receives pointer to * function list */);#endif/* Slot and token management *//* C_GetSlotList obtains a list of slots in the system. */CK_PKCS11_FUNCTION_INFO(C_GetSlotList)#ifdef CK_NEED_ARG_LIST( CK_BBOOL tokenPresent, /* only slots with tokens? */ CK_SLOT_ID_PTR pSlotList, /* receives array of slot IDs */ CK_ULONG_PTR pulCount /* receives number of slots */);#endif/* C_GetSlotInfo obtains information about a particular slot in * the system. */CK_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(C_GetMechanismList)#ifdef CK_NEED_ARG_LIST( CK_SLOT_ID slotID, /* ID of token's slot */ CK_MECHANISM_TYPE_PTR pMechanismList, /* gets mech. array */ CK_ULONG_PTR pulCount /* gets # of mechs. */);#endif/* C_GetMechanismInfo obtains information about a particular * mechanism possibly supported by a token. */CK_PKCS11_FUNCTION_INFO(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 info */);#endif/* C_InitToken initializes a token. */CK_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(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 the user who is logged in. */CK_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(C_OpenSession)#ifdef CK_NEED_ARG_LIST( CK_SLOT_ID slotID, /* the slot's ID */ CK_FLAGS flags, /* from CK_SESSION_INFO */ CK_VOID_PTR pApplication, /* passed to callback */ CK_NOTIFY Notify, /* callback function */ CK_SESSION_HANDLE_PTR phSession /* gets session handle */);#endif/* C_CloseSession closes a session between an application and a * token. */CK_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(C_CloseAllSessions)#ifdef CK_NEED_ARG_LIST( CK_SLOT_ID slotID /* the token's slot */);#endif/* C_GetSessionInfo obtains information about the session. */CK_PKCS11_FUNCTION_INFO(C_GetSessionInfo)#ifdef CK_NEED_ARG_LIST( CK_SESSION_HANDLE hSession, /* the session's handle */ CK_SESSION_INFO_PTR pInfo /* receives session info */);#endif/* C_GetOperationState obtains the state of the cryptographic operation * in a session. */CK_PKCS11_FUNCTION_INFO(C_GetOperationState)#ifdef CK_NEED_ARG_LIST( CK_SESSION_HANDLE hSession, /* session's handle */ CK_BYTE_PTR pOperationState, /* gets state */ CK_ULONG_PTR pulOperationStateLen /* gets state length */);#endif/* C_SetOperationState restores the state of the cryptographic * operation in a session. */CK_PKCS11_FUNCTION_INFO(C_SetOperationState)#ifdef CK_NEED_ARG_LIST( CK_SESSION_HANDLE hSession, /* session's handle */ CK_BYTE_PTR pOperationState, /* holds state */ CK_ULONG ulOperationStateLen, /* holds state length */ CK_OBJECT_HANDLE hEncryptionKey, /* en/decryption key */ CK_OBJECT_HANDLE hAuthenticationKey /* sign/verify key */);#endif/* C_Login logs a user into a token. */CK_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(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 /* gets new object's handle. */);#endif/* C_CopyObject copies an object, creating a new object for the * copy. */CK_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(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 object * attributes. */CK_PKCS11_FUNCTION_INFO(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 attrs; gets vals */ CK_ULONG ulCount /* attributes in template */);#endif/* C_SetAttributeValue modifies the value of one or more object * attributes */CK_PKCS11_FUNCTION_INFO(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 attrs and values */ CK_ULONG ulCount /* attributes in template */);#endif/* C_FindObjectsInit initializes a search for token and session * objects that match a template. */CK_PKCS11_FUNCTION_INFO(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 /* attrs in search template */);#endif/* C_FindObjects continues a search for token and session * objects that match a template, obtaining additional object * handles. */CK_PKCS11_FUNCTION_INFO(C_FindObjects)#ifdef CK_NEED_ARG_LIST( CK_SESSION_HANDLE hSession, /* session's handle */ CK_OBJECT_HANDLE_PTR phObject, /* gets obj. handles */ CK_ULONG ulMaxObjectCount, /* max handles to get */ CK_ULONG_PTR pulObjectCount /* actual # returned */);#endif/* C_FindObjectsFinal finishes a search for token and session * objects. */CK_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(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_PKCS11_FUNCTION_INFO(C_Encrypt)#ifdef CK_NEED_ARG_LIST( CK_SESSION_HANDLE hSession, /* session's handle */ CK_BYTE_PTR pData, /* the plaintext data */ CK_ULONG ulDataLen, /* bytes of plaintext */ CK_BYTE_PTR pEncryptedData, /* gets ciphertext */ CK_ULONG_PTR pulEncryptedDataLen /* gets c-text size */);#endif/* C_EncryptUpdate continues a multiple-part encryption * operation. */CK_PKCS11_FUNCTION_INFO(C_EncryptUpdate)#ifdef CK_NEED_ARG_LIST( CK_SESSION_HANDLE hSession, /* session's handle */ CK_BYTE_PTR pPart, /* the plaintext data */ CK_ULONG ulPartLen, /* plaintext data len */ CK_BYTE_PTR pEncryptedPart, /* gets ciphertext */ CK_ULONG_PTR pulEncryptedPartLen /* gets c-text size */);#endif/* C_EncryptFinal finishes a multiple-part encryption * operation. */CK_PKCS11_FUNCTION_INFO(C_EncryptFinal)#ifdef CK_NEED_ARG_LIST( CK_SESSION_HANDLE hSession, /* session handle */ CK_BYTE_PTR pLastEncryptedPart, /* last c-text */ CK_ULONG_PTR pulLastEncryptedPartLen /* gets last size */);#endif/* C_DecryptInit initializes a decryption operation. */CK_PKCS11_FUNCTION_INFO(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 decryption key */);#endif/* C_Decrypt decrypts encrypted data in a single part. */CK_PKCS11_FUNCTION_INFO(C_Decrypt)#ifdef CK_NEED_ARG_LIST( CK_SESSION_HANDLE hSession, /* session's handle */ CK_BYTE_PTR pEncryptedData, /* ciphertext */ CK_ULONG ulEncryptedDataLen, /* ciphertext length */ CK_BYTE_PTR pData, /* gets plaintext */ CK_ULONG_PTR pulDataLen /* gets p-text size */);#endif/* C_DecryptUpdate continues a multiple-part decryption
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?