Метод ICEnroll::createFilePKCS10 (xenroll.h)
[Этот метод больше недоступен для использования в Windows Server 2008 и Windows Vista.]
Метод createFilePKCS10 создает запрос сертификата PKCS #10 в кодировке Base64 и сохраняет его в файле. Этот метод был впервые определен в интерфейсе ICEnroll .
Этот метод отличается от метода createPKCS10 только тем, что сохраняет запрос сертификата PKCS #10 в кодировке base64 (в форме 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, описывающий цель создаваемого сертификата, например отдельный или коммерческий сертификат Authenticode или проверка подлинности клиента. Можно также указать несколько идентификаторов OID, разделенных запятой.
OID передается в запрос PKCS #10. Элемент управления не проверяет OID.
[in] wszPKCS10FileName
Имя файла, в котором сохраняется PKCS #10 в кодировке Base64 (в форме BSTR ). Содержимое этого файла может быть отправлено в центр сертификации для обработки.
Возвращаемое значение
VB
Возвращаемое значение — HRESULT. Значение S_OK указывает на успешное выполнение.Если метод завершается ошибкой, возвращаемым значением является HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Комментарии
По умолчанию используется базовый поставщик шифрования Майкрософт и создается уникальный ключ подписи.
При вызове этого метода из скрипта метод отображает пользовательский интерфейс, в котором запрашивается, разрешит ли пользователь создание запроса на сертификат и разрешит ли пользователь операцию записи в файловую систему.
Примеры
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 |
Header | xenroll.h |
Библиотека | Uuid.lib |
DLL | Xenroll.dll |