Freigeben über


ICEnroll::p ut_PVKFileName-Methode (xenroll.h)

[Diese Eigenschaft ist ab Windows Server 2008 und Windows Vista nicht mehr verfügbar.]

Die PVKFileName-Eigenschaft legt den Namen der Datei fest, die exportierte Schlüssel enthält, oder ruft diesen ab.

Diese Eigenschaft wurde zuerst in der ICEnroll-Schnittstelle definiert.

Dies ist eine Eigenschaft mit Lese- und Schreibzugriff.

Syntax

HRESULT put_PVKFileName(
  BSTR bstr
);

Parameter

bstr

Rückgabewert

Keine

Bemerkungen

Die PVKFileName-Eigenschaft wirkt sich auf das Verhalten der folgenden Methoden aus:

Der Kryptografiedienstanbieter (CSP ) unterstützt möglicherweise nicht die Exportfunktion. In der Vergangenheit hat Authenticode den privaten Schlüssel in eine PVK-Datei auf einem Datenträger exportiert und die Schlüssel aus der Registrierung entfernt. Standardmäßig werden keine privaten Schlüssel für den Export generiert, und viele Kryptografiedienstanbieter unterstützen den Export von Schlüsseln nicht. Wenn der CSP jedoch den Export privater Schlüssel unterstützt, bewirkt die Angabe eines Werts ungleich NULL für die PVKFileName-Eigenschaft , dass die privaten Schlüssel als exportierbar generiert und die privaten und öffentlichen Schlüssel in die datei geschrieben werden, die von der PVKFileName-Eigenschaft angegeben wird. Der private Schlüssel wird aus dem CSP entfernt. Der von der -Eigenschaft angegebene Dateiname kann eine beliebige datei sein, auf die zugegriffen werden kann. Standardmäßig wird keine PVK-Datei generiert, und die Schlüssel werden nicht als exportierbar generiert.

Wenn die PVK-Datei bereits vorhanden ist, wird der Benutzer benachrichtigt und zur Berechtigung zum Überschreiben aufgefordert.

Die GenKeyFlags-Eigenschaft verfügt auch über ein Flag, das steuert, ob der private Schlüssel exportiert werden kann. Achten Sie darauf, wenn Sie die GenKeyFlags-Eigenschaft und die PVKFileName-Eigenschaft zusammen verwenden. Wenn die PVKFileName-Eigenschaft zuerst festgelegt wird, wird die GenKeyFlags-Eigenschaft automatisch auf CRYPT_EXPORTABLE festgelegt. Wenn die GenKeyFlags-Eigenschaft (mithilfe der put_GenKeyFlags-Funktion ) ohne das CRYPT_EXPORTABLE-Flag festgelegt wird, wird genKeyFlags nicht auf CRYPT_EXPORTABLE festgelegt, und die generierten Schlüssel können nicht exportiert werden. Dies wird im folgenden Verfahren veranschaulicht:

  1. Rufen Sie put_PVKFileName auf, um den Dateinamen für die Datei festzulegen, die die exportierten Schlüssel empfängt. Die GenKeyFlags-Eigenschaft wird automatisch auf CRYPT_EXPORTABLE festgelegt.
  2. Rufen Sie put_GenKeyFlags mit einem Wert auf, der nicht auf CRYPT_EXPORTABLE festgelegt ist, z. B. null.
  3. GenKeyFlags ist nicht mehr auf CRYPT_EXPORTABLE festgelegt (der Wert, der in Schritt 1 automatisch festgelegt wurde).

Schlüssel, die durch Ausführen der vorherigen Schritte generiert wurden, können nicht exportiert werden. Daher empfiehlt es sich, die GenKeyFlags-Eigenschaft vor der PVKFileName-Eigenschaft festzulegen, wenn sie zusammen verwendet werden.

Alternativ kann der Benutzer den aktuellen Wert des CRYPT_EXPORTABLE Bits in der GenKeyFlags-Eigenschaft bestimmen und dann einen bitweisen OR-Vorgang zwischen diesem Wert und allen An der GenKeyFlags-Eigenschaft vorgenommenen Änderungen ausführen, um sicherzustellen, dass das Bit nicht gelöscht wird. Der Benutzer kann beim Aktualisieren der GenKeyFlags-Eigenschaft auch das CRYPT_EXPORTABLE Bit festlegen.

Beispiele

BSTR     bstrPVKFile = NULL;
BSTR     bstrNewPVKFile = NULL;
HRESULT  hr;

// pEnroll is previously instantiated ICEnroll interface pointer

// get the PVKFileName
hr = pEnroll->get_PVKFileName( &bstrPVKFile );
if (FAILED( hr ))
    printf("Failed get_PVKFileName - %x\n", hr );
else
    printf( "PVKFileName: %ws\n", bstrPVKFile );
// free BSTR when done
if ( NULL != bstrPVKFile )
    SysFreeString( bstrPVKFile );

// set the PVKFileName, for example, "MyKeys.pvk"
bstrNewPVKFile = SysAllocString(TEXT("FILENAMEHERE"));

hr = pEnroll->put_PVKFileName( bstrNewPVKFile );
if (FAILED( hr ))
    printf("Failed put_PVKFileName - %x\n", hr );
else
    printf( "PVKFileName set to %ws\n", bstrNewPVKFile );
// free BSTR when done
if ( NULL != bstrNewPVKFile )
    SysFreeString( bstrNewPVKFile );

Anforderungen

   
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