ICEnroll::createFilePKCS10 方法 (xenroll.h)
[此方法在 Windows Server 2008 和 Windows Vista 中不再可用。]
createFilePKCS10 方法创建 base64 编码的 PKCS #10 证书请求并将其保存在文件中。 此方法首先在 ICEnroll 接口中定义。
此方法不同于 createPKCS10 方法,仅在将 base64 编码的 PKCS #10 证书请求 (以 BSTR 形式保存) 到 wszPKCS10FileName 参数指定的文件中。
语法
HRESULT createFilePKCS10(
[in] BSTR DNName,
[in] BSTR Usage,
[in] BSTR wszPKCS10FileName
);
参数
[in] DNName
发出请求的实体的可分辨名称 (DN) 。 DNName 必须遵循 X.500 命名约定。 例如“CN=User,O=Microsoft”。 如果不存在两个字母的前缀,则可能会改为提供 OID) (对象标识符 。
[in] Usage
描述所生成证书的用途的 OID ,例如,个人或商业验证码证书或客户端身份验证。 还可以指定多个以逗号分隔的 OID。
OID 传递到 PKCS #10 请求。 控件不检查 OID。
[in] wszPKCS10FileName
保存采用 BSTR 格式的 base64 编码的 PKCS #10 () 的文件的名称。 此文件的内容可能会提交给 证书颁发机构 进行处理。
返回值
VB
返回值为 HRESULT。 值为 S_OK 表示成功。如果方法失败,则返回值为 指示错误的 HRESULT 。 有关常见错误代码的列表,请参阅 常见 HRESULT 值。
注解
默认情况下,使用 Microsoft 基本加密提供程序,并创建唯一签名密钥。
从脚本调用此方法时, 方法将显示一个用户界面,询问用户是否允许创建证书请求,以及用户是否允许对文件系统执行写入操作。
示例
BSTR bstrDN = NULL;
BSTR bstrOID = NULL;
BSTR bstrFileName = NULL;
ICEnroll4 * pEnroll = NULL;
HRESULT hr;
hr = CoInitializeEx( NULL, COINIT_APARTMENTTHREADED );
if (FAILED(hr))
{
printf("Failed CoInitializeEx - %x\n", hr);
goto error;
}
hr = CoCreateInstance( __uuidof(CEnroll),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(ICEnroll4),
(void **)&pEnroll);
if (FAILED(hr))
{
printf("Failed CoCreateInstance - pEnroll [%x]\n", hr);
goto error;
}
// Generate the DN for the cert request.
bstrDN = SysAllocString( TEXT("CN=Your Name") // common name
TEXT(",OU=Your Unit") // org unit
TEXT(",O=Your Org") // organization
TEXT(",L=Your City") // locality
TEXT(",S=Your State") // state
TEXT(",C=Your Country") ); // country/region
if (NULL == bstrDN)
{
printf("Memory allocation failed for bstrDN.\n");
goto error;
}
// Generate the OID. For example, "1.3.6.1.4.1.311.2.1.21"
bstrOID = SysAllocString(TEXT("<OIDHERE>"));
if (NULL == bstrOID)
{
printf("Memory allocation failed for bstrOID.\n");
goto error;
}
// Specify the file name, for example, "myPKCS10.req"
bstrFileName = SysAllocString(TEXT("<FILENAMEHERE>"));
if (NULL == bstrFileName)
{
printf("Memory allocation failed for bstrFileName.\n");
goto error;
}
// Create the PKCS10 (stored in a file).
hr = pEnroll->createFilePKCS10( bstrDN, bstrOID, bstrFileName );
if (FAILED(hr))
{
printf("Failed createFilePKCS10 - %x\n", hr);
goto error;
}
else
printf("Successfully created file containing PKCS10\n");
error:
// Clean up resources and so on.
if ( bstrFileName )
SysFreeString( bstrFileName );
if ( bstrDN )
SysFreeString( bstrDN );
if ( bstrOID )
SysFreeString( bstrOID );
if ( pEnroll )
pEnroll->Release();
CoUninitialize();
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | xenroll.h |
Library | Uuid.lib |
DLL | Xenroll.dll |