Sodium:一个提供加密、解密、签名等功能的软件库

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

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20190110B0F6Z600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券