Partager via


MÉTHODE ICEnroll ::get_PVKFileName (xenroll.h)

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

La propriété PVKFileName définit ou récupère le nom du fichier qui contiendra des 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 get_PVKFileName(
  BSTR *pbstr
);

Paramètres

pbstr

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 csp 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 fournisseur de solutions cloud. 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. Soyez prudent 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 ne sera pas définie sur CRYPT_EXPORTABLE et les clés générées ne seront pas exportables. La procédure suivante le montre :

  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 dont la valeur n’est pas 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 seront pas exportables. Par conséquent, il est recommandé à l’utilisateur de définir 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 CRYPT_EXPORTABLE bit 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 );

Configuration requise

Condition requise Valeur
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