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

[Esse método não está mais disponível para uso a partir do Windows Server 2008 e do Windows Vista.]

O método createFilePKCS10 cria uma solicitação de certificado PKCS nº 10 codificada em base64 e a salva em um arquivo. Esse método foi definido pela primeira vez na interface ICEnroll .

Esse método difere do método createPKCS10 apenas ao salvar a solicitação de certificado PKCS nº 10 codificada em base64 (no formulário BSTR ) para o arquivo especificado pelo parâmetro wszPKCS10FileName .

Sintaxe

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

Parâmetros

[in] DNName

O DN (nome diferenciado) da entidade para a qual a solicitação está sendo feita. DNName deve seguir a convenção de nomenclatura X.500 . Por exemplo, "CN=User, O=Microsoft". Se um prefixo de duas letras não existir, um OID ( identificador de objeto ) poderá ser fornecido.

[in] Usage

Uma OID que descreve a finalidade do certificado que está sendo gerado, por exemplo, o certificado Authenticode individual ou comercial ou a autenticação do cliente. Você também pode especificar vários OIDs separados por uma vírgula.

A OID é passada para a solicitação PKCS nº 10. O controle não examina o OID.

[in] wszPKCS10FileName

O nome do arquivo no qual o PKCS nº 10 codificado em base64 (no formato BSTR ) é salvo. O conteúdo desse arquivo pode ser enviado a uma autoridade de certificação para processamento.

Retornar valor

VB

O valor retornado é um HRESULT. Um valor de S_OK indica êxito.

Se o método falhar, o valor retornado será um HRESULT que indica o erro. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

Comentários

Por padrão, o Provedor Criptográfico base da Microsoft é usado e uma chave de assinatura exclusiva é criada.

Quando esse método é chamado do script, o método exibe uma interface do usuário que pergunta se o usuário permitirá a criação de uma solicitação de certificado e se o usuário permitirá uma operação de gravação no sistema de arquivos.

Exemplos

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 Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho xenroll.h
Biblioteca Uuid.lib
DLL Xenroll.dll