Sodium – это новая, простая в использовании библиотека программного обеспечения для шифрования, дешифрования, подписей, хэширования паролей и многое другое.
Это переносимый, устанавливаемый, упакованный форк NaCl, с совместимым API и расширенный API для улучшения удобства использования еще больше.
Его цель – предоставить все основные операции, необходимые для создания криптографических инструментов более высокого уровня.
Sodium поддерживает множество компиляторов и операционных систем, включая Windows (с MingW или Visual Studio, x86 и x64), iOS, Android, а также Javascript и Webassembly.
Установка библиотеки программного обеспечения libsodium для шифрования
Sodium – это общая библиотека с независимым от машины набором заголовков, поэтому ее можно легко использовать сторонними проектами.
Библиотека построена с использованием autotools, что упрощает ее упаковку.
Установка тривиальна, и как компиляция, так и тестирование могут использовать преимущества нескольких процессорных ядер.
Загрузите tarball of libsodium, желательно последнюю стабильную версию, затем следуйте инструкции:
# ./configure # make && make check # sudo make install
Поскольку разные файлы скомпилированы для разных классов ЦП и для предотвращения нежелательных оптимизаций рекомендуется избегать оптимизации времени соединения (LTO).
В Linux, если процесс зависает на шаге проверки, ваша система PRG может быть неправильно выбрана.
Пожалуйста, ознакомьтесь с примечаниями в разделе «usagе», чтобы узнать, как это можно сделать.
Использование библиотеки шифрования libsodium
Проект с использованием libsodium должен включать заголовок Sodium.h. В
ключение отдельных заголовков не требуется и не рекомендуется.
Затем функцию sodium_init () следует вызывать перед любой другой функцией.
Безопасно называть sodium_инит () несколько раз или из разных потоков; он немедленно вернет 1, ничего не сделав, если библиотека уже была инициализирована.
#include <sodium.h> int main(void) { if (sodium_init() < 0) { /* panic! the library couldn't be initialized, it is not safe to use */ } return 0; }