Функция 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 .
CRYPT_STRING_HEXADDR
0x0000000a
Шестнадцатеричное значение с отображаемым адресом.
CRYPT_STRING_HEXASCIIADDR
0x0000000b
Шестнадцатеричное значение с символом и адресом ASCII.
CRYPT_STRING_HEXRAW
0x0000000c
Необработанная шестнадцатеричная строка.

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

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
Используйте только символ канала строки (LF) (0x0A) для новой строки. По умолчанию для представления новой строки используется пара CR/LF (0x0D/0x0A).

[out, optional] pszString

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

[in, out] pcchString

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

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

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

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

Комментарии

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

Примечание

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

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header wincrypt.h
Библиотека Crypt32.lib
DLL Crypt32.dll

См. также раздел

CryptStringToBinary