00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00037 #ifndef __MS_STD_CA_H__
00038 #define __MS_STD_CA_H__
00039 #include "UnixRequestImpl.h"
00040
00062
00063
00064
00065
00066 class MSCAstdRequest: public UnixRequestImpl
00067 {
00068 protected:
00069 LONG RequestId;
00070 bool fCertificate;
00071 std::string strCertificate;
00072
00073 public:
00074 MSCAstdRequest():UnixRequestImpl(),RequestId(-1),
00075 fCertificate(false),strCertificate()
00076 {
00077
00078 };
00079
00080 virtual HRESULT GetRequestParams(
00081 BSTR strConfig,
00082 BSTR strTemplate,
00083 BSTR *pstrRDN,
00084 BSTR *pstrEKUsage,
00085 DWORD *pKeySpec,
00086 std::vector<AttrTriple> *pAttrs
00087 );
00088
00089 virtual HRESULT Submit(
00090 LONG Flags,
00091 const BSTR strRequest,
00092 const BSTR strAttributes,
00093 const BSTR strConfig,
00094 LONG *pDisposition);
00095 virtual HRESULT GetRequestId(
00096 LONG* pRequestId
00097 )
00098 {
00099 if (RequestId != -1)
00100 {
00101 *pRequestId = RequestId;
00102 return S_OK;
00103 }
00104 else
00105 return NTE_FAIL;
00106 };
00107 virtual HRESULT GetCertificate(
00108 LONG Flags,
00109 BSTR* pstrCertificate
00110 );
00111 virtual HRESULT GetCACertificate(
00112 LONG fExchangeCertificate,
00113 const BSTR strConfig,
00114 LONG Flags,
00115 BSTR *pstrCertificate) ;
00116
00117
00118 virtual HRESULT RetrievePending(
00119 LONG RequestId,
00120 const BSTR strConfig,
00121 LONG *pDisposition);
00122
00123 virtual HRESULT GetCAProperty(
00124 const BSTR strConfig,
00125 LONG PropId,
00126 LONG PropIndex,
00127 LONG PropType,
00128 LONG Flags,
00129 VARIANT *pvarPropertyValue);
00130 };
00131 #endif
00132