ICEnroll::get_PVKFileName-Methode (xenroll.h)

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

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

Diese Eigenschaft wurde zuerst in der ICEnroll-Schnittstelle definiert.

Dies ist eine Eigenschaft mit Lese- und Schreibzugriff.

Syntax

HRESULT get_PVKFileName(
  BSTR *pbstr
);

Parameter

pbstr

Rückgabewert

Keine

Bemerkungen

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

Das Exportieren von Funktionen wird vom Kryptografiedienstanbieter (Kryptografiedienstanbieter , CSP) möglicherweise nicht unterstützt. 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 private Schlüssel nicht für den Export generiert, und viele Kryptografiedienstanbieter unterstützen den Export von Schlüsseln nicht. Wenn der CSP jedoch das Exportieren privater Schlüssel unterstützt, werden die privaten Schlüssel als exportierbar generiert, und die privaten und öffentlichen Schlüssel werden in die von der PVKFileName-Eigenschaft angegebene Datei geschrieben. 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, werden die 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 auf, wobei ein Wert 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).

Alle 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 Änderungen an der GenKeyFlags-Eigenschaft ausführen, um sicherzustellen, dass das Bit nicht gelöscht wird. Der Benutzer kann beim Aktualisieren der GenKeyFlags-Eigenschaft auch gezielt 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

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