CryptFindOIDInfo 함수(wincrypt.h)
CryptFindOIDInfo 함수는 지정된 키 유형 및 키와 일치하는 첫 번째 미리 정의되거나 등록된 CRYPT_OID_INFO 구조를 검색합니다. 검색은 지정된 OID 그룹 내의 OID( 개체 식별자 )로 제한될 수 있습니다.
CryptEnumOIDInfo를 사용하여 CRYPT_OID_INFO 구조체의 전체 또는 선택한 하위 집합을 나열합니다. CryptRegisterOIDInfo를 사용하여 새 CRYPT_OID_INFO 구조를 등록할 수 있습니다. CryptUnregisterOIDInfo를 사용하여 등록된 OID 목록에서 사용자 등록 OID를 제거할 수 있습니다.
새 OID는 미리 정의된 항목 앞이나 뒤의 등록된 OID 목록에 배치할 수 있습니다. CryptFindOIDInfo는 검색 조건과 일치하는 목록의 첫 번째 키를 반환하므로 동일한 키를 가진 미리 정의된 OID 항목 앞에 새로 등록된 OID가 미리 정의된 항목을 재정의합니다.
구문
PCCRYPT_OID_INFO CryptFindOIDInfo(
[in] DWORD dwKeyType,
[in] void *pvKey,
[in] DWORD dwGroupId
);
매개 변수
[in] dwKeyType
OID 정보를 찾을 때 사용할 키 유형을 지정합니다.
이 매개 변수는 다음 키 형식 중 하나일 수 있습니다.
CRYPT_OID_INFO_OID_KEY
pvKey 는 찾을 OID 문자열이 포함된 null로 종료된 ANSI 문자열의 주소입니다.
CRYPT_OID_INFO_NAME_KEY
pvKey 는 찾을 이름을 포함하는 null로 종료된 유니코드 문자열의 주소입니다.
CRYPT_OID_INFO_ALGID_KEY
pvKey 는 ALG_ID 변수의 주소입니다. 다음 ALG_ID지원됩니다.
해시 알고리즘:
대칭 암호화 알고리즘:
공개 키 알고리즘:
나열되지 않은 알고리즘은 암호화 API: CNG(차세대)만 사용하여 지원됩니다. 대신 CRYPT_OID_INFO_CNG_ALGID_KEY 사용합니다.
CRYPT_OID_INFO_SIGN_KEY
pvKey는 첫 번째요소에 해시 알고리즘 식별자가 포함되고 두 번째 요소에 공개 키 알고리즘 식별자가 포함된 두 ALG_ID 배열의 주소입니다.
다음 ALG_ID 조합이 지원됩니다.
서명 알고리즘 식별자 | 해시 알고리즘 식별자 |
---|---|
CALG_RSA_SIGN |
|
CALG_DSS_SIGN |
|
CALG_NO_SIGN |
|
나열되지 않은 알고리즘은 CNG를 통해서만 지원됩니다. 대신 CRYPT_OID_INFO_CNG_SIGN_KEY 사용합니다.
CRYPT_OID_INFO_CNG_ALGID_KEY
pvKey 는 찾을 CNG 알고리즘 식별자가 포함된 null로 종료된 유니코드 문자열의 주소입니다. 미리 정의된 CNG 알고리즘 식별자 또는 등록된 다른 알고리즘 식별자 중 하나일 수 있습니다.
Windows Server 2003 R2 Windows Server 2003 : 이 키 형식은 지원되지 않습니다.CRYPT_OID_INFO_CNG_SIGN_KEY
pvKey 는 첫 번째 문자열에 해시 CNG 알고리즘 식별자가 포함되고 두 번째 문자열에 공개 키 CNG 알고리즘 식별자가 포함된 null로 끝나는 두 개의 유니코드 문자열 포인터 배열의 주소입니다. 미리 정의된 CNG 알고리즘 식별자 또는 다른 등록된 알고리즘 식별자에서 사용할 수 있습니다.
Windows Server 2003 R2 Windows Server 2003 : 이 키 형식은 지원되지 않습니다.필요에 따라 논리 OR 연산자(|)를 사용하여 dwKeyType 매개 변수에 다음 키 형식을 지정할 수 있습니다.
[in] pvKey
추가 검색 정보가 포함된 버퍼의 주소입니다. 이 매개 변수는 dwKeyType 매개 변수의 값에 따라 달라집니다. 자세한 내용은 dwKeyType 아래의 표를 참조하세요.
[in] dwGroupId
OID 정보를 찾을 때 사용할 그룹 식별자입니다. 이 매개 변수를 0으로 설정하면 dwKeyType 매개 변수에 따라 모든 그룹이 검색됩니다. 그렇지 않으면 표시된 dwGroupId 만 검색됩니다.
그룹 식별자별 OID 정보를 나열하는 코드에 대한 자세한 내용은 CryptEnumOIDInfo를 참조하세요.
필요에 따라 논리 OR 연산자(|)를 사용하여 dwGroupId 매개 변수에 다음 플래그를 지정할 수 있습니다.
값 | 의미 |
---|---|
|
디렉터리 서버 검색을 사용하지 않도록 설정합니다. |
왼쪽 16비트 이동 비트 길이는 논리 OR 연산자(|)를 사용하여 dwGroupId 매개 변수에 지정할 수 있습니다. 자세한 내용은 설명 부분을 참조하세요.
반환 값
CRYPT_OID_INFO 형식의 상수 구조에 대한 포인터를 반환합니다. 반환된 포인터를 해제하면 안 됩니다. 지정된 키와 그룹을 찾을 수 없으면 NULL 이 반환됩니다.
설명
CryptFindOIDInfo 함수는 Active Directory에서 조회를 수행하여 다음 조건에서 ID의 이름을 검색합니다.
- dwKeyType 매개 변수의 키 형식은 CRYPT_OID_INFO_OID_KEY 또는 CRYPT_OID_INFO_NAME_KEY 설정됩니다.
- dwGroupId 매개 변수에 그룹 식별자가 지정되지 않거나 GroupID가 EKU OID, 정책 OID 또는 템플릿 OID를 참조합니다.
왼쪽 16비트 이동 비트 길이는 논리 OR 연산자(|)를 사용하여 dwGroupId 매개 변수에 지정할 수 있습니다. 이는 CRYPT_OID_INFO 구조체의 ExtraInfo 멤버에 지정된 비트 길이가 있는 CRYPT_ENCRYPT_ALG_OID_GROUP_ID 그룹 항목에만 적용됩니다. 현재 AES 암호화 알고리즘만 이 알고리즘을 사용합니다. 상수 CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT 교대 근무에 사용할 수 있습니다. 예를 들어 비트 길이가 192인 BCRYPT_AES_ALGORITHM 대한 OID 정보를 찾으려면 다음과 같이 CryptFindOIDInfo 를 호출합니다.
DWORD dwBitLen = 192;
PCCRYPT_OID_INFO pOIDInfo = CryptFindOIDInfo(
CRYPT_OID_INFO_CNG_ALGID_KEY,
(void *) BCRYPT_AES_ALGORITHM,
CRYPT_ENCRYPT_ALG_OID_GROUP_ID |
(dwBitLen << CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT)
);
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Crypt32.lib |
DLL | Crypt32.dll |