Compartilhar via


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

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

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

Essa solicitação de certificado PKCS nº 10 codificada em base64 (no formulário BSTR ) pode ser enviada a uma autoridade de certificação para solicitar que um certificado seja emitido para a pessoa ou entidade cujas informações ela contém.

Sintaxe

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

Parâmetros

[in] DNName

O DN (nome diferenciado) da entidade para a qual a solicitação está sendo feita. Nesse parâmetro, o nome DN 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 poderá ser fornecido.

[in] Usage

Um OID ( identificador de objeto ) que descreve a finalidade do certificado que está sendo gerado. Por exemplo, certificado de Autenticação Individual ou Comercial ou Autenticação de Cliente. Você também pode especificar vários OIDs separados por uma vírgula.

O OID é passado para a solicitação PKCS nº 10. Para extensibilidade geral e facilidade de compreensão, o controle não tenta entender os OIDs de finalidade específica. Portanto, se você especificar um OID de Autenticação de Cliente, a chave gerada ainda será uma chave de assinatura, não uma chave de troca.

[in] pPKCS10

A solicitação de certificado PKCS10 codificada em base64 retornada.

Retornar valor

C++

O valor retornado é um HRESULT. Um valor de S_OK indica êxito. Após a conclusão bem-sucedida dessa função, pPKCS10 conterá uma solicitação PKCS nº 10 codificada em base64 (no formato BSTR ). O formato é tal que pode ser postado diretamente em um servidor Web para processamento.

VB

A solicitação de certificado PKCS10 codificada em base64 retornada.

Comentários

Por padrão, o Provedor Criptográfico Base da Microsoft é usado, PROV_RSA_FULL é o tipo de provedor, uma chave de assinatura é criada e um novo conjunto de chaves exclusivo é criado.

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.

Exemplos

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 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