다음을 통해 공유


CryptGetKeyIdentifierProperty 함수(wincrypt.h)

중요 이 API는 더 이상 사용되지 않습니다. 신규 및 기존 소프트웨어는 암호화 차세대 API 사용을 시작해야 합니다. Microsoft는 이후 릴리스에서 이 API를 제거할 수 있습니다.
 
CryptGetKeyIdentifierProperty는 지정된 키 식별자에서 특정 속성을 가져옵니다.

구문

BOOL CryptGetKeyIdentifierProperty(
  [in]      const CRYPT_HASH_BLOB *pKeyIdentifier,
  [in]      DWORD                 dwPropId,
  [in]      DWORD                 dwFlags,
  [in]      LPCWSTR               pwszComputerName,
  [in]      void                  *pvReserved,
  [out]     void                  *pvData,
  [in, out] DWORD                 *pcbData
);

매개 변수

[in] pKeyIdentifier

키 식별자를 포함하는 CRYPT_HASH_BLOB 대한 포인터입니다.

[in] dwPropId

검색할 속성을 식별합니다. dwPropId 값은 pvData 매개 변수의 형식과 콘텐츠를 결정합니다. 모든 인증서 속성 ID를 사용할 수 있습니다.

[in] dwFlags

다음 플래그를 사용할 수 있습니다. 비트 OR 연산과 결합할 수 있습니다.

의미
CRYPT_KEYID_MACHINE_FLAG
LocalMachine( pwszComputerNameNULL인 경우) 또는 원격 컴퓨터( pwszComputerNameNULL이 아닌 경우)의 키 식별자 목록을 검색합니다. 자세한 내용은 pwszComputerName을 참조하세요.
CRYPT_KEYID_ALLOC_FLAG
LocalAlloc() 함수는 pvData에 대한 메모리를 할당하기 위해 호출됩니다. *pvData 는 할당된 메모리에 대한 포인터로 업데이트됩니다. 할당된 메모리를 해제하려면 LocalFree()를 호출해야 합니다.

[in] pwszComputerName

검색할 원격 컴퓨터의 이름에 대한 포인터입니다. CRYPT_KEYID_MACHINE_FLAG 플래그가 설정된 경우 원격 컴퓨터에서 키 식별자 목록을 검색합니다. 원격 컴퓨터가 아닌 로컬 컴퓨터를 검색하려면 pwszComputerNameNULL로 설정합니다.

[in] pvReserved

나중에 사용할 수 있으며 NULL이어야 합니다.

[out] pvData

dwPropId에 의해 결정된 데이터를 수신하는 버퍼에 대한 포인터입니다. pvData 구조체의 필드가 가리키는 요소는 구조체를 따릅니다. 따라서 pcbData 에 포함된 크기는 구조체의 크기를 초과할 수 있습니다.

dwPropId가 CERT_KEY_PROV_INFO_PROP_ID 경우 pvData는 키 식별자의 속성을 포함하는 CRYPT_KEY_PROV_INFO 구조를 가리킵니다.

dwPropId가 CERT_KEY_PROV_INFO_PROP_ID 않으면 pvData는 키 식별자의 속성을 포함하는 바이트 배열을 가리킵니다.

메모리 할당을 위해 이 정보의 크기를 가져오기 위해 CRYPT_KEYID_ALLOC_FLAG 설정되지 않은 경우 이 매개 변수는 NULL 일 수 있습니다. 자세한 내용은 알 수 없는 길이의 데이터 검색을 참조하세요.

CRYPT_KEYID_ALLOC_FLAG 설정되면 pvData 는 업데이트될 버퍼에 대한 포인터의 주소입니다. 메모리가 할당되고 포인터가 *pvData에 저장되므로 pvDataNULL이 아니어야 합니다.

[in, out] pcbData

pvData 매개 변수가 가리키는 버퍼의 크기(바이트)를 포함하는 DWORD에 대한 포인터입니다. 함수가 반환되면 DWORD 에는 버퍼에 저장된 바이트 수가 포함됩니다. pcbData가 가리키는 변수에 포함된 크기는 구조체에 보조 데이터에 대한 포인터를 포함할 수 있으므로 CRYPT_KEY_PROV_INFO 구조체보다 큰 크기를 나타낼 수 있습니다. 이 크기는 구조체 및 모든 보조 데이터에 필요한 크기의 합계입니다.

CRYPT_KEYID_ALLOC_FLAG 설정되면 pcbData 는 업데이트될 DWORD 에 대한 포인터의 주소입니다.

참고 버퍼에서 반환된 데이터를 처리할 때 애플리케이션은 반환된 데이터의 실제 크기를 사용해야 합니다. 실제 크기는 입력에 지정된 버퍼 크기보다 약간 작을 수 있습니다. 입력에서 버퍼 크기는 일반적으로 가능한 가장 큰 출력 데이터가 버퍼에 맞도록 충분히 크게 지정됩니다. 출력 시 이 매개 변수가 가리키는 변수는 버퍼에 복사된 데이터의 실제 크기를 반영하도록 업데이트됩니다.
 

반환 값

함수가 성공하면 함수는 0이 아닌 값(TRUE)을 반환합니다.

함수가 실패하면 0(FALSE)을 반환합니다. 확장된 오류 정보는 GetLastError를 호출합니다.

요구 사항

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

추가 정보

CryptEnumKeyIdentifierProperties

CryptSetKeyIdentifierProperty

키 식별자 함수