cryptool.h
上传用户:filter2008
上传日期:2013-02-01
资源大小:101k
文件大小:4k
源码类别:

CA认证

开发平台:

C/C++

  1. /****************************************************************************
  2. * library : pkcs_csp.dll
  3. * Purpose : It is a cryptographic service provider which is an independent 
  4. * software module that actually performs cryptography algorithms for 
  5. * authentication, encoding, and encryption.
  6. * This DLL can be interfaced on any PKCS#11 module.  
  7. *
  8. * Copyright (C) 2003 Ilex Syst鑝es Informatiques
  9. *
  10. * This library is free software; you can redistribute it and/or
  11. * modify it under the terms of the GNU Lesser General Public
  12. * License as published by the Free Software Foundation; either
  13. * version 2.1 of the License, or (at your option) any later version.
  14. *
  15. * This library is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  18. * Lesser General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU Lesser General Public
  21. * License along with this library; if not, write to the Free Software
  22. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  23. *
  24. * Contact :
  25. * Ilex 
  26. * 51 boulevard Voltaire
  27. * 92600 Asni鑢es-sur-Seine
  28. * pkizy@ilex.fr
  29. *
  30. * Author: Delouvrier Antoine
  31. *
  32. *******************************************************************************/
  33. /*
  34. %----------------------------------------------------------------------------
  35. % PROJECT : CSP_PKCS
  36. %
  37. % MODULE : cryptool
  38. %
  39. % VERSION : 1.00
  40. %
  41. % FILE : cryptool.h
  42. %
  43. % cryptool: Functions allowing various accesses to the PKCS#11
  44. %----------------------------------------------------------------------------
  45. % Version 1.00
  46. % CPX-31/03/2003-Creation
  47. %----------------------------------------------------------------------------
  48. % You can find cryptoki.h, pkcs11.h, pkcs11f.h and pkcs11t.h at the adress :
  49. % http://www.rsasecurity.com/rsalabs/pkcs/pkcs-11/
  50. */ 
  51. #ifndef CRYPTOOL_INCL
  52. #define CRYPTOOL_INCL
  53. #include <cryptoki.h>
  54. #define CSP_PKCS11_INI "csp_pkcs.ini"
  55. #define SECTION_PKCS_NAME "CSP_PKCS"
  56. #define SECTION_PKCS_TRACE "CSP_PKCS_TRACE"
  57. #define KEY_PKCS_NAME "Name"
  58. #define KEY_LEVEL "Level"
  59. void TRACE(CK_ULONG line , char CK_PTR msg,...);
  60. int getTraceLevel(); 
  61. void setTraceLevel();
  62. CK_RV init(CK_FUNCTION_LIST_PTR CK_PTR);
  63. CK_RV cleanup(CK_FUNCTION_LIST_PTR);
  64. CK_RV initialize(CK_FUNCTION_LIST_PTR, char * );
  65. CK_BBOOL isPubKeySupportSign(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE , CK_OBJECT_HANDLE );
  66. CK_BBOOL isPubKeySupportEncrypt(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE , CK_OBJECT_HANDLE );
  67. CK_RV getKeyFromX509Cert(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE , CK_OBJECT_HANDLE_PTR ,CK_OBJECT_HANDLE,CK_OBJECT_CLASS , int );
  68. CK_RV getX509KeyId(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE , CK_OBJECT_HANDLE ,CK_BYTE_PTR , CK_ULONG_PTR );
  69. CK_RV getX509Subject(CK_FUNCTION_LIST_PTR, CK_SESSION_HANDLE, CK_OBJECT_HANDLE,CK_BYTE_PTR, CK_ULONG_PTR);
  70. CK_RV login(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE , CK_CHAR_PTR , CK_ULONG);
  71. CK_RV logout(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE );
  72. CK_RV getAllX509CertificateList(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE, CK_OBJECT_HANDLE_PTR, CK_ULONG_PTR );
  73. CK_RV getCertListFromAttr(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE , CK_ATTRIBUTE_PTR , CK_ULONG , CK_OBJECT_HANDLE_PTR, CK_ULONG_PTR );
  74. CK_RV getKeyType(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE , CK_OBJECT_HANDLE ,CK_KEY_TYPE * );
  75. CK_RV getPublicKeyFromX509Cert(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE, CK_OBJECT_HANDLE_PTR , CK_OBJECT_HANDLE );
  76. CK_RV getPrivateKeyFromX509Cert(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE , CK_OBJECT_HANDLE_PTR , CK_OBJECT_HANDLE );
  77. CK_RV getSlotListWithToken(CK_FUNCTION_LIST_PTR , CK_SLOT_ID_PTR , CK_ULONG_PTR );
  78. CK_RV getX509Value(CK_FUNCTION_LIST_PTR, CK_SESSION_HANDLE, CK_OBJECT_HANDLE ,CK_BYTE_PTR, CK_ULONG_PTR);
  79. CK_RV sign(CK_FUNCTION_LIST_PTR, CK_SESSION_HANDLE , CK_OBJECT_HANDLE , CK_BYTE_PTR , CK_ULONG, CK_BYTE_PTR, CK_ULONG_PTR,CK_ULONG);
  80. CK_RV decrypt(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE, CK_OBJECT_HANDLE, CK_BYTE_PTR, CK_ULONG_PTR,CK_BYTE_PTR,CK_ULONG_PTR);
  81. CK_RV getModulusBits(CK_FUNCTION_LIST_PTR pFunctionList, CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hKey, CK_ULONG_PTR pModulusBits);
  82. CK_RV openSession(CK_FUNCTION_LIST_PTR , CK_SLOT_ID , CK_SESSION_HANDLE_PTR );
  83. CK_RV closeSession(CK_FUNCTION_LIST_PTR , CK_SESSION_HANDLE);
  84. #endif