Compartir a través de


Método ICEnroll::get_PVKFileName (xenroll.h)

[Esta propiedad ya no está disponible para su uso a partir de Windows Server 2008 y Windows Vista.]

La propiedad PVKFileName establece o recupera el nombre del archivo que contendrá claves exportadas.

Esta propiedad se definió por primera vez en la interfaz ICEnroll .

Esta propiedad es de lectura y escritura.

Sintaxis

HRESULT get_PVKFileName(
  BSTR *pbstr
);

Parámetros

pbstr

Valor devuelto

None

Observaciones

La propiedad PVKFileName afecta al comportamiento de los métodos siguientes:

Es posible que el proveedor de servicios criptográficos (CSP) no admita la funcionalidad de exportación. Históricamente, Authenticode ha exportado la clave privada a un archivo .pvk en un disco y ha quitado las claves del registro. De forma predeterminada, las claves privadas no se generan para la exportación y muchos proveedores de servicios criptográficos no admiten la exportación de claves. Sin embargo, si el CSP admite la exportación de claves privadas, especificar un valor distinto de NULL para la propiedad PVKFileName hace que las claves privadas se generen como exportables y las claves privadas y públicas que se escribirán en el archivo especificado por la propiedad PVKFileName . La clave privada se quita del CSP. El nombre de archivo especificado por la propiedad puede ser cualquier archivo accesible. De forma predeterminada, no se genera ningún archivo .pvk y las claves no se generan como exportables.

Si el archivo .pvk ya existe, se le notificará al usuario y se le pedirá permiso para sobrescribirlo.

La propiedad GenKeyFlags también tiene una marca que controla si se puede exportar la clave privada. Use cuidado al usar la propiedad GenKeyFlags y la propiedad PVKFileName juntas. Si la propiedad PVKFileName se establece primero, la propiedad GenKeyFlags se establece automáticamente en CRYPT_EXPORTABLE. Si se establece la propiedad GenKeyFlags (mediante la función put_GenKeyFlags ) sin incluir la marca de CRYPT_EXPORTABLE, no se establecerá GenKeyFlags en CRYPT_EXPORTABLE y las claves generadas no se podrán exportar. En el procedimiento siguiente se muestra lo siguiente:

  1. Llame a put_PVKFileName para establecer el nombre de archivo del archivo que recibirá las claves exportadas. La propiedad GenKeyFlags se establece automáticamente en CRYPT_EXPORTABLE.
  2. Llame a put_GenKeyFlags con un valor no establecido en CRYPT_EXPORTABLE, por ejemplo, cero.
  3. GenKeyFlags ya no se establece en CRYPT_EXPORTABLE (el valor que se estableció automáticamente en el paso uno).

Las claves generadas siguiendo los pasos anteriores no se podrán exportar. Por lo tanto, se recomienda que el usuario establezca la propiedad GenKeyFlags antes de la propiedad PVKFileName cuando se usan juntos.

Como alternativa, el usuario podría determinar el valor actual del bit de CRYPT_EXPORTABLE en la propiedad GenKeyFlags y, a continuación, realizar una operación OR bit a bit entre este valor y los cambios realizados en la propiedad GenKeyFlags para asegurarse de que el bit no se borra. El usuario también podría establecer específicamente el CRYPT_EXPORTABLE bit al actualizar la propiedad GenKeyFlags .

Ejemplos

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado xenroll.h
Library Uuid.lib
Archivo DLL Xenroll.dll