CertInfoPage.h
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:3k
源码类别:

CA认证

开发平台:

Visual C++

  1. #if !defined(AFX_MODCERTPAGE_H__2F06664F_5C4A_412D_947F_38E9C3FF7484__INCLUDED_)
  2. #define AFX_MODCERTPAGE_H__2F06664F_5C4A_412D_947F_38E9C3FF7484__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // CertInfoPage.h : header file
  7. //
  8. #include "ExtRichEdit.h"
  9. #include ".ControltooltipOXToolTipCtrl.h"
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CCertInfoPage dialog
  12. class CCertInfoPage : public CPropertyPage
  13. {
  14. DECLARE_DYNCREATE(CCertInfoPage)
  15. // Construction
  16. public:
  17. virtual BOOL PreTranslateMessage(MSG* pMsg);
  18. BOOL ViewCertInfo(char * cert, UINT certLen,void *x509, char *buf);
  19. static BOOL GetSubjectInfo(const void * px509,char * name,char * msg);
  20. static UINT CCertInfoPage::GetKeyLen(const void * px509);
  21. CCertInfoPage();
  22. ~CCertInfoPage();
  23. void TranslateCT();
  24. // Dialog Data
  25. //{{AFX_DATA(CCertInfoPage)
  26. enum { IDD = IDD_PROPPAGE_CERTINFO };
  27. // CXPEdit m_XpEdit;
  28. CXPStyleButtonST m_Bread;
  29. CExtRichEdit m_RichEdit;
  30. CListCtrl m_List;
  31. //}}AFX_DATA
  32. // Overrides
  33. // ClassWizard generate virtual function overrides
  34. //{{AFX_VIRTUAL(CCertInfoPage)
  35. protected:
  36. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  37. //}}AFX_VIRTUAL
  38. // Implementation
  39. protected:
  40. CToolTipCtrl m_toolTip;
  41. // Generated message map functions
  42. //{{AFX_MSG(CCertInfoPage)
  43. virtual BOOL OnInitDialog();
  44. afx_msg void OnBRead();
  45. afx_msg void OnItemchangedListMod(NMHDR* pNMHDR, LRESULT* pResult);
  46. //}}AFX_MSG
  47. DECLARE_MESSAGE_MAP()
  48. private:
  49. struct stuCERTINFO
  50. {
  51. long VER;//版本
  52. char SN[10];//序列号
  53. char SIGNATURE[30];//签名算法
  54. char ISSUER[512];//颁发者
  55. char NOTBEFORE[24];//起始日期
  56. char NOTAFTER[24];//中止日期
  57. char SUBJECT[512];//主题
  58. char PUBTYPE[4];//公钥类型
  59. char PUBKEY[2096];//公钥
  60. long PUBLEN;//公钥长度
  61. char V3EXT[4096];//扩展信息
  62. char THUMB[6];//缩微图算法
  63. char THUMBPRINT[MAX_MD_SIZE*2+1];//缩微图
  64. stuCERTINFO()
  65. {
  66. memset(this,0,sizeof(stuCERTINFO));
  67. }
  68. };
  69. CString m_strPubKey;
  70. void AddMsg(CString info, DWORD type);
  71. static void Utf8ToAnsi(const UCHAR * lpsrc,const int srclen, LPSTR lpdst,
  72. int& dstlen);
  73. //其实为X509_NAME,直接写,不能编译
  74. static BOOL GetCertName(void *name,char * outName);
  75. static char * GetCertTime(const ASN1_UTCTIME *s);
  76. static int GetExtensions(BIO *bp,STACK_OF(X509_EXTENSION) *exts);
  77. static BOOL GetCertInfo(const char * pCert, const UINT certLen, 
  78. const void * px509, stuCERTINFO & certinfo, char * msg);
  79. };
  80. //{{AFX_INSERT_LOCATION}}
  81. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  82. #endif // !defined(AFX_MODCERTPAGE_H__2F06664F_5C4A_412D_947F_38E9C3FF7484__INCLUDED_)