Share via


ICEnroll::get_PVKFileName 메서드(xenroll.h)

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

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

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

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

구문

HRESULT get_PVKFileName(
  BSTR *pbstr
);

매개 변수

pbstr

반환 값

없음

설명

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

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

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

GenKeyFlags 속성에는 프라이빗 키를 내보낼 수 있는지 여부를 제어하는 플래그도 있습니다. GenKeyFlags 속성과 PVKFileName 속성을 함께 사용할 때는 주의해야 합니다. PVKFileName 속성이 먼저 설정되면 GenKeyFlags 속성이 자동으로 CRYPT_EXPORTABLE 설정됩니다. genKeyFlags 속성이 CRYPT_EXPORTABLE 플래그를 포함하지 않고 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