Поделиться через


Функция CryptBinaryToStringA (wincrypt.h)

Функция CryptBinaryToString преобразует массив байтов в форматированную строку.

Синтаксис

BOOL CryptBinaryToStringA(
  [in]            const BYTE *pbBinary,
  [in]            DWORD      cbBinary,
  [in]            DWORD      dwFlags,
  [out, optional] LPSTR      pszString,
  [in, out]       DWORD      *pcchString
);

Параметры

[in] pbBinary

Указатель на массив байтов, который необходимо преобразовать в строку.

[in] cbBinary

Количество элементов в массиве pbBinary.

[in] dwFlags

Задает формат результирующей отформатируемой строки. Этот параметр может быть одним из следующих значений.

Ценность Значение
CRYPT_STRING_BASE64HEADER
0x00000000
Base64 с начальными и конечными заголовками сертификатов.
CRYPT_STRING_BASE64
0x00000001
Base64 без заголовков.
CRYPT_STRING_BINARY
0x00000002
Чистая двоичная копия.
CRYPT_STRING_BASE64REQUESTHEADER
0x00000003
Base64 с начальными и конечными заголовками запроса.
CRYPT_STRING_HEX
0x00000004
Шестнадцатеричное только.
CRYPT_STRING_HEXASCII
0x00000005
Шестнадцатеричное отображение символов с ASCII символов.
CRYPT_STRING_BASE64X509CRLHEADER
0x00000009
Base64 с X.509 CRL, начинающимися и конечными заголовками.
CRYPT_STRING_HEXADDR
0x0000000a
Шестнадцатеричное отображение адреса.
CRYPT_STRING_HEXASCIIADDR
0x0000000b
Шестнадцатеричное отображение символов и адресов ASCII.
CRYPT_STRING_HEXRAW
0x0000000c
Необработанная шестнадцатеричная строка.

Windows Server 2003 и Windows XP: это значение не поддерживается.

CRYPT_STRING_BASE64URI
0x0000000d
Base64 без заголовков с "+" заменен "-" и "/", замененными "_", как определено в разделе RFC 4648.
CRYPT_STRING_STRICT
0x20000000
Применение строгого декодирования текстовых форматов ASN.1. Некоторые двоичные BLOB-объекты ASN.1 могут иметь первые несколько байтов большого двоичного объекта неправильно интерпретируется как текст Base64. В этом случае остальная часть текста игнорируется. Используйте этот флаг для принудительного декодирования БОЛЬШОго двоичного объекта.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.

 

Помимо приведенных выше значений, можно указать одно или несколько следующих значений, чтобы изменить поведение функции.

Ценность Значение
CRYPT_STRING_NOCRLF
0x40000000
Не добавляйте новые символы строки в закодированную строку. По умолчанию для представления новой строки используется пара возврата или строки каретки (CR/LF) (0x0D/0x0A).

Windows Server 2003 и Windows XP: это значение не поддерживается.

CRYPT_STRING_NOCR
0x80000000
Для новой строки используется только символ канала строки (0x0A). Поведение по умолчанию — использовать пару CR/LF (0x0D/0x0A) для представления новой строки.

[out, optional] pszString

Указатель на буфер, получающий преобразованную строку. Чтобы вычислить количество символов, которые необходимо выделить для хранения возвращаемой строки, задайте для этого параметра значение NULL. Функция будет размещать требуемое количество символов, включая завершающийся символ NULL, в значении, на которое указывает pcchString.

[in, out] pcchString

Указатель на переменную DWORD DWORD, содержащую размер TCHARбуфера pszString. Если pszStringNULL, функция вычисляет длину возвращаемой строки (включая конечный символ NULL) в TCHARи возвращает ее в этом параметре. Если pszString не значение NULL и достаточно большой, функция преобразует двоичные данные в указанный строковый формат, включая завершающий символ NULL, но pcchString получает длину в TCHAR, не включая завершающийся символ NULL.

Возвращаемое значение

Если функция выполнена успешно, функция возвращает ненулевое значение (TRUE).

Если функция завершается ошибкой, она возвращает ноль (FALSE).

Замечания

За исключением случаев, когда используется кодировка CRYPT_STRING_BINARY, все строки добавляются с новой последовательностью строк. По умолчанию новая последовательность строк — это пара CR/LF (0x0D/0x0A). Если параметр dwFlags содержит флаг CRYPT_STRING_NOCR, то новая последовательность строк является символом LF (0x0A). Если параметр dwFlags содержит флаг CRYPT_STRING_NOCRLF, новая последовательность строк не добавляется к строке.

Заметка

Заголовок wincrypt.h определяет CryptBinaryToString как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2003 [классические приложения | Приложения UWP]
целевая платформа Виндоус
заголовка wincrypt.h
библиотеки Crypt32.lib
DLL Crypt32.dll

См. также

CryptStringToBinary