Share via


CryptStringToBinaryA 함수(wincrypt.h)

CryptStringToBinary 함수는 형식이 지정된 문자열을 바이트 배열로 변환합니다.

구문

BOOL CryptStringToBinaryA(
  [in]      LPCSTR pszString,
  [in]      DWORD  cchString,
  [in]      DWORD  dwFlags,
  [in]      BYTE   *pbBinary,
  [in, out] DWORD  *pcbBinary,
  [out]     DWORD  *pdwSkip,
  [out]     DWORD  *pdwFlags
);

매개 변수

[in] pszString

변환할 형식이 지정된 문자열을 포함하는 문자열에 대한 포인터입니다.

[in] cchString

종결 NULL 문자를 포함하지 않고 변환할 형식이 지정된 문자열의 문자 수입니다. 이 매개 변수가 0이면 pszString 은 null로 끝나는 문자열로 간주됩니다.

[in] dwFlags

변환할 문자열의 형식을 나타냅니다. 다음 값 중 하나일 수 있습니다.

의미
CRYPT_STRING_BASE64HEADER
0x00000000
'-----BEGIN ...-----'과 '-----엔드 ...-----' 형식의 줄 사이에 있는 Base64입니다. 아래의 설명을 참조하세요.
CRYPT_STRING_BASE64
0x00000001
머리글이 없는 Base64.
CRYPT_STRING_BINARY
0x00000002
순수 이진 복사입니다.
CRYPT_STRING_BASE64REQUESTHEADER
0x00000003
'-----BEGIN ...-----'과 '-----엔드 ...-----' 형식의 줄 사이에 있는 Base64입니다. 아래의 설명을 참조하세요.
CRYPT_STRING_HEX
0x00000004
16진수 전용 형식입니다.
CRYPT_STRING_HEXASCII
0x00000005
ASCII 문자 표시가 있는 16진수 형식입니다.
CRYPT_STRING_BASE64_ANY
0x00000006
순서대로 다음을 시도합니다.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_ANY
0x00000007
순서대로 다음을 시도합니다.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_HEX_ANY
0x00000008
순서대로 다음을 시도합니다.
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII
CRYPT_STRING_BASE64X509CRLHEADER
0x00000009
'-----BEGIN ...-----'과 '-----엔드 ...-----' 형식의 줄 사이에 있는 Base64입니다. 아래의 설명을 참조하세요.
CRYPT_STRING_HEXADDR
0x0000000a
16진수이며 주소가 표시됩니다.
CRYPT_STRING_HEXASCIIADDR
0x0000000b
ASCII 문자 및 주소 표시가 있는 16진수입니다.
CRYPT_STRING_HEXRAW
0x0000000c
원시 16진수 문자열입니다.

Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

CRYPT_STRING_STRICT
0x20000000
Base64 데이터에 대해 이 플래그를 설정하여 이진 데이터의 끝에 공백만 포함하며 최대 3개는 "=" 기호와 같도록 지정합니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

[in] pbBinary

반환된 바이트 시퀀스를 수신하는 버퍼에 대한 포인터입니다. 이 매개 변수가 NULL인 경우 함수는 필요한 버퍼의 길이를 계산하고 pcbBinary가 가리키는 DWORD에 필요한 메모리의 크기(바이트)를 반환합니다.

[in, out] pcbBinary

항목에서 pbBinary 버퍼의 크기(바이트)를 포함하는 DWORD 변수에 대한 포인터입니다. 함수가 반환된 후 이 변수에는 버퍼에 복사된 바이트 수가 포함됩니다. 이 값이 모든 데이터를 포함할 만큼 크지 않으면 함수가 실패하고 GetLastErrorERROR_MORE_DATA 반환합니다.

pbBinaryNULL이면 pcbBinary가 가리키는 DWORD는 무시됩니다.

[out] pdwSkip

헤더의 시작 부분에 도달하기 위해 건너뛴 문자 수를 수신하는 DWORD 값에 대한 포인터입니다 -----BEGIN ...----- . 헤더가 없으면 DWORD 가 0으로 설정됩니다. 이 매개 변수는 선택 사항이며 필요하지 않은 경우 NULL 일 수 있습니다.

[out] pdwFlags

변환에 실제로 사용되는 플래그를 수신하는 DWORD 값에 대한 포인터입니다. dwFlags 매개 변수에 사용되는 것과 동일한 플래그입니다. 대부분의 경우 dwFlags 매개 변수에 전달된 것과 동일한 플래그가 됩니다. dwFlags에 다음 플래그 중 하나가 포함된 경우 이 값은 문자열의 실제 형식을 나타내는 플래그를 받습니다. 이 매개 변수는 선택 사항이며 필요하지 않은 경우 NULL 일 수 있습니다.

의미
CRYPT_STRING_ANY
이 변수는 다음 값 중 하나를 받습니다. 각 값은 문자열의 실제 형식을 나타냅니다.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_BASE64_ANY
이 변수는 다음 값 중 하나를 받습니다. 각 값은 문자열의 실제 형식을 나타냅니다.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_HEX_ANY
이 변수는 다음 값 중 하나를 받습니다. 각 값은 문자열의 실제 형식을 나타냅니다.
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII

반환 값

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

함수가 실패하면 반환 값은 0(FALSE)입니다.

설명

CRYPT_STRING_BASE64HEADER, CRYPT_STRING_BASE64REQUESTHEADERCRYPT_STRING_BASE64X509CRLHEADER 플래그는 모두 이 함수에 의해 동일하게 처리됩니다. 이 함수는 양식 -----BEGIN ...----- 의 줄 간에 -----END ...-----base64로 인코딩된 데이터의 첫 번째 블록을 구문 분석하려고 시도합니다. 부분은 ... 무시되며 일치하지 않아도 됩니다. 구문 분석이 성공하면 dwFlags 매개 변수에 전달된 값이 pdwFlags 매개 변수가 가리키는 DWORD에 반환됩니다. CRYPT_STRING_BASE64REQUESTHEADER 또는 CRYPT_STRING_BASE64X509CRLHEADER 값이 요청 헤더 또는 X.509 CRL(인증서 해지 목록)을 찾은 것을 의미하지는 않습니다.

참고

wincrypt.h 헤더는 CRYptStringToBinary를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

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

추가 정보

CryptBinaryToString