问题标签 [libtomcrypt]

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 投票
2 回答
11505 浏览

c - OpenSSL RSA 签名验证:哈希和填充?

我正在尝试编写代码来验证一些 RSA 签名。签名是使用 OpenSSL 命令行工具生成的,使用此命令行的等效项:

我正在尝试使用libtomcrypt来进行验证:

https://www.libtom.net/

这是 RSA 验证函数的调用签名libtomcrypt

如果该函数运行没有错误,则返回 0,否则返回错误代码。如果运行无误,则stat输出参数指示签名是否经过验证。

大多数参数看起来很简单:传入要检查的签名、用于比较它的哈希值以及用于检查的 RSA 密钥。 hash_idx从附带的示例代码中可以清楚地看出libtomcrypt;它是支持的哈希算法表的索引,我可以找到与此代码片段一起使用的正确值:hash_idx = find_hash("sha1")

但我想知道paddingandsaltlen值。 padding不用太担心,因为只有两个可能的值,我可以同时尝试它们。但是我应该通过saltlen什么?

用于 RSA 验证的 OpenSSL 函数的 OpenSSL 文档不显示saltlen参数。openssl dgst(即 的结果)的手册页man dgst没有讨论盐。

所以我的问题:

  • 如何确定要使用的正确盐长度?
  • OpenSSL 的dgst命令是否在输入中插入任何额外的内容,例如:(stdin)=

(我(stdin)=通过搜索 StackOverflow 找到了那个东西:Why are the RSA-SHA256 signatures I generate with OpenSSL and Java different?

  • libtomcrypt还有一个名为pkcs_1_pss_decode()“解码 PSS 编码签名块”的函数。有没有可能这是我需要调用的函数?

感谢你给与我的帮助。

编辑:感谢以下来自@Jonathan Ben-Avraham 的帮助,我今天能够完成这项工作。我的问题的答案分别是:

  • 使用长度 0 作为盐,完全没有盐。
  • 不,OpenSSL 没有插入任何额外的东西,例如(stdin)=
  • 我需要调用rsa_verify_hash_ex(),并且需要将padding参数指定为LTC_LTC_PKCS_1_V1_5
0 投票
1 回答
970 浏览

c - libtomcrypt 使用基准测试

我想通过创建类似基准的文件来比较 Windows 和 Ubuntu 中 libtomcrypt 的 AES 算法性能,但在编码时出现错误。请帮我。以下是我的比较文件:

比较.c:

但是当我编译它时,它显示运行时错误为:

我哪里做错了?

0 投票
1 回答
173 浏览

performance - 激活通道时 LLVM 变慢

我使用 LLVM 编译 libtomcrypt,它非常快(几秒钟),但是当我使用空白通道(只是一个什么都不做的模块通道)时,它非常慢(几分钟)。

有人知道为什么吗?

我使用 Fedora 19。

我使用的 LLVM 是发布版本中的 LLVM 3.4。

谢谢

0 投票
1 回答
749 浏览

linux - 构建 Google Chrome NaCl 应用程序 .nexe 文件时找不到有效的库

问题 - 无法在 64 位机器上使用libtomcrypt( -ltomcrypt)构建 .nexe

“跳过不兼容”或“未找到”。

生成文件

下载的 nacl sdk 中现有示例的副本。修改为tomcrypt哪个结果-ltomcrypt标志。

是)我有的

  • Linux 3.13.0-32-generic #57-Ubuntu SMP 2014 年 7 月 15 日星期二 03:51:08 UTC x86_64 x86_64 x86_64 GNU/Linux
  • my_module.cc- nacl 模块代码(不再有 .cc 文件)
    • #include <tomcrypt.h>
  • Makefile(多于)
  • ~/nacl/pepper_35/
  • ~/nacl/naclports

我尝试libtocrypt使用 naclports 重新安装,但没有任何进展。据我了解,我的tomcryptlib 构建为 32 位,但我不知道如何将编译器指向 64 位。

如果 Makefile 没有tomcrypt标志,则没有错误。

我不是 Makefile 或 C++ 专业人士,但我正在慢慢挖掘,所以最好在这个主题上为我提供指导:D

0 投票
1 回答
404 浏览

linux - 无法使用 libtomcrypt 构建 .nexe 文件。编译错误

我正在尝试nexe使用 nacplorts lib 编译文件libtomcrypt。构建 nexe 它返回一堆“未定义”的错误。我试过用不同的标志建造,但没有。也许有人可以指出我做错了什么或者我在当前设置中缺少什么。

  • Linux 3.13.0-32-generic #57-Ubuntu SMP 2014 年 7 月 15 日星期二 03:51:08 UTC x86_64 x86_64 x86_64 GNU/Linux
  • ~/nacl/pepper_35/
  • ~/nacl/naclports

结果。错误。

生成文件

我的项目

代码仅包含一行,会触发所有错误。也许我没有添加更多内容。我是 tomcrypt 的新手,对 C 代码不是很好,但愿意学习。如果这段代码不应该编译,你能给我举个简单的“最少行”代码的例子吗?它使用 tomcrypt 但不做任何复杂的事情?确保我可以走得更远。

0 投票
2 回答
5303 浏览

php - php-osx 未在 Yosemite 上加载 mcrypt.so

试图运行php --version这就是我得到的

PHP 警告:
PHP 启动:无法加载动态库'/usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/mcrypt.so' - dlopen(/usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/mcrypt.so, 9):

库未加载:/usr/local/lib/libltdl.7.dylib

引用自: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/mcrypt.so 原因:第 0 行 Unknown 中未找到图像

0 投票
1 回答
112 浏览

c - Computing websocket Sec-WebSocket-Accept value using libtomcrypt

RFC6455 specifies a method of computing the Sec-WebSocket-Accept response header from the value of the Sec-WebSocket-Key header. This method is based on SHA-1 hashing and Base64-encoding the result.

How can I implement this method in plain C using libtomcrypt for SHA-1 and Base64?

Note: This question intentionally does not show any effort because I immediately answered it myself. See below for my effort.

0 投票
1 回答
762 浏览

encryption - 使用 tomcrypt 从 Modulus 和 Exponent 生成 RSA 私钥

我是密码学的新手。开始需要一点帮助。

我有服务器给出的 Modulus 字段和 Private Exponent 字段,我需要使用 Tomcrypt 库从中组合私钥。

我无法弄清楚来自 tomcrypt 的哪个 Api 会为我做这件事。如果有人可以让我知道 api 或执行它的步骤,那将是神圣的。

谢谢

0 投票
1 回答
2310 浏览

c - 如何使用 libtomcrypt 导入 RSA 公钥?

我正在尝试使用 libtomcrypt 进行 RSA-2048 位加密。我目前的目标是从文件中导入公钥。此文件是使用 OpenSSL 和以下命令生成的:

所以我相信我的公钥是 PKCS#1 填充和 OpenSSL 的 PEM 格式。

我相信我需要使用的函数是 rsa_import(),但它需要一个 in 缓冲区、一个长度并输出一个 rsa_key 指针。为了清楚起见,我相信我需要做的事情如下:

  1. 将 public.pem 的内容读入缓冲区
  2. 扔掉包含“开始公钥”等的页眉和页脚。
  3. 从 base64 解码数据。
  4. 将结果数据传递给 rsa_import。

它是否正确?任何为此目的使用 libtomcrypt 的人都可以对此发表评论吗?谢谢。

0 投票
0 回答
428 浏览

c - 在 contiki os 中运行 libtomcrypt 库时,在此函数中未初始化使用 struct

嗨,我一直在尝试在 contiki os 和 cooja 上使用 libtomcrypt 库

我将 rsa 所需的文件编译为像 rsa_get_size.c 一样工作的目标文件,并在尝试将其加载到模拟器网络中时添加到 csc 文件中。

但我一直收到下面的错误。抱歉,我对 contiki os 和 libtomcrypt 库还很陌生,在此先感谢您的帮助和指导。

我认为问题在于我在调用 rsa_get_size 方法之前没有初始化 prng_state* prng 和 rsa_key* 键。

但我不确定我应该怎么做,也找不到任何关于它们的文档或教程

下面的源代码是我累调用函数的地方