Metodo ICEnroll::p ut_PVKFileName (xenroll.h)

[Questa proprietà non è più disponibile per l'uso a partire da Windows Server 2008 e Windows Vista.]

La proprietà PVKFileName imposta o recupera il nome del file che conterrà le chiavi esportate.

Questa proprietà è stata definita per la prima volta nell'interfaccia ICEnroll .

Si tratta di una proprietà di lettura/scrittura.

Sintassi

HRESULT put_PVKFileName(
  BSTR bstr
);

Parametri

bstr

Valore restituito

nessuno

Osservazioni

La proprietà PVKFileName influisce sul comportamento dei metodi seguenti:

L'esportazione delle funzionalità potrebbe non essere supportata dal provider di servizi di crittografia (CSP). In passato , Authenticode ha esportato la chiave privata in un file con estensione pvk in un disco e ha rimosso le chiavi dal Registro di sistema. Per impostazione predefinita, le chiavi private non vengono generate per l'esportazione e molti provider di servizi di crittografia non supportano l'esportazione delle chiavi. Tuttavia, se il provider di servizi di configurazione supporta l'esportazione di chiavi private, specificando un valore non NULL per la proprietà PVKFileName , le chiavi private verranno generate come esportabili e le chiavi private e pubbliche da scrivere nel file specificato dalla proprietà PVKFileName . La chiave privata viene rimossa dal provider di servizi di configurazione. Il nome file specificato dalla proprietà può essere qualsiasi file accessibile. Per impostazione predefinita, non viene generato alcun file pvk e le chiavi non vengono generate come esportabili.

Se il file con estensione pvk esiste già, l'utente riceve una notifica e richiede l'autorizzazione per sovrascriverla.

La proprietà GenKeyFlags include anche un flag che controlla se la chiave privata può essere esportata. Prestare attenzione quando si usa la proprietà GenKeyFlags e la proprietà PVKFileName insieme. Se la proprietà PVKFileName viene impostata per prima, la proprietà GenKeyFlags viene impostata automaticamente su CRYPT_EXPORTABLE. Se la proprietà GenKeyFlags è impostata (tramite la funzione put_GenKeyFlags ) senza includere il flag CRYPT_EXPORTABLE, genKeyFlags non verrà impostato su CRYPT_EXPORTABLE e le chiavi generate non saranno esportabili. La procedura seguente illustra quanto segue:

  1. Chiamare put_PVKFileName per impostare il nome file per il file che riceverà le chiavi esportate. La proprietà GenKeyFlags viene impostata automaticamente su CRYPT_EXPORTABLE.
  2. Chiamare put_GenKeyFlags con un valore non impostato su CRYPT_EXPORTABLE, ad esempio zero.
  3. GenKeyFlags non è più impostato su CRYPT_EXPORTABLE (il valore impostato automaticamente nel passaggio 1).

Le chiavi generate seguendo i passaggi precedenti non saranno esportabili. È pertanto consigliabile impostare la proprietà GenKeyFlags prima della proprietà PVKFileName quando vengono usati insieme.

In alternativa, l'utente potrebbe determinare il valore corrente del bit CRYPT_EXPORTABLE nella proprietà GenKeyFlags e quindi eseguire un'operazione OR bit per bit tra questo valore e tutte le modifiche apportate alla proprietà GenKeyFlags per assicurarsi che il bit non venga cancellato. L'utente può anche impostare in modo specifico il bit di CRYPT_EXPORTABLE durante l'aggiornamento della proprietà GenKeyFlags .

Esempio

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

Requisiti

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione xenroll.h
Libreria Uuid.lib
DLL Xenroll.dll