问题标签 [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.
c - OpenSSL RSA 签名验证:哈希和填充?
我正在尝试编写代码来验证一些 RSA 签名。签名是使用 OpenSSL 命令行工具生成的,使用此命令行的等效项:
我正在尝试使用libtomcrypt
来进行验证:
这是 RSA 验证函数的调用签名libtomcrypt
:
如果该函数运行没有错误,则返回 0,否则返回错误代码。如果运行无误,则stat
输出参数指示签名是否经过验证。
大多数参数看起来很简单:传入要检查的签名、用于比较它的哈希值以及用于检查的 RSA 密钥。 hash_idx
从附带的示例代码中可以清楚地看出libtomcrypt
;它是支持的哈希算法表的索引,我可以找到与此代码片段一起使用的正确值:hash_idx = find_hash("sha1")
但我想知道padding
andsaltlen
值。 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
。
c - libtomcrypt 使用基准测试
我想通过创建类似基准的文件来比较 Windows 和 Ubuntu 中 libtomcrypt 的 AES 算法性能,但在编码时出现错误。请帮我。以下是我的比较文件:
比较.c:
但是当我编译它时,它显示运行时错误为:
我哪里做错了?
performance - 激活通道时 LLVM 变慢
我使用 LLVM 编译 libtomcrypt,它非常快(几秒钟),但是当我使用空白通道(只是一个什么都不做的模块通道)时,它非常慢(几分钟)。
有人知道为什么吗?
我使用 Fedora 19。
我使用的 LLVM 是发布版本中的 LLVM 3.4。
谢谢
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 重新安装,但没有任何进展。据我了解,我的tomcrypt
lib 构建为 32 位,但我不知道如何将编译器指向 64 位。
如果 Makefile 没有tomcrypt
标志,则没有错误。
我不是 Makefile 或 C++ 专业人士,但我正在慢慢挖掘,所以最好在这个主题上为我提供指导:D
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 但不做任何复杂的事情?确保我可以走得更远。
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 中未找到图像
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.
encryption - 使用 tomcrypt 从 Modulus 和 Exponent 生成 RSA 私钥
我是密码学的新手。开始需要一点帮助。
我有服务器给出的 Modulus 字段和 Private Exponent 字段,我需要使用 Tomcrypt 库从中组合私钥。
我无法弄清楚来自 tomcrypt 的哪个 Api 会为我做这件事。如果有人可以让我知道 api 或执行它的步骤,那将是神圣的。
谢谢
c - 如何使用 libtomcrypt 导入 RSA 公钥?
我正在尝试使用 libtomcrypt 进行 RSA-2048 位加密。我目前的目标是从文件中导入公钥。此文件是使用 OpenSSL 和以下命令生成的:
所以我相信我的公钥是 PKCS#1 填充和 OpenSSL 的 PEM 格式。
我相信我需要使用的函数是 rsa_import(),但它需要一个 in 缓冲区、一个长度并输出一个 rsa_key 指针。为了清楚起见,我相信我需要做的事情如下:
- 将 public.pem 的内容读入缓冲区
- 扔掉包含“开始公钥”等的页眉和页脚。
- 从 base64 解码数据。
- 将结果数据传递给 rsa_import。
它是否正确?任何为此目的使用 libtomcrypt 的人都可以对此发表评论吗?谢谢。
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* 键。
但我不确定我应该怎么做,也找不到任何关于它们的文档或教程
下面的源代码是我累调用函数的地方