Metodo ICEnroll::createPKCS10 (xenroll.h)

[Questo metodo non è più disponibile per l'uso a partire da Windows Server 2008 e Windows Vista.]

Il metodo createPKCS10 crea una richiesta di certificato PKCS #10 con codifica base64. Questo metodo è stato definito per la prima volta nell'interfaccia ICEnroll .

Questa richiesta di certificato PKCS #10 con codifica base64 (in formato BSTR ) può essere inviata a un'autorità di certificazione per richiedere che un certificato venga rilasciato alla persona o all'entità le cui informazioni contengono.

Sintassi

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

Parametri

[in] DNName

Nome distinto (DN) dell'entità per cui viene effettuata la richiesta. In questo parametro il nome DN deve seguire la convenzione di denominazione X.500 . Ad esempio"CN=User, O=Microsoft". Se non esiste un prefisso di due lettere, è possibile specificare un OID .

[in] Usage

Identificatore di oggetto (OID) che descrive lo scopo del certificato generato. Ad esempio, certificato Authenticode singolo o commerciale o autenticazione client. È anche possibile specificare più ID separati da una virgola.

L'OID viene passato alla richiesta PKCS #10. Per l'estendibilità generale e la facilità di comprensione, il controllo non tenta di comprendere gli OID specifici. Pertanto, se si specifica un OID autenticazione client, la chiave generata sarà comunque una chiave di firma, non una chiave di scambio.

[in] pPKCS10

Richiesta di certificato PKCS10 con codifica base64 restituita.

Valore restituito

C++

Il valore restituito è un HRESULT. Un valore di S_OK indica l'esito positivo. Al termine di questa funzione, pPKCS10 conterrà una richiesta PKCS #10 con codifica base64 (in formato BSTR ). Il formato è tale che può essere inviato direttamente a un server Web per l'elaborazione.

VB

Richiesta di certificato PKCS10 con codifica base64 restituita.

Commenti

Per impostazione predefinita, viene usato il provider di crittografia di base Microsoft, PROV_RSA_FULL è il tipo di provider, viene creata una chiave di firma e viene creato un nuovo set di chiavi univoco.

Quando questo metodo viene chiamato dallo script, il metodo visualizza un'interfaccia utente che chiede se l'utente consentirà la creazione di una richiesta di certificato.

Esempio

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

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione xenroll.h
Libreria Uuid.lib
DLL Xenroll.dll