问题标签 [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 投票
3 回答
1508 浏览

php - 在 WAMP 上使用 Libsodium 和 PHP

我在libsodium本地服务器(WAMP64)上安装时遇到了很大的麻烦。

我使用了本指南和许多其他指南,但仍然没有运气。

我成功安装了PEAR,但我不能用它来安装libsodium. 有人可以逐步发布一个小指南来帮助我吗?

错误:DSP libsodium.dsp 不存在。

我会很感激安装Halite,需要的帮助libsodium,因为也许这将是我的下一步。

谢谢大家。

0 投票
2 回答
367 浏览

public-key-encryption - 为什么发件人私钥用于加密?

我正在查看 libsodium-examples of public-key-cryptography ,似乎在加密明文时,除了接收者的公钥之外,还使用了发送者的私钥。

从相关示例中提取:

crypto_box_easy() 函数使用接收者的公钥 pk、发送者的密钥 sk 和随机数 n 加密长度为 mlen 字节的消息 m。

这有什么意义?我的理解是发件人的私钥仅在签署消息时使用?

0 投票
1 回答
170 浏览

serialization - 将氧化钠的 PublicKey 序列化为 JSON

我尝试将氧化钠的PublicKey结构(libsodium 的 Rust 绑定)序列化为一个文件(例如 JSON,但二进制也可以)。

这是我的代码:

我收到以下错误消息:

所以编译器告诉我PublicKey应该实现 serde::Serialize 特征。但它确实serde::Serialize按照此处所述实现:https ://dnaq.github.io/sodiumoxide/sodiumoxide/crypto/sign/ed25519/struct.PublicKey.html

那么,问题是什么?

编辑:

货物.toml:

0 投票
1 回答
1739 浏览

c# - 在生产 Azure Service Fabric 群集中找不到 libsodium-64.dll

在 Azure Service Fabric Reliable Service 中使用 libsodium-net 以获得所有安全优势,在我的本地开发集群上一切正常(尽管我确实必须设置 libsodium-64.dll 以复制到输出目录)。

不幸的是,当部署到 Azure 中的真实集群时,它会引发以下错误:

Unable to load DLL 'libsodium-64.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

我已经通过远程桌面检查到其中一个节点,并且 DLL 被复制到与服务相同的目录中,就像它在我的开发集群中一样。无法弄清楚为什么在生产中找不到它。

我已尝试按照此答案中的建议设置 PATH 环境变量,并验证它确实已设置 - 不幸的是,这无济于事。

为了让 ASF 获取 DLL,我需要做些什么特别的事情吗?

编辑:还尝试在所有节点上将DLL添加到System32,也没有解决。

0 投票
3 回答
123 浏览

ios - 仅集成期间的 Xcode Bot 位码错误

ld: '/Library/Developer/XcodeServer/Integrations/Caches/5c17d3e903f4d302cf453 40fb301f30f/Source/ocular/Pods/Sodium/Sodium/libsodium-ios.a(libsodium_la-crypto_box.o)' 不包含位码。您必须在启用位码的情况下重建它(Xcode 设置 ENABLE_BITCODE),从供应商处获取更新的库,或禁用此目标的位码。对于架构 armv7

/usr/local/bin/pod install在集成(触发器)之前运行。

屏幕截图 2016-08-03 在 3 18 14 pm

我能够在模拟器和真实设备中构建和运行应用程序。但是,我与机器人的集成失败并出现上述错误消息。我Sodium通过 cocoapods 安装。

我尝试设置ENBALE_BITCODE = NO项目/目标/Pods

服务器:5.1.7 Xcode:7.3.1

任何帮助表示赞赏。

0 投票
1 回答
1941 浏览

php - 安装了 Libsodium 和 pecl-libsodium 但 PHP 抛出错误

我需要在 Ubuntu (14.04) 服务器上的 PHP(5.5.9) 应用程序中加密密码和其他一些数据。我阅读了有关 libsodium 的信息,发现它非常适合应用程序的要求。我遵循了可用于 libsoidum的唯一教程中给出的所有说明。

  1. sudo add-apt-repository ppa:chris-lea/libsodium - 完成,没有错误
  2. sudo apt-get update && sudo apt-get install libsodium-dev - 完成,没有错误
  3. pecl install libsodium - 完成,没有错误
  4. 将 extension=libsodium.so 添加到 php.ini 并重新启动 apache。

当我检查 phpinfo() 页面时,我可以看到 libsodium 的条目,如下所示:

已启用 libsodium 支持

libsodium 编译版本 1.0.6

libsodium 头文件版本 1.0.3

libsodium 库版本 1.0.3

但是,当我尝试运行上述教程中给出的基本示例时:

我收到一条错误消息,提示“调用未定义的函数 Sodium\library_version_major()”。

这真的让我感到困惑,因为扩展名被 phpinfo() 页面正确识别。

任何人都可以帮助我了解我是否遗漏了什么或做错了我无法将 libsodium 与 php 一起使用。任何帮助是极大的赞赏。

谢谢你。

0 投票
2 回答
277 浏览

xcode - ./configure 未被识别为 cmdlet 的名称

我正在尝试在 github shell 中使用这个 github 代码,但是消息

./configure 未被识别为 cmdlet 的名称

如何解决这个问题?

0 投票
1 回答
112 浏览

php - 在 PHP 中为 Argon2 选择 MemoryLimit

Libsodium 建议在使用 Argon2 散列函数时选择“<em>保证可用”的最大内存量。我的问题是我们如何发现这一点?据我了解,由于我的网站是交互式的(即使用 MySQL、多个请求页面等),我可能会遇到各种情况,例如:

  1. 让多个用户大致同时访问同一个哈希函数页面,使系统过载并耗尽物理内存,
  2. 让用户访问其他页面,一旦只有一个用户尝试使用该功能,其内存使用量就会产生类似的“崩溃”,
  3. 两者的结合

显然,这种情况发生的概率相当低,更不用说有这么多用户同时使用服务器了。但是,如果我想要我能负担得起的最强哈希,我至少需要大致了解这一点。我总共只有 1GB 的 RAM。

是否可以在我的 PHP 脚本中进行任何内存检查以确保服务器不会崩溃?我没有什么可以做的吗?

(见:https ://download.libsodium.org/libsodium/content/password_hashing/the_argon2i_function.html )

0 投票
1 回答
1918 浏览

c - 如何将钠链接到我的 C 程序

我需要在我的 C 代码中实现 libsodium 库中的一些函数,这些代码是在 Visual Studio 中编译的。我下载了我需要的所有 libsodium 预编译二进制文件,并将它们放在正确的文件夹中。为了链接到 libsodium,我尝试按照https://download.libsodium.org/libsodium/content/usage/此处的说明进行操作,但编译器无法识别来自 libsodium 库的命令。我没有在 C 中链接库的经验。我应该在编译器选项或链接器选项中添加一些东西吗?我如何在视觉工作室中做到这一点?另外,在上面的链接中,提到我必须添加两个额外的定义 SODIUM_STATIC = 1 和 SODIUM_EXPORT = (这里,他们没有提到数字)。我应该在哪里定义这些值?

0 投票
1 回答
882 浏览

java - Java JNI 在 Linux 上加载 libc.so 时出现问题,尝试加载 ASCII /usr/lib64/libc.so 并发现它确实不是 ELF 文件

我正在开发一些使用 libsodium 进行加密的软件……<a href="https://github.com/joshjdevl/libsodium-jni" rel="nofollow">在 Java 中。它在 macOS 10.11/10.12 和 Ubuntu Server 16.04 上都运行良好。当我尝试在带有 Amazon Linux 的 Amazon EC2 实例上运行我的软件时(uname -a返回Linux ip-$IPADDR 4.4.19-29.55.amzn1.x86_64 #1 SMP Mon Aug 29 23:29:40 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux),我收到此错误:

原来libc.so是这台机器上的一个 ASCII 文件:

我尝试使用参数运行我的代码,-Djava.library.path=/lib64/:…:$NORMALLIBRARYPATH希望让加载程序尝试/lib64/libc.so.6,但它没有工作。

导致 libsodiumjni.so 被加载的代码部分是:

在我的项目中,目录结构包括 JNA 的 Native 类可以理解的路径中的库文件:

在云雀中,我删除了 ASCII libc.so 并将其替换为 /lib64/libc-2.17.so 的符号链接,并得到了一个稍微不同的错误:

我真的不确定该怎么做。我真的很想继续使用 libsodium(通过libsodium-jni),但我在这里碰壁了。可能必须切换到不同的库,因为多平台兼容性对于这个项目很重要。