Partager via


Méthode ICEnroll::p ut_PVKFileName (xenroll.h)

[Cette propriété n’est plus disponible depuis Windows Server 2008 et Windows Vista.]

La propriété PVKFileName définit ou récupère le nom du fichier qui contiendra les clés exportées.

Cette propriété a d’abord été définie dans l’interface ICEnroll .

Cette propriété est en lecture/écriture.

Syntaxe

HRESULT put_PVKFileName(
  BSTR bstr
);

Paramètres

bstr

Valeur de retour

None

Remarques

La propriété PVKFileName affecte le comportement des méthodes suivantes :

L’exportation de fonctionnalités peut ne pas être prise en charge par le fournisseur de services de chiffrement (CSP). Historiquement, Authenticode a exporté la clé privée vers un fichier .pvk sur un disque et a supprimé les clés du Registre. Par défaut, les clés privées ne sont pas générées pour l’exportation, et de nombreux fournisseurs de services de chiffrement ne prennent pas en charge l’exportation de clés. Toutefois, si le fournisseur de solutions Cloud prend en charge l’exportation de clés privées, la spécification d’une valeur non NULL pour la propriété PVKFileName entraîne la génération des clés privées comme exportables et l’écriture des clés privées et publiques dans le fichier spécifié par la propriété PVKFileName . La clé privée est supprimée du csp. Le nom de fichier spécifié par la propriété peut être n’importe quel fichier accessible. Par défaut, aucun fichier .pvk n’est généré et les clés ne sont pas générées comme exportables.

Si le fichier .pvk existe déjà, l’utilisateur est averti et invité à le remplacer.

La propriété GenKeyFlags a également un indicateur qui contrôle si la clé privée peut être exportée. Faites attention lorsque vous utilisez ensemble la propriété GenKeyFlags et la propriété PVKFileName . Si la propriété PVKFileName est définie en premier, la propriété GenKeyFlags est automatiquement définie sur CRYPT_EXPORTABLE. Si la propriété GenKeyFlags est définie (à l’aide de la fonction put_GenKeyFlags ) sans inclure l’indicateur CRYPT_EXPORTABLE, genKeyFlags n’est pas définie sur CRYPT_EXPORTABLE et les clés générées ne peuvent pas être exportées. La procédure suivante illustre ceci :

  1. Appelez put_PVKFileName pour définir le nom du fichier qui recevra les clés exportées. La propriété GenKeyFlags est automatiquement définie sur CRYPT_EXPORTABLE.
  2. Appelez put_GenKeyFlags avec une valeur non définie sur CRYPT_EXPORTABLE, par exemple zéro.
  3. GenKeyFlags n’est plus défini sur CRYPT_EXPORTABLE (valeur qui a été automatiquement définie à l’étape 1).

Toutes les clés générées en suivant les étapes précédentes ne sont pas exportables. Par conséquent, il est recommandé que l’utilisateur définisse la propriété GenKeyFlags avant la propriété PVKFileName lorsqu’ils sont utilisés ensemble.

L’utilisateur peut également déterminer la valeur actuelle du CRYPT_EXPORTABLE bit dans la propriété GenKeyFlags , puis effectuer une opération or au niveau du bit entre cette valeur et les modifications apportées à la propriété GenKeyFlags pour s’assurer que le bit n’est pas effacé. L’utilisateur peut également définir spécifiquement le bit CRYPT_EXPORTABLE lors de la mise à jour de la propriété GenKeyFlags .

Exemples

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

Spécifications

   
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