Sodium一个易于使用的可为我们提供加密、解密、签名,密码哈希等功能的软件库。除了自身强大的功能外,它还为我们提供了一个兼容API和一个外部API,以进一步的帮助我们提高其可用性。Sodium的目标是提供构建更高级别加密工具所需的所有核心操作。
Sodium支持跨平台和跨语言, 你可以在各种编译器和操作系统上运行它,包括Windows(使用MinGW或Visual Studio,x86和x86_64),iOS和Android。Javascript和WebAssembly版本也可用并受到完全的支持。
值得一提的是,虽然Sodium的设计着重高安全和易用性,但其整体速度与大多数实现相比更快。
libsodium 下载
Github【https://github.com/jedisct1/libsodium】
Tarballs 和 预编译二进制文件【https://download.libsodium.org/libsodium/releases/】
在线文档 【https://doc.libsodium.org/】
离线文档
该文档可下载保存为ePUB文件格式(适用于iPad,iPhone,Mac),MOBI(适用于Kindle)以及PDF:https://www.gitbook.com/book/jedisct1/libsodium/details
安装
在类Unix系统上编译安装
Sodium是一个共享库具有独立于机器的标头集,因此可以轻松地被第三方项目所使用。
该库使用autotools构建,因此非常易于打包。
安装也很简单,编译和测试都可利用多个CPU内核。
首先我们下载libsodium【https://download.libsodium.org/libsodium/releases/】,然后执行以下命令:
由于不同的文件被编译用于不同的CPU类,并且为了防止不必要的优化,因此建议尽量避免链接时优化(LTO)。
在Linux上,如果进程在make check步骤中挂起,则系统PRG可能没有正确播种。有关解决此问题的方法,请参阅“使用”部分中的说明。
在Windows系统上编译安装
通常不需要在Windows上进行编译,因为MinGW和Visual Studio的预构建库是可用的(参见下文)。
但是,如果你想自己编译,先从Git存储库克隆稳定分支【https://github.com/jedisct1/libsodium/archive/stable.zip】。
然后可以在builds/msvc目录中找到Visual Studio的解决方案。
要使用mingw进行编译,请在win32或x64目标上运行/dist build/msys2-win32.sh或/dist build/msys2-win64.sh脚本。
预构建库
提供了可用于Visual Studio 2010,2012,2013,2015和2017的预构建x86和x86_64库【https://download.libsodium.org/libsodium/releases/】,以及MinGW32和MinGW64的预构建库。包括头文件,以及所有受支持编译器版本的静态(.LIB)和共享(.DLL)库。
Visual Studio注意事项:
静态链接Sodium的项目必须定义一个名为SODIUM_STATIC的宏,这将防止符号定义被__dllexport引用。
交叉编译
支持交叉编译。以下是使用ARM嵌入式处理器的GNU工具交叉编译到ARM的示例
make check也可以构建测试应用程序,但必须在本地平台上运行。
注意:–specs=nosys.specs仅用于ARM编译工具链。
使用CompCert编译
最新发布版可使用CompCert编译器进行编译。编译命令如下:
稳定分支
这里我们建议大家使用tarball来克隆libsodium git存储库,因为tarball不需要libtool和autotools等依赖项,其次就是使用稳定分支下的版本。
获取稳定分支中的最新版:
使用入门
请参阅快速开始【https://libsodium.gitbook.io/doc/quickstart】和使用【https://libsodium.gitbook.io/doc/usage】部分。
完整性检查
可以使用Minisign【https://jedisct1.github.io/minisign/】和以下Ed25519密钥验证分发文件:
或使用GnuPG和以下RSA密钥:
漏洞报告
我们鼓励用户和研究人员使用PGP加密的电子邮件向我们发送报告有关Sodium库中可能存在的漏洞详情。
*参考来源:
https://libsodium.gitbook.io/doc/
FB小编secist编译,转载请注明来自FreeBuf.COM
领取专属 10元无门槛券
私享最新 技术干货