Share via


ICEnroll::p ut_PVKFileName 메서드(xenroll.h)

[이 속성은 Windows Server 2008 및 Windows Vista를 기준으로 더 이상 사용할 수 없습니다.]

PVKFileName 속성은 내보낸 키를 포함할 파일의 이름을 설정하거나 검색합니다.

이 속성은 ICEnroll 인터페이스에서 처음 정의되었습니다.

이 속성은 읽기/쓰기가 가능합니다.

구문

HRESULT put_PVKFileName(
  BSTR bstr
);

매개 변수

bstr

반환 값

없음

설명

PVKFileName 속성은 다음 메서드의 동작에 영향을 줍니다.

CSP( 암호화 서비스 공급자 )에서 내보내기 기능을 지원하지 않을 수 있습니다. 지금까지 Authenticode프라이빗 키를 디스크의 .pvk 파일로 내보내고 레지스트리에서 키를 제거했습니다. 기본적으로 프라이빗 키는 내보내기 위해 생성되지 않으며 많은 암호화 서비스 공급자는 키 내보내기 를 지원하지 않습니다. 그러나 CSP가 프라이빗 키 내보내기를 지원하는 경우 PVKFileName 속성에 NULL이 아닌 값을 지정하면 프라이빗 키가 내보내기로 생성되고 프라이빗 키와 공용 키가 PVKFileName 속성으로 지정된 파일에 기록됩니다. 프라이빗 키가 CSP에서 제거됩니다. 속성에 지정된 파일 이름은 액세스할 수 있는 모든 파일일 수 있습니다. 기본적으로 .pvk 파일은 생성되지 않으며 키는 내보낼 수 있는 것으로 생성되지 않습니다.

.pvk 파일이 이미 있는 경우 사용자에게 알림을 받고 덮어쓸 수 있는 권한을 묻는 메시지가 표시됩니다.

GenKeyFlags 속성에는 프라이빗 키를 내보낼 수 있는지 여부를 제어하는 플래그도 있습니다. GenKeyFlags 속성과 PVKFileName 속성을 함께 사용할 때는 주의해야 합니다. PVKFileName 속성이 먼저 설정되면 GenKeyFlags 속성이 자동으로 CRYPT_EXPORTABLE 설정됩니다. CRYPT_EXPORTABLE 플래그를 포함하지 않고 GenKeyFlags 속성이 put_GenKeyFlags 함수를 사용하여 설정된 경우 GenKeyFlags 는 CRYPT_EXPORTABLE 설정되지 않으며 생성된 키를 내보낼 수 없습니다. 다음 절차에서는 이를 보여 줍니다.

  1. put_PVKFileName 호출하여 내보낸 키를 받을 파일의 파일 이름을 설정합니다. GenKeyFlags 속성은 자동으로 CRYPT_EXPORTABLE 설정됩니다.
  2. 값이 CRYPT_EXPORTABLE 설정되지 않은 put_GenKeyFlags 호출합니다(예: 0).
  3. GenKeyFlags 는 더 이상 CRYPT_EXPORTABLE 설정되지 않습니다(1단계에서 자동으로 설정된 값).

이전 단계를 수행하여 생성된 키는 내보낼 수 없습니다. 따라서 사용자가 함께 사용될 때 GenKeyFlags 속성을 PVKFileName 속성 앞에 설정하는 것이 좋습니다.

또는 사용자가 GenKeyFlags 속성에서 CRYPT_EXPORTABLE 비트의 현재 값을 확인한 다음 이 값과 GenKeyFlags 속성에 대한 변경 내용 간에 비트 OR 연산을 수행하여 비트가 초기화되지 않도록 할 수 있습니다. 또한 사용자는 GenKeyFlags 속성을 업데이트할 때 CRYPT_EXPORTABLE 비트를 구체적으로 설정할 수도 있습니다.

예제

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

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 xenroll.h
라이브러리 Uuid.lib
DLL Xenroll.dll