Метод ICEnroll::createPKCS10 (xenroll.h)

[Этот метод больше недоступен для использования в Windows Server 2008 и Windows Vista.]

Метод createPKCS10 создает запрос сертификата PKCS #10 в кодировке Base64. Этот метод был впервые определен в интерфейсе ICEnroll .

Этот запрос на сертификат PKCS #10 в кодировке Base64 (в форме BSTR ) можно отправить в центр сертификации , чтобы запросить выдачу сертификата физическому или юридическому лицу, сведения которого в нем содержатся.

Синтаксис

HRESULT createPKCS10(
  [in] BSTR DNName,
  [in] BSTR Usage,
  [in] BSTR *pPKCS10
);

Параметры

[in] DNName

Различающееся имя (DN) сущности, для которой выполняется запрос. В этом параметре имя DN должно соответствовать соглашению об именовании X.500 . Например, "CN=User, O=Microsoft". Если двухбуквенный префикс не существует, вместо него можно указать OID .

[in] Usage

Идентификатор объекта (OID), описывающий назначение создаваемого сертификата. Например, индивидуальный или коммерческий сертификат Authenticode или проверка подлинности клиента. Можно также указать несколько идентификаторов OID, разделенных запятой.

OID передается в запрос PKCS #10. Для общей расширяемости и простоты понимания элемент управления не пытается понять конкретные целевые идентификаторы OID. Таким образом, если указать идентификатор проверки подлинности клиента, созданный ключ по-прежнему будет ключом подписи, а не ключом обмена.

[in] pPKCS10

Возвращенный запрос сертификата PKCS10 в кодировке Base64.

Возвращаемое значение

C++

Возвращаемое значение — HRESULT. Значение S_OK указывает на успешное выполнение. После успешного выполнения этой функции pPKCS10 будет содержать запрос PKCS #10 в кодировке Base64 (в форме BSTR ). Формат такой, что его можно напрямую отправить на веб-сервер для обработки.

VB

Возвращенный запрос сертификата PKCS10 в кодировке Base64.

Комментарии

По умолчанию используется базовый поставщик шифрования Майкрософт, PROV_RSA_FULL является типом поставщика, создается ключ подписи и создается уникальный набор ключей.

При вызове этого метода из скрипта метод отображает пользовательский интерфейс, который запрашивает, разрешит ли пользователь создание запроса на сертификат.

Примеры

BSTR bstrDN = NULL;
BSTR bstrReq = NULL;
BSTR bstrOID = NULL;
ICEnroll4 * pEnroll = NULL;
HRESULT hr;

// initialize COM
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;
}

// create the PKCS10
hr = pEnroll->createPKCS10( bstrDN, bstrOID, &bstrReq );
if (FAILED(hr))
{
    printf("Failed createPKCS10 - %x\n", hr);
    goto error;
}
else
    // do something with the PKCS10 (bstrReq);

error:

//clean up resources, and so on
if ( bstrDN )
    SysFreeString( bstrDN );
if ( bstrOID )
    SysFreeString( bstrOID );
if ( bstrReq )
    SysFreeString( bstrReq );
if ( pEnroll )
    pEnroll->Release();

CoUninitialize();

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header xenroll.h
Библиотека Uuid.lib
DLL Xenroll.dll