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

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

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

Este método difiere del método createPKCS10 solo al guardar la solicitud de certificado PKCS #10 codificada en base64 en el archivo especificado por el parámetro wszPKCS10FileName .

Sintaxis

HRESULT createFilePKCS10(
  [in] BSTR DNName,
  [in] BSTR Usage,
  [in] BSTR wszPKCS10FileName
);

Parámetros

[in] DNName

Nombre distintivo (DN) de la entidad para la que se realiza la solicitud. DNName 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 identificador de objeto (OID) en su lugar.

[in] Usage

Un OID que describe el propósito del certificado que se va a generar, por ejemplo, certificado Authenticode individual o comercial, o autenticación de cliente. También puede especificar varios OID separados por una coma.

El OID se pasa a la solicitud PKCS #10. El control no examina el OID.

[in] wszPKCS10FileName

Nombre del archivo en el que se guarda el PKCS #10 codificado en base64 (en formato BSTR ). El contenido de este archivo puede enviarse a una entidad de certificación para su procesamiento.

Valor devuelto

VB

El valor devuelto es hrESULT. Un valor de S_OK indica que se ha realizado correctamente.

Si se produce un error en el método, el valor devuelto es un VALOR HRESULT que indica el error. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

Comentarios

De forma predeterminada, se usa el proveedor criptográfico base de Microsoft y se crea una clave de firma única.

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 y si el usuario permitirá una operación de escritura en el sistema de archivos.

Ejemplos

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

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