Функция 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 . Если этот параметр равен нулю, pszString считается строкой, завершающейся нулевым значением.
[in] dwFlags
Указывает формат преобразуемой строки. Это может быть одно из следующих значений.
Значение | Значение |
---|---|
|
Base64 между строками формы "-----BEGIN ...-----" и "-----END ...-----". См. примечания ниже. |
|
Base64, без заголовков. |
|
Чистое двоичное копирование. |
|
Base64 между строками формы "-----BEGIN ...-----" и "-----END ...-----". См. примечания ниже. |
|
Только шестнадцатеричный формат. |
|
Шестнадцатеричный формат с отображением символов ASCII . |
|
Пытается выполнить следующие действия по порядку:
|
|
Пытается выполнить следующие действия по порядку:
|
|
Пытается выполнить следующие действия по порядку:
|
|
Base64 между строками формы "-----BEGIN ...-----" и "-----END ...-----". См. примечания ниже. |
|
Шестнадцатеричный, с отображением адреса. |
|
Шестнадцатеричный код с символом и адресом ASCII. |
|
Необработанная шестнадцатеричная строка.
Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Установите этот флаг для данных Base64, чтобы указать, что конец двоичных данных содержит только пробелы и не более трех равно знаку "=".
Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается. |
[in] pbBinary
Указатель на буфер, который получает возвращаемую последовательность байтов. Если этот параметр имеет значение NULL, функция вычисляет необходимую длину буфера и возвращает размер необходимой памяти в байтах в DWORD , на который указывает pcbBinary.
[in, out] pcbBinary
Указатель на переменную DWORD , которая при входе содержит размер буфера pbBinary в байтах. После возврата функции эта переменная содержит количество байтов, скопированных в буфер. Если это значение недостаточно велико, чтобы содержать все данные, функция завершается ошибкой и GetLastError возвращает ERROR_MORE_DATA.
Если pbBinary имеет значение NULL, параметр DWORD , на который указывает pcbBinary , игнорируется.
[out] pdwSkip
Указатель на значение DWORD , которое получает количество пропущенных символов для достижения начала заголовка -----BEGIN ...-----
.
Если заголовок отсутствует, параметрУ DWORD присваивается нулевое значение.
Этот параметр является необязательным и может иметь значение NULL , если он не требуется.
[out] pdwFlags
Указатель на значение DWORD , которое получает флаги, фактически используемые при преобразовании. Это те же флаги, которые используются для параметра dwFlags . Во многих случаях это будут те же флаги, которые были переданы в параметре dwFlags . Если dwFlags содержит один из следующих флагов, это значение получит флаг, указывающий фактический формат строки. Этот параметр является необязательным и может иметь значение NULL , если он не требуется.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение не равно нулю (TRUE).
Если функция завершается ошибкой, возвращаемое значение равно нулю (FALSE).
Комментарии
Флаги CRYPT_STRING_BASE64HEADER, CRYPT_STRING_BASE64REQUESTHEADER и CRYPT_STRING_BASE64X509CRLHEADER обрабатываются этой функцией одинаково: они пытаются проанализировать первый блок данных в кодировке Base64 между строками формы -----BEGIN ...-----
и -----END ...-----
.
Части ...
игнорируются, и они не должны совпадать.
Если синтаксический анализ выполнен успешно, значение, переданное в параметре dwFlags , возвращается в параметре DWORD , на который указывает параметр pdwFlags .
Обратите внимание, что значение CRYPT_STRING_BASE64REQUESTHEADER или CRYPT_STRING_BASE64X509CRLHEADER не означает, что был найден заголовок запроса или список отзыва сертификатовX.509 (CRL).
Примечание
Заголовок wincrypt.h определяет CryptStringToBinary в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |