Método ICEnroll::get_PVKFileName (xenroll.h)
[Essa propriedade não está mais disponível para uso desde o Windows Server 2008 e o Windows Vista.]
A propriedade PVKFileName define ou recupera o nome do arquivo que conterá chaves exportadas.
Essa propriedade foi definida pela primeira vez na interface ICEnroll .
Essa propriedade é leitura/gravação.
Sintaxe
HRESULT get_PVKFileName(
BSTR *pbstr
);
Parâmetros
pbstr
Valor retornado
Nenhum
Comentários
A propriedade PVKFileName afeta o comportamento dos seguintes métodos:
A exportação da funcionalidade pode não ter suporte do provedor de serviços criptográficos (CSP). Historicamente, o Authenticode exportou a chave privada para um arquivo .pvk em um disco e removeu as chaves do registro. Por padrão, as chaves privadas não são geradas para exportação e muitos provedores de serviços criptográficos não dão suporte à exportação de chaves. No entanto, se o CSP der suporte à exportação de chaves privadas, especificar um valor não NULL para a propriedade PVKFileName fará com que as chaves privadas sejam geradas como exportáveis e as chaves privadas e públicas sejam gravadas no arquivo especificado pela propriedade PVKFileName . A chave privada é removida do CSP. O nome do arquivo especificado pela propriedade pode ser qualquer arquivo acessível. Por padrão, nenhum arquivo .pvk é gerado e as chaves não são geradas como exportáveis.
Se o arquivo .pvk já existir, o usuário será notificado e solicitará permissão para substituí-lo.
A propriedade GenKeyFlags também tem um sinalizador que controla se a chave privada pode ser exportada. Tenha cuidado ao usar a propriedade GenKeyFlags e a propriedade PVKFileName juntas. Se a propriedade PVKFileName for definida primeiro, a propriedade GenKeyFlags será definida automaticamente como CRYPT_EXPORTABLE. Se a propriedade GenKeyFlags for definida (usando a função put_GenKeyFlags ) sem incluir o sinalizador CRYPT_EXPORTABLE, o GenKeyFlags não será definido como CRYPT_EXPORTABLE e as chaves geradas não serão exportáveis. O procedimento a seguir demonstra isso:
- Chame put_PVKFileName para definir o nome do arquivo que receberá as chaves exportadas. A propriedade GenKeyFlags é definida automaticamente como CRYPT_EXPORTABLE.
- Chame put_GenKeyFlags com um valor não definido como CRYPT_EXPORTABLE, por exemplo, zero.
- GenKeyFlags não está mais definido como CRYPT_EXPORTABLE (o valor que foi definido automaticamente na etapa um).
Todas as chaves geradas seguindo as etapas anteriores não serão exportáveis. Portanto, é recomendável que o usuário defina a propriedade GenKeyFlags antes da propriedade PVKFileName quando eles forem usados juntos.
Como alternativa, o usuário pode determinar o valor atual do bit CRYPT_EXPORTABLE na propriedade GenKeyFlags e, em seguida, executar uma operação OR bit a bit entre esse valor e quaisquer alterações feitas na propriedade GenKeyFlags para garantir que o bit não seja apagado. O usuário também pode definir especificamente o bit CRYPT_EXPORTABLE ao atualizar a propriedade GenKeyFlags .
Exemplos
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 | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | xenroll.h |
Biblioteca | Uuid.lib |
DLL | Xenroll.dll |