CryptFormatObject 함수(wincrypt.h)

CryptFormatObject 함수는 인코딩된 데이터의 형식을 지정하고 인증서 인코딩 형식에 따라 할당된 버퍼에 유니코드 문자열을 반환합니다.

구문

BOOL CryptFormatObject(
  [in]      DWORD      dwCertEncodingType,
  [in]      DWORD      dwFormatType,
  [in]      DWORD      dwFormatStrType,
  [in]      void       *pFormatStruct,
  [in]      LPCSTR     lpszStructType,
  [in]      const BYTE *pbEncoded,
  [in]      DWORD      cbEncoded,
  [out]     void       *pbFormat,
  [in, out] DWORD      *pcbFormat
);

매개 변수

[in] dwCertEncodingType

인증서에 사용되는 인코딩 유형입니다. 현재 정의된 인증서 인코딩 유형은 X509_ASN_ENCODING.

[in] dwFormatType

형식 값의 서식을 지정합니다. 사용되지 않습니다. 0으로 설정됩니다.

[in] dwFormatStrType

구조 형식 형식 값입니다. 이 매개 변수는 0이거나 비트 OR 연산자를 사용하여 다음 플래그 중 하나 이상을 지정할 수 있습니다.

의미
0
데이터를 한 줄로 표시합니다. 각 하위 필드는 쉼표(,)와 연결됩니다. 자세한 내용은 설명 부분을 참조하세요.
CRYPT_FORMAT_STR_MULTI_LINE
0x0001
데이터를 한 줄(기본값)이 아닌 여러 줄로 표시합니다. 자세한 내용은 설명 부분을 참조하세요.
CRYPT_FORMAT_STR_NO_HEX
0x0010
16진수 덤프를 사용하지 않도록 설정합니다. 자세한 내용은 설명 부분을 참조하세요.

[in] pFormatStruct

구조체 형식에 대한 포인터입니다. 사용되지 않습니다. NULL로 설정합니다.

[in] lpszStructType

인코딩된 데이터를 정의하는 OID에 대한 포인터입니다. lpszStructType 매개 변수의 상위 단어가 0이면 하위 단어는 지정된 구조체의 형식에 대한 정수 식별자를 지정합니다. 그렇지 않으면 이 매개 변수는 null로 끝나는 문자열에 대한 긴 포인터입니다.

다음 표에서는 연결된 OID 확장을 사용하여 지원되는 OID를 나열합니다.

의미
SPC_FINANCIAL_CRITERIA_OBJID
1.3.6.1.4.1.311.2.1.27
SPC_SP_AGENCY_INFO_OBJID
1.3.6.1.4.1.311.2.1.10
szOID_AUTHORITY_INFO_ACCESS
1.3.6.1.5.5.7.1.1
szOID_AUTHORITY_KEY_IDENTIFIER2
2.5.29.35
szOID_BASIC_CONSTRAINTS2
2.5.29.19
szOID_CERT_POLICIES
2.5.29.32
szOID_CRL_DIST_POINTS
2.5.29.31
szOID_CRL_REASON_CODE
2.5.29.21
szOID_ENHANCED_KEY_USAGE
2.5.29.37
szOID_ISSUER_ALT_NAME2
2.5.29.18
szOID_KEY_ATTRIBUTES
2.5.29.2
szOID_KEY_USAGE
2.5.29.15
szOID_KEY_USAGE_RESTRICTION
2.5.29.4
szOID_NEXT_UPDATE_LOCATION
1.3.6.1.4.1.311.10.2
szOID_RSA_SMIMECapabilities
1.2.840.113549.1.9.15
szOID_SUBJECT_ALT_NAME2
2.5.29.17
szOID_SUBJECT_KEY_IDENTIFIER
2.5.29.14

[in] pbEncoded

형식을 지정할 인코딩된 데이터에 대한 포인터입니다. lpszStructType이 위에 나열된 OID 중 하나인 경우 pbEncoded는 인코딩된 확장입니다.

[in] cbEncoded

pbEncoded 구조체의 크기(바이트)입니다.

[out] pbFormat

서식이 지정된 문자열을 수신하는 버퍼에 대한 포인터입니다. 지정된 버퍼가 디코딩된 구조를 받을 만큼 충분히 크지 않은 경우 함수는 ERROR_MORE_DATA 설정하고 필요한 버퍼 크기를 바이트 단위로 pcbFormat이 가리키는 변수에 저장합니다. 이 매개 변수는 메모리 할당을 위해 이 정보의 크기를 설정하는 NULL 일 수 있습니다. 자세한 내용은 알 수 없는 길이의 데이터 검색을 참조하세요.

[in, out] pcbFormat

pbFormat 매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 변수에 대한 포인터입니다. 함수가 반환되면 pcbFormat 매개 변수가 가리키는 변수에는 버퍼에 저장된 바이트 수가 포함됩니다. 이 매개 변수는 pbFormatNULL인 경우에만 NULL일 수 있습니다.

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

반환 값

함수가 성공하면 반환 값은 TRUE입니다. 성공하지 못하면 반환 값은 FALSE입니다. 확장된 오류 정보를 검색하려면 GetLastError 함수를 사용합니다.

설명

이 함수의 기본 동작은 인코딩된 데이터의 한 줄 표시를 반환하는 것입니다. 즉, 각 하위 필드가 한 줄에 쉼표(,)와 연결됩니다. 데이터를 여러 줄로 표시하려면 CRYPT_FORMAT_STR_MULTI_LINE 플래그를 설정합니다. 그러면 각 하위 필드가 별도의 줄에 표시됩니다.

lpszStructType 매개 변수에 대해 설치되거나 등록된 서식 루틴이 없으면 인코딩된 CRYPT_INTEGER_BLOB 16진수 덤프가 반환됩니다. 사용자는 16진수 덤프를 사용하지 않도록 CRYPT_FORMAT_STR_NO_HEX 플래그를 설정할 수 있습니다.

요구 사항

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

추가 정보

CRYPT_INTEGER_BLOB