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 |