Método ICEnroll::createPKCS10 (xenroll.h)

[Este método ya no está disponible para su uso a partir de Windows Server 2008 y Windows Vista.]

El método createPKCS10 crea una solicitud de certificado PKCS #10 codificada en base64. Este método se definió por primera vez en la interfaz ICEnroll .

Esta solicitud de certificado PKCS #10 codificada en base64 (en formato BSTR ) se puede enviar a una entidad de certificación para solicitar que se emita un certificado a la persona o entidad cuya información contiene.

Sintaxis

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

Parámetros

[in] DNName

Nombre distintivo (DN) de la entidad para la que se realiza la solicitud. En este parámetro, el nombre de DN debe seguir la convención de nomenclatura X.500 . Por ejemplo, "CN=User, O=Microsoft". Si no existe un prefijo de dos letras, se puede proporcionar un OID en su lugar.

[in] Usage

Identificador de objeto (OID) que describe el propósito del certificado que se va a generar. Por ejemplo, certificado Individual o Comercial Authenticode o Autenticación de cliente. También puede especificar varios OID separados por una coma.

El OID se pasa a la solicitud PKCS #10. Para la extensibilidad general y la facilidad de comprensión, el control no intenta comprender los OID de propósito específico. Por lo tanto, si especifica un OID de autenticación de cliente, la clave generada seguirá siendo una clave de firma, no una clave de intercambio.

[in] pPKCS10

Solicitud de certificado PKCS10 con codificación base64 devuelta.

Valor devuelto

C++

El valor devuelto es hrESULT. Un valor de S_OK indica que se ha realizado correctamente. Una vez completada correctamente esta función, pPKCS10 contendrá una solicitud PKCS #10 codificada en base64 (en formato BSTR ). El formato es tal que se puede publicar directamente en un servidor web para su procesamiento.

VB

Solicitud de certificado PKCS10 con codificación base64 devuelta.

Comentarios

De forma predeterminada, se usa el proveedor criptográfico base de Microsoft, PROV_RSA_FULL es el tipo de proveedor, se crea una clave de firma y se crea un nuevo conjunto de claves único.

Cuando se llama a este método desde el script, el método muestra una interfaz de usuario que pregunta si el usuario permitirá la creación de una solicitud de certificado.

Ejemplos

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();

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado xenroll.h
Library Uuid.lib
Archivo DLL Xenroll.dll