pkcs.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 : pkcs
  38. %
  39. % VERSION : 1.00
  40. %
  41. % FILE : pkcs.h
  42. %
  43. % cryptool: class giving access functions PKCS#11
  44. %----------------------------------------------------------------------------
  45. % Version 1.00
  46. % CPX-31/03/2003-Creation
  47. %----------------------------------------------------------------------------
  48. */ 
  49. #ifndef PKCS_INCL
  50. #define PKCS_INCL
  51. #include <windows.h>
  52. #include"pkcscontainer.h"
  53. #include"cryptool.h"
  54. #pragma once
  55. #ifndef min
  56. #define min(a,b) (((a) < (b)) ? (a) : (b))
  57. #endif
  58. #ifndef max
  59. #define max(a,b) (((a) < (b)) ? (a) : (b))
  60. #endif
  61. #define MAX_PIN_LEN 30
  62. class Pkcs
  63. {
  64. public:
  65. Pkcs();
  66. ~Pkcs();
  67. static TableOfHandle* Pkcs::GetContainerList(){return &table_Containers;}
  68. static BOOL Pkcs::Initialize();
  69. static BOOL Pkcs::FreePkcs();
  70. static BOOL Pkcs::FreeContainer();
  71. static PKCSContainer* Pkcs::GetContainer(const CHAR IN * szContainerName);
  72. static BOOL Pkcs::DoSign(PKCSContainer* pContainer, unsigned long pbyHashLen, LPBYTE pbyHash,DWORD dwKeySpec, LPBYTE pbySignature, LPDWORD pdwSigLen/*,CHAR* g_strPwd*/);
  73. static BOOL Pkcs::CreateContainerTable();
  74. static BOOL Pkcs::VerifyContainerExistance(PKCSContainer* container);
  75. static BOOL Pkcs::Decrypt(HCRYPTKEY hPubKey, BYTE* pbySource, DWORD wSourceLength, BYTE* pbyDestination, DWORD* pwDestinationLen);
  76.     
  77. static TableOfHandle table_Containers;
  78. static CK_FUNCTION_LIST_PTR pFunctionList;
  79. };
  80. #endif