Freigeben über


ICEnroll::createPKCS10-Methode (xenroll.h)

[Diese Methode steht ab Windows Server 2008 und Windows Vista nicht mehr zur Verfügung.]

Die createPKCS10-Methode erstellt eine Base64-codierte PKCS # 10-Zertifikatanforderung. Diese Methode wurde zuerst in der ICEnroll-Schnittstelle definiert.

Diese Base64-codierte PKCS #10-Zertifikatanforderung (in BSTR-Form ) kann an eine Zertifizierungsstelle gesendet werden, um die Ausstellung eines Zertifikats an die Person oder Entität anzufordern, deren Informationen sie enthält.

Syntax

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

Parameter

[in] DNName

Der distinguished Name (DN) der Entität, für die die Anforderung gestellt wird. In diesem Parameter muss der DN-Name der X.500-Benennungskonvention entsprechen. Beispiel: "CN=User, O=Microsoft". Wenn kein Präfix aus zwei Buchstaben vorhanden ist, kann stattdessen eine OID bereitgestellt werden.

[in] Usage

Ein Objektbezeichner (Object Identifier, OID), der den Zweck des generierten Zertifikats beschreibt. Beispiel: Individuelles oder kommerzielles Authenticode-Zertifikat oder Clientauthentifizierung. Sie können auch mehrere durch ein Komma getrennte OIDs angeben.

Die OID wird an die PKCS #10-Anforderung übergeben. Aus Gründen der allgemeinen Erweiterbarkeit und des einfachen Verständnisses versucht das Steuerelement nicht, spezifische OIDs zu verstehen. Wenn Sie also eine Clientauthentifizierungs-OID angeben, ist der generierte Schlüssel weiterhin ein Signaturschlüssel, kein Austauschschlüssel.

[in] pPKCS10

Die zurückgegebene base64-codierte PKCS10-Zertifikatanforderung.

Rückgabewert

C++

Der Rückgabewert ist ein HRESULT. Ein Wert von S_OK gibt den Erfolg an. Nach erfolgreichem Abschluss dieser Funktion enthält pPKCS10 eine base64-codierte PKCS #10-Anforderung (in BSTR-Form ). Das Format ist so, dass es zur Verarbeitung direkt an einen Webserver gesendet werden kann.

VB

Die zurückgegebene base64-codierte PKCS10-Zertifikatanforderung.

Hinweise

Standardmäßig wird der Microsoft Base Cryptographic Provider verwendet, PROV_RSA_FULL der Anbietertyp ist, ein Signaturschlüssel erstellt und ein eindeutiger neuer Schlüsselsatz erstellt wird.

Wenn diese Methode über das Skript aufgerufen wird, zeigt die -Methode eine Benutzeroberfläche an, die fragt, ob der Benutzer die Erstellung einer Zertifikatanforderung zulässt.

Beispiele

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile xenroll.h
Bibliothek Uuid.lib
DLL Xenroll.dll