Partager via


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

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

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

Cette méthode diffère de la méthode createPKCS10 uniquement par l’enregistrement de la demande de certificat PKCS #10 encodée en base64 (au format BSTR ) dans le fichier spécifié par le paramètre wszPKCS10FileName .

Syntaxe

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

Paramètres

[in] DNName

Nom unique (DN) de l’entité pour laquelle la demande est effectuée. DNName doit respecter la convention de nommage X.500 . Par exemple, « CN=User, O=Microsoft ». S’il n’existe pas de préfixe à deux lettres, un identificateur d’objet (OID) peut être fourni à la place.

[in] Usage

OID qui décrit l’objectif du certificat généré, par exemple un certificat Authenticode individuel ou commercial ou l’authentification client. Vous pouvez également spécifier plusieurs OID séparés par une virgule.

L’OID est transmis à la requête PKCS #10. Le contrôle n’examine pas l’OID.

[in] wszPKCS10FileName

Nom du fichier dans lequel le PKCS #10 encodé en base64 (au format BSTR ) est enregistré. Le contenu de ce fichier peut être soumis à une autorité de certification pour traitement.

Valeur retournée

VB

La valeur de retour est HRESULT. Une valeur de S_OK indique la réussite.

Si la méthode échoue, la valeur de retour est un HRESULT indiquant l’erreur. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

Remarques

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

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 et si l’utilisateur autorise une opération d’écriture dans le système de fichiers.

Exemples

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

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