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 |