Partager via


ICEnroll ::createPKCS10, méthode (xenroll.h)

[Cette méthode n’est plus disponible à partir de Windows Server 2008 et Windows Vista.]

La méthode createPKCS10 crée une demande de certificat PKCS #10 codée en base64. Cette méthode a d’abord été définie dans l’interface ICEnroll .

Cette demande de certificat PKCS #10 codée en base64 (au format BSTR ) peut être soumise à une autorité de certification pour demander qu’un certificat soit émis à la personne ou à l’entité dont il contient les informations.

Syntaxe

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

Paramètres

[in] DNName

Nom unique (DN) de l’entité pour laquelle la demande est effectuée. Dans ce paramètre, le nom DN doit suivre la convention d’affectation de noms X.500 . Par exemple , « CN=User, O=Microsoft ». S’il n’existe pas de préfixe à deux lettres, un OID peut être fourni à la place.

[in] Usage

Identificateur d’objet (OID) qui décrit l’objectif du certificat généré. Par exemple, certificat Authenticode individuel ou commercial, ou Authentification client. Vous pouvez également spécifier plusieurs OID séparés par une virgule.

L’OID est transmis à la requête PKCS #10. Pour une extensibilité générale et une facilité de compréhension, le contrôle n’essaie pas de comprendre les OID à usage spécifique. Par conséquent, si vous spécifiez un OID d’authentification client, la clé générée est toujours une clé de signature, et non une clé d’échange.

[in] pPKCS10

Demande de certificat PKCS10 encodée en base64.

Valeur retournée

C++

La valeur de retour est un HRESULT. La valeur S_OK indique la réussite. Une fois cette fonction terminée, pPKCS10 contient une requête PKCS #10 encodée en base64 (au format BSTR ). Le format est tel qu’il peut être directement publié sur un serveur web pour traitement.

VB

Demande de certificat PKCS10 encodée en base64.

Remarques

Par défaut, le fournisseur de chiffrement de base Microsoft est utilisé, PROV_RSA_FULL est le type de fournisseur, une clé de signature est créée et un jeu de clés unique est créé.

Lorsque cette méthode est appelée à partir d’un script, la méthode affiche une interface utilisateur qui demande si l’utilisateur autorise la création d’une demande de certificat.

Exemples

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête xenroll.h
Bibliothèque Uuid.lib
DLL Xenroll.dll