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

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 : container
  38. %
  39. % VERSION : 1.00
  40. %
  41. % FILE : container.h
  42. %
  43. % Class container : it has the parameters of a container and methods making 
  44. % it possible to handle them
  45. %----------------------------------------------------------------------------
  46. % Version 1.00
  47. % CPX-31/03/2003-Creation
  48. %----------------------------------------------------------------------------
  49. % You can find cryptoki.h, pkcs11.h, pkcs11f.h and pkcs11t.h at the adress :
  50. % http://www.rsasecurity.com/rsalabs/pkcs/pkcs-11/
  51. */ 
  52. #ifndef PKCSCONTAINER_INCL
  53. #define PKCSCONTAINER_INCL
  54. #include <windows.h>
  55. #include <cryptoki.h>
  56. #pragma once
  57. class PKCSContainer
  58. {
  59. public:
  60. PKCSContainer();
  61. ~PKCSContainer();
  62. BOOL PKCSContainer::Initialize(CK_FUNCTION_LIST_PTR pFunctionList,CK_SLOT_ID slotID,CK_SESSION_HANDLE hSession,CK_OBJECT_HANDLE hcert,CK_BYTE_PTR cursubject,unsigned long cursubjectLen,CK_BYTE_PTR keyId,unsigned long keyIdLen,char * containerName );
  63. const CHAR * const GetName(){return &containerName[0];}
  64. bool Delete();
  65. CK_FUNCTION_LIST_PTR PKCSContainer::GetpFunctionList();
  66. void PKCSContainer::SetpFunctionList(CK_FUNCTION_LIST_PTR pFunctionList);
  67. CK_SLOT_ID PKCSContainer::GetslotID();
  68. void PKCSContainer::SetslotID(CK_SLOT_ID slotID);
  69. CK_SESSION_HANDLE PKCSContainer::GethSession();
  70. void PKCSContainer::SethSession(CK_SESSION_HANDLE hSession);
  71. CK_OBJECT_HANDLE PKCSContainer::Gethcert();
  72. void PKCSContainer::Sethcert(CK_OBJECT_HANDLE hcert);
  73. CK_BYTE_PTR PKCSContainer::Getcursubject();
  74. CK_BYTE_PTR PKCSContainer::GetkeyId();
  75. BOOL PKCSContainer::GetdwKeySpec(DWORD dwKeySpec);
  76. BOOL PKCSContainer::GetUserKey(DWORD dwKeySpec,HCRYPTKEY* phUserKey);
  77. private:
  78. char * containerName;
  79. CK_FUNCTION_LIST_PTR pFunctionList;
  80. CK_SESSION_HANDLE hSession;
  81. CK_OBJECT_HANDLE hcert;
  82. CK_BYTE_PTR cursubject;
  83. CK_BYTE_PTR keyId;
  84. CK_SLOT_ID slotID;
  85. };
  86. #endif