다음을 통해 공유


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 데이터에 대해 이 플래그를 설정하여 이진 데이터의 끝에 공백만 포함하며 최대 세 개의 "=" 기호가 포함되도록 지정합니다.

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

[in] pbBinary

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

[in, out] pcbBinary

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

pbBinary NULL경우 pcbBinary 가리키는 DWORD 무시됩니다.

[out] pdwSkip

-----BEGIN ...----- 헤더의 시작 부분에 도달하기 위해 건너뛴 문자 수를 수신하는 DWORD 값에 대한 포인터입니다. 헤더가 없으면 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.509CRL(인증서 해지 목록)을 찾은 것은 아닙니다.

메모

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

요구 사항

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

참고 항목

CryptBinaryToString