问题标签 [libsodium]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2310 浏览

android - android上的libsodium集成

我正在尝试将libsodium库集成到 Android 项目中。我正在使用带有 gradle (0.9) 和 android 构建工具 (19.1) 的 Android Studio (0.5.8)。我用可以在库中找到的脚本编译了 libsodium。我为不同的架构(arm、arm-v7a、mips 和 x86)获得了四个 preBuild 库(.so 文件)。我把这些文件放在 jniLibs 文件夹中。我在我的 build.gradle 文件中声明我正在使用 NDK 并在 local.properties 文件上配置路径。

在这个版本的 gradle 中,不需要编写 makefile ( http://ph0b.com/android-studio-gradle-and-ndk-integration/ )

在进行静态调用后,我在我的活动中声明了一些本机函数:

Logcat 输出为:

我是否错过在另一个文件中声明某些内容?真的有必要 kalium-JNI 吗?这个库如何包含在项目中?

谢谢。

0 投票
2 回答
3933 浏览

encryption - 如何在非对称加密(libsodium)中使用随机数?

我正在编写一个应用程序,用户可以在其中通过端到端加密在设备之间进行通信。为此,我使用 libsodium 加密库。非对称加密函数 crypto_box(...) 需要一个随机数作为参数之一。

我对如何处理随机数有点困惑。发给一个人的每条消息都需要使用不同的随机数加密吗?这似乎不正确,因为我必须将使用过的随机数存储在具有公共访问权限的服务器上,攻击者可以再次使用其中一个使用过的随机数。

从 A 发送到 B 的所有消息都具有不同的 nonce 就足够了吗?

有人可以向我解释一下吗。

0 投票
1 回答
4260 浏览

android - 在 android studio 项目中使用 libsodium

我正在尝试在 android studio 项目中使用 libsodium 库。但是,我无法弄清楚如何做到这一点。我从 libsodium 网站下载了库,但不明白如何创建 android studio 项目所需的库文件。任何帮助将不胜感激。我想 kalium (https://github.com/abstractj/kalium)会帮助我做到这一点,但我对如何合并它也有点困惑。

0 投票
1 回答
3575 浏览

android - android eclipse jedisct1/libsodium 从哪里开始

我有一个需要执行 libsodium 加密的程序。我找到了这个库libsodium ,但我认为它需要与 NDK 一起使用。所以我开始阅读有关 NDK 的教程,但我仍然不知道从哪里开始使用这个库。如果有人能给出一个提示或非常有用的东西来给出如何集成这个库的想法,我会很高兴的。

谢谢

0 投票
1 回答
3803 浏览

windows - 使用 libsodium 构建 libzmq

从 ZMQ 版本 4.1 开始编辑:Configure 自动查找 libsodium,因此不再需要。如果由于某种原因您希望在没有 libsodium 的情况下构建它并且您已经构建并安装了它,请使用“--without-libsodium”配置 libzmq。


所以我在使用 libsodium 构建/制作 zeromq 时遇到问题。

我使用 msys2 作为外壳 - 特别是 mingw32_shell - 和带有 libsodium 1.0.1 和 mingw-w64 32bit (gcc 4.9.2) 的 zmq 4.1.0 rc1。

我目前能够像这样编译 libsodium

一切都很好,所有的测试都通过了,并且库和包含最终出现在 msys2 似乎知道的 /usr/local/ 文件夹中。

然后当我尝试使用这些命令构建 zeromq

我永远不会超过配置阶段,因为配置返回

我已经尝试过这篇文章中建议的方法——ZeroMQ 没有发现 libsodium——但没有成功。

因此我的问题是:我如何设置 zeromq 的配置位置以查找要发现的 libsodium,无论是使用 --with-libsodium、--with-libsodium-include-dir= 还是 --with-libsodium-lib- dir=,还是将它们“安装”在 msys2 的外壳能够找到的位置?

0 投票
1 回答
1053 浏览

python - 添加外部库(依赖项)并在我的 python 代码中正确引用它们

我试试下面的代码看看能不能找到库

这总是返回“无”

请问如何添加外部库(依赖项)并在我的python代码中正确引用它们。

编辑:

我正在尝试使用 pysodium 它依赖于 libsodium

我已经下载了 libsodium,但我是 python 新手...

我实际上是在使用 PTVS 2.1 来加快在我熟悉的开发环境中运行 python 的速度。

0 投票
1 回答
3114 浏览

java - 如何在 Windows 下将 NaCl 与 Java 一起使用

我最近找到了Libsodium库,很高兴还有Bindings for Java。不幸的是,这些库似乎不适用于 Windows,因为它们是为其他系统开发的。

如何在 Windows 下使用库(如果可能)?Java 是否有任何替代库?

0 投票
2 回答
6790 浏览

c# - 如何在 ASP.NET 上包含 libsodium.net

我在 ASP.NET(使用 .asmx)文件上构建了一个旧的 Web 服务。我需要使用 sodium.net - 不幸的是它在加载依赖的 libsodium.dll 文件时失败了。关于我做错了什么的任何想法?

  • 我通过 NuGet 添加了 libsodium.net。

  • 我已将 64 位 DLL 重命名为“libsodium.dll”(以及其他命名约定)。

  • 我试图直接引用 libsodium.dll 但 VS 拒绝它(不是有效的 DLL)。所以我将它添加为“内容”而不是“复制到输出”。

  • 构建完成后,我可以看到 website/Bin 文件夹包含 sodium.dll(.NET 程序集)和 libsodium.net。

  • 当我尝试使用 libsodium.net 时,我得到:

    错误 2015-02-02 11:14:27,118 13798ms [41] CabinetService doRequest - 捕获:“Sodium.SodiumCore”的类型初始化程序引发异常。System.TypeInitializationException:“Sodium.SodiumCore”的类型初始化程序引发了异常。---> System.DllNotFoundException:无法加载 DLL 'libsodium.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)在 DynamicDllInvokeType.sodium_init() 在 Sodium.SodiumCore..cctor() --- 内部异常堆栈跟踪结束 --- 在 Sodium.SecretBox.Create(Byte) 的 Sodium.SodiumCore.LibraryName() [] message, Byte[] nonce, Byte[] key) at Macaroons.SecretBoxCryptoAlgorithm.Encrypt(Byte[] key, Byte[] plainText) in c:\Projects\Macaroons.Net\Macaroons.Net\SecretBoxCryptoAlgorithm.cs:line 58

因此,即使它位于 Bin 文件夹中,它也找不到“libsodium.dll”。我也确实尝试删除对“sodium.net”的依赖,在我收到运行时错误说“sodium.net”丢失后 - 当我重新添加它时,该错误消失了,我得到了上面的错误(表示“sodium.net”正确加载)。

所以我在“C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\cabinetservice”中打开网站影子文件夹并搜索“sodium”。唯一的结果是某些子文件夹中的“sodium.dll”。没有“libsodium.dll”。

因此,显然 ASP.NET 在创建网站的卷影副本时忽略了“libsodium.dll”文件。

我还尝试将 libsodium.dll(32 位)添加到 C:\Windows\System32 并将 libsodium.dll(64 位)添加到 C:\Windows\SysWOW64。结果相同。

我已经尝试过 C:\Windows\Microsoft.NET\assembly\GAC_32\libsodium 和 C:\Windows\Microsoft.NET\assembly\GAC_64\libsodium。结果相同。

如何让 ASP.NET 了解依赖关系?

0 投票
1 回答
779 浏览

c++ - 使用 libsodium,randombytes 错误为 iOS 构建 zeromq

我正在使用这种方法为 iOS 构建 zeromq 库: https ://github.com/drewcrawford/libzmq-ios

构建日志看起来不错,除了一些出现 3 次的警告:

当我将构建的库添加到我的 XCode 项目时,它会产生 10 个错误:

我认为错误中列出的每个函数都使用警告中列出的随机字节。

当我从https://github.com/drewcrawford/libzmq-ios/releases添加库时也会发生同样的情况

我做错了什么?

0 投票
1 回答
2677 浏览

c++ - 使用 libsodium 构建一个简单的项目

我创建了一个使用 libsodium 的非常简单的 Qt 项目。(我可以创建一个相同的项目并使用 Visual Studio 2010/2013 构建良好。)但 Qt Creator 无法构建:

main.obj:-1:错误:LNK2019:函数 main 中引用的未解析的外部符号 sodium_init

这是我的项目:

testSodium.pro:

主.cpp:

谁能帮我?

(我使用的是 Qt Creator 3.3.1,Qt 5.4.1 MSVC 2010 32 位)
libsodium:https ://download.libsodium.org/libsodium/releases/libsodium-1.0.2-msvc.zip