windows-nt/Source/XPSP1/NT/ds/security/services/ca/certsrv/comtest.cpp
2020-09-26 16:20:57 +08:00

232 lines
4.9 KiB
C++

//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: comtest.cpp
//
// Contents: Cert Server COM interface test driver
//
// History: 20-Jan-97 vich created
//
//---------------------------------------------------------------------------
#include <pch.cpp>
#pragma hdrstop
#include <stdio.h>
#include "csdisp.h"
#include "csprop.h"
#if DBG_COMTEST
BOOL
comTestCIPolicy(
IN LONG Context,
IN DWORD Flags)
{
HRESULT hr;
DISPATCHINTERFACE diCIPolicy;
BSTR bstrReq = NULL;
BSTR bstrCert = NULL;
BOOL fMustRelease = FALSE;
DATE Date;
wprintf(L"\n");
hr = CIPolicy_Init(Flags, &diCIPolicy);
_JumpIfError(hr, error, "CIPolicy_Init");
fMustRelease = TRUE;
hr = CIPolicy_SetContext(&diCIPolicy, Context);
_JumpIfError(hr, error, "CIPolicy_SetContext");
hr = CIPolicy_GetRequestProperty(
&diCIPolicy,
g_wszPropSubjectCommonName,
PROPTYPE_STRING,
&bstrReq);
_JumpIfError(hr, error, "CIPolicy_GetRequestProperty");
wprintf(
L"%d:CIPolicy_GetRequestProperty(%u, %ws) == `%ws'\n",
Flags,
Context,
g_wszPropSubjectCommonName,
bstrReq);
hr = CIPolicy_GetCertificateProperty(
&diCIPolicy,
g_wszPropSubjectCommonName,
PROPTYPE_STRING,
&bstrCert);
_JumpIfError(hr, error, "CIPolicy_GetCertificateProperty");
wprintf(
L"%d:CIPolicy_GetCertificateProperty(%u, %ws) == `%ws'\n",
Flags,
Context,
g_wszPropSubjectCommonName,
bstrCert);
hr = CIPolicy_SetCertificateProperty(
&diCIPolicy,
g_wszPropSubjectLocality,
PROPTYPE_STRING,
L"coreSetPropPolicy_Locality");
_JumpIfError(hr, error, "CIPolicy_SetCertificateProperty");
wprintf(
L"%d:CIPolicy_SetCertificateProperty(%u, %ws, %ws) == %x\n",
Flags,
Context,
g_wszPropSubjectCommonName,
L"CIPolicy_SetCertificateProperty_Locality",
hr);
hr = CIPolicy_GetCertificateProperty(
&diCIPolicy,
g_wszPropCertificateNotBeforeDate,
PROPTYPE_DATE,
(BSTR *) &Date);
_JumpIfError(hr, error, "CIPolicy_GetCertificateProperty");
wprintf(
L"%d:CIPolicy_GetCertificateProperty(%u, %ws) == %x (%f)\n",
Flags,
Context,
g_wszPropCertificateNotBeforeDate,
hr,
Date);
hr = CIPolicy_SetCertificateProperty(
&diCIPolicy,
g_wszPropCertificateNotBeforeDate,
PROPTYPE_DATE,
(BSTR) &Date);
_JumpIfError(hr, error, "CIPolicy_SetCertificateProperty");
wprintf(
L"%d:CIPolicy_SetCertificateProperty(%u, %ws) == %x (%f)\n",
Flags,
Context,
g_wszPropCertificateNotBeforeDate,
hr,
Date);
Date += 1.5; // Set validity period to 1.5 days.
hr = CIPolicy_SetCertificateProperty(
&diCIPolicy,
g_wszPropCertificateNotAfterDate,
PROPTYPE_DATE,
(BSTR) &Date);
_JumpIfError(hr, error, "CIPolicy_SetCertificateProperty");
wprintf(
L"%d:CIPolicy_SetCertificateProperty(%u, %ws) == %x (%f)\n",
Flags,
Context,
g_wszPropCertificateNotAfterDate,
hr,
Date);
error:
if (NULL != bstrReq)
{
SysFreeString(bstrReq);
}
if (NULL != bstrCert)
{
SysFreeString(bstrCert);
}
if (fMustRelease)
{
CIPolicy_Release(&diCIPolicy);
}
return(S_OK == hr);
}
BOOL
comTestCIExit(
IN LONG Context,
IN DWORD Flags)
{
HRESULT hr;
DISPATCHINTERFACE diCIExit;
BSTR bstrReq = NULL;
BSTR bstrCert = NULL;
BOOL fMustRelease = FALSE;
wprintf(L"\n");
hr = CIExit_Init(Flags, &diCIExit);
_JumpIfError(hr, error, "CIExit_Init");
fMustRelease = TRUE;
hr = CIExit_SetContext(&diCIExit, Context);
_JumpIfError(hr, error, "CIExit_SetContext");
hr = CIExit_GetRequestProperty(
&diCIExit,
g_wszPropSubjectCommonName,
PROPTYPE_STRING,
&bstrReq);
_JumpIfError(hr, error, "CIExit_GetRequestProperty");
wprintf(
L"%d:CIExit_GetRequestProperty(%u, %ws) == `%ws'\n",
Flags,
Context,
g_wszPropSubjectCommonName,
bstrReq);
hr = CIExit_GetCertificateProperty(
&diCIExit,
g_wszPropSubjectCommonName,
PROPTYPE_STRING,
&bstrCert);
_JumpIfError(hr, error, "CIExit_GetCertificateProperty");
wprintf(
L"%d:CIExit_GetCertificateProperty(%u, %ws) == `%ws'\n",
Flags,
Context,
g_wszPropSubjectCommonName,
bstrCert);
error:
if (NULL != bstrReq)
{
SysFreeString(bstrReq);
}
if (NULL != bstrCert)
{
SysFreeString(bstrCert);
}
if (fMustRelease)
{
CIExit_Release(&diCIExit);
}
return(S_OK == hr);
}
BOOL
ComTest(
IN LONG Context)
{
return(
comTestCIPolicy(Context, DISPSETUP_COMFIRST) &&
comTestCIPolicy(Context, DISPSETUP_COM) &&
comTestCIPolicy(Context, DISPSETUP_IDISPATCH) &&
comTestCIExit(Context, DISPSETUP_COMFIRST) &&
comTestCIExit(Context, DISPSETUP_COM) &&
comTestCIExit(Context, DISPSETUP_IDISPATCH));
}
#endif // DBG_COMTEST