Профиль "SASLprep" реализации "stringprep" в C++
Я реализую 256-битное шифрование AES в PDF, и в справочном руководстве PDF говорится о первом шаге алгоритма 3.2a для вычисления ключа шифрования.
1. Строка пароля генерируется из ввода Unicode путем обработки входной строки с помощью профиля SASLprep (IETF RFC 4013) stringprep (IETF RFC 3454), а затем преобразования в представление UTF-8.
Мой вопрос, как преобразовать строку в строку подготовки? Есть ли бесплатная библиотека для Windows для выполнения профиля SASLprep подготовки строки, я нашел библиотеку для Unix, но не для Windows.
0 ответов
Посмотрите https://www.gnu.org/software/libidn. Он указывает, что существует решение для Windows (визуальная студия). Это оказалось неверным для всех версий 2.x, но в 1.17 есть каталог win32 с нужными вещами для Visual Studio C++. Вам нужно установить некоторые определения, по крайней мере, LIBIDN_BUILDING и LIBIDN_STATIC для, как вы уже догадались, статической библиотеки, а не dll. Я получил все версии для компиляции (и ссылки, если применимо) с очень небольшим количеством предупреждений (только некоторое вычитание указателя -> long), используя VS2019. SASL(подготовительный) включен. При желании вы можете проверить, можно ли сделать новые версии, заменив исходные файлы более новыми. Сообщите нам, если вы это сделаете.