IX509CertificateRequestPkcs10::GetCspStatuses 메서드(certenroll.h)
GetCspStatuses 메서드는 호출자가 지정한 프라이빗 키의 의도된 사용과 일치하는 모든 공급자/알고리즘 쌍을 포함하는 ICspStatuses 컬렉션을 검색합니다.
구문
HRESULT GetCspStatuses(
[in] X509KeySpec KeySpec,
[out] ICspStatuses **ppCspStatuses
);
매개 변수
[in] KeySpec
키의 용도를 지정하는 X509KeySpec 열거형 값입니다. 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
암호화 API: 차세대(CNG) 공급자만 선택됩니다. |
|
암호화 알고리즘(키 교환 포함)이 있는 CSP( CryptoAPI 암호화 서비스 공급자 )만 선택됩니다. |
|
서명 알고리즘이 있는 CryptoAPI CSP만 선택됩니다. |
[out] ppCspStatuses
컬렉션을 나타내는 ICspStatuses 인터페이스에 대한 포인터를 수신하는 변수의 주소입니다.
반환 값
함수가 성공하면 함수는 S_OK 반환합니다.
함수가 실패하면 오류를 나타내는 HRESULT 값을 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다. 일반적인 오류 코드 목록은 일반 HRESULT 값을 참조하세요.
반환 코드 | 설명 |
---|---|
|
프라이빗 키를 찾을 수 없습니다. |
|
개체가 초기화되지 않았습니다. |
설명
이 메서드는 ICspStatus 개체의 컬렉션을 검색합니다. 각 개체는 단일 공급자/알고리즘 쌍을 나타냅니다. IX509CertificateRequestPkcs10 요청 개체를 초기화할 때 템플릿을 지정하는 경우 pKIDefaultCSP 및 pKIDefaultKeySpec과 같은 템플릿 특성은 처음에 사용하도록 설정된 쌍에 영향을 줍니다. 각 ICspStatus 개체에서 다음 속성을 호출하여 쌍에 대한 정보를 검색할 수 있습니다.
- CspInformation 속성은 공급자 정보를 검색합니다.
- CspAlgorithm 속성은 알고리즘 정보를 검색합니다.
- EnrollmentStatus 속성은 IX509EnrollmentStatus 개체를 검색합니다. 상태 개체에서 Selected 속성을 호출하여 이 요청에 대해 공급자/알고리즘 쌍을 사용할 수 있는지 여부를 확인합니다.
- 서수 속성은 공급자/알고리즘 쌍 컬렉션의 위치를 검색합니다.
이 메서드에서 검색한 컬렉션은 요청 개체에 내부적으로 저장됩니다. 각 KeySpec 값에 대해 하나씩 최대 3개의 컬렉션을 만들고 저장할 수 있습니다. 이는 공급자/알고리즘 쌍의 선택 상태를 유지하여 관련 속성 페이지를 정확하고 빠르게 여러 번 표시할 수 있도록 하고 , 인코딩 메서드가 프라이빗 키를 만들어야 하는 경우 선택된 공급자 및 알고리즘을 식별할 수 있도록 하기 위해 수행됩니다. 공급자/알고리즘 쌍의 선택 상태가 수정되면 변경 내용이 적절한 컬렉션에 저장됩니다. 한 컬렉션의 멤버에 대한 변경 내용은 다른 컬렉션의 멤버에 영향을 주지 않습니다. PKCS #10 개체가 계속 존재하는 한 컬렉션이 존재합니다.
예를 들어 KeySpec 매개 변수가 XCN_AT_SIGNATURE 설정된 상태에서 이 메서드가 호출되고 템플릿이 요청을 초기화하는 데 사용된다고 가정합니다. 다음 문은 true입니다.
- ICspStatus 개체의 컬렉션이 만들어지고 IX509CertificateRequestPkcs10 개체에 저장됩니다. 컬렉션에는 컴퓨터에 설치된 모든 유효한 공급자/알고리즘 쌍이 포함됩니다.
- KeySpec 매개 변수가 XCN_AT_NONE 설정되지 않았으므로 Selected 속성은 컬렉션의 각 Cryptography API: Next Generation(CNG) 공급자/알고리즘 쌍에 대해 SelectedNo로 설정됩니다.
- KeySpec 매개 변수가 XCN_AT_KEYEXCHANGE 설정되지 않았으므로 컬렉션에서 알고리즘을 사용하여 데이터를 암호화하거나 키를 보관할 수 있는 각 CryptoAPI CSP/알고리즘 쌍에 대해 SelectedNo로 설정됩니다.
- 템플릿 또는 프라이빗 키에서 참조하지만 컴퓨터에서 지원되지 않는 각 공급자에 대해 자리 표시자 ICspStatus 개체가 만들어지고 컬렉션에 추가되고 Selected 속성이 SelectedNo로 설정됩니다.
- Selected 속성은 알고리즘을 사용하여 데이터에 서명할 수 있는 각 CryptoAPI CSP/알고리즘 쌍에 대해 SelectedYes로 설정됩니다.
- 서수 속성은 pKIDefaultCSPs 템플릿 특성으로 식별되는 CSP 순서(있는 경우)를 반영하도록 설정됩니다. 특성에 의해 먼저 나열된 CSP는 컬렉션에서 먼저 정렬됩니다. 이 속성은 프라이빗 키를 만들어야 하는 경우 등록 중에 사용됩니다. 첫 번째 선택한 CSP/알고리즘 쌍은 키를 만드는 데 사용되지만 작업이 실패하면 선택한 다음 쌍이 시도됩니다.
- 동일한 KeySpec 매개 변수를 사용하여 이 메서드를 다시 호출하면 해당 매개 변수 값에 대해 이전에 만든 기존 컬렉션에 대한 포인터가 검색됩니다.
- 다른 KeySpec 매개 변수를 사용하여 이 메서드를 다시 호출해도 XCN_AT_SIGNATURE KeySpec 값에 대해 생성된 컬렉션에는 영향을 미치지 않습니다. 또한 새 컬렉션의 멤버에서 Selected 속성을 변경해도 이전 컬렉션의 멤버에는 영향을 주지 않습니다.
GetCspStatuses 메서드는 KeySpec 매개 변수를 사용하여 CspStatuses 속성과 다릅니다. 메서드를 사용하면 사용자가 이 값을 지정할 수 있지만 속성은 요청 개체와 연결된 프라이빗 키에 설정된 값을 사용합니다.
이 메서드를 호출하기 전에 IX509CertificateRequestPkcs10 개체를 초기화해야 합니다. 자세한 내용은 다음 방법 중 일부를 참조하세요.
- InitializeDecode
- InitializeFromCertificate
- InitializeFromPrivateKey
- InitializeFromPublicKey
- InitializeFromTemplateName
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | certenroll.h |
DLL | CertEnroll.dll |