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

c - 尝试使用 libtomcrypt 库时出现 Contiki 微粒类型创建错误(rsa 公钥生成)

我正在尝试使用 libtomcrypt 库为我的学校项目生成 RSA 公钥。但我无法使用 Contiki OS 在 Cooja 中加载库。

我试图将我需要的文件编译成目标文件并将其加载到.csc文件中。

这是我收到的错误消息:

这是我尝试使用的代码,用于将目标文件 (rsa_get_size.o) 添加到moteCooja 模拟脚本的部分中。

这是我尝试实现 RSA 公钥生成的代码:

0 投票
0 回答
1105 浏览

c - 如何编译/运行 C 代码以调用基于 libtomcrypt AES 2KB 查找表的实现

在 Libtomcrypt 加密库中,AES 加密/解密以两种不同的方式实现。

  1. 使用大小为 8KB(加密)/5KB(解密)的查找表。
  2. 使用大小为 2KB(加密)/2KB(解密)的查找表。在这种情况下LTC_SMALL_CODE是真的。

这是和的源aes_tab.c代码aes.c

以下 C 代码使用 libtomcrypt 加密库执行 AES 加密和解密。但是,代码调用了使用 8KB/5KB 查找表的 AES 实现(意味着LTC_SMALL_CODE条件变为false)。

编译并运行如下,

我的问题是:

  • 如何修改此 C 代码以使其调用#ifdef LTC_SMALL_CODE条件部分(表示调用了基于 2KB 查找表的实现代码)?

  • LTC_SMALL_CODE如何在条件下运行上述代码true

aes_setup在调用 SETUP( ) 函数之前我需要一些参数吗?或者我需要在编译/运行时传递一些参数吗?

如果有人可以提供一些链接或示例代码,那就太好了。

我正在使用 Ubuntu 16.04 / Debian 8. gcc v-4.9。

0 投票
0 回答
534 浏览

c++ - C++ 调用 libtomcrypt ecc 签名并使用 OpenSSL 创建的数据进行验证

我正在寻找使用 OpenSSL 命令行创建的输入调用 libtomcrypt ecc 签名和验证代码的示例。我使用 prime256v1 曲线创建了私钥和公钥,为文本文件创建了签名并使用命令行对其进行了验证。我已将这些密钥和签名提取到我的 C++ 测试驱动程序中,并使用 libtomcrypt 方法导入它们。我使用 openssl 命令行创建了文本文件的哈希并将其放入我的测试驱动程序中,但是当我调用 libtomcrypt ecc_verify_hash 方法时,它无法验证。此时我已经验证了密钥和签名是否正确导入,所以我不确定我做错了什么。

这是我的测试驱动程序的代码。对此的任何帮助将不胜感激。

0 投票
1 回答
87 浏览

c - 进入函数范围但不在函数调用时指针参数为 NULL

我正在研究 stm32f469 做一些裸机代码以尝试使用 libtomcrypt / libtomfastmath 库。我正在尝试调试的代码已经过 valgrind 的检查,并且可以在许多平台上运行,例如 macos、raspberrypi、ios、android。

为了简单起见,我正在执行以下操作,即int register_hash(const struct ltc_hash_descriptor *hash)使用 const 静态变量调用此函数,方法是为其提供地址:register_hash(&sha256_desc)。问题是,一旦我在函数内部,hash指针就是NULL,我不知道为什么。

我在想这将是一个堆栈溢出,所以我用常量值预先填充了堆栈,0xdeadbeef并检查了所有这些值是否都被擦除,结果是堆栈没有溢出。

调试时,我可以验证返回的地址的值,&sha256_desc并且内存也没有损坏。

我没有进行可能溢出和破坏内存的动态分配或缓冲区填充。

我正在使用arm-none-eabi-gcc7-2017-q4-major 版本进行编译。

我主要是在寻找一些可能的问题来源,因为我已经没有想法了。

0 投票
0 回答
210 浏览

c - 如何将 LibTomCrypt 与 Contiki 一起使用

我正在尝试将 LibTomCrypt 库与 Contiki OS 一起使用,但它根本不起作用。我收到错误:致命:不是有效的对象名称 HEAD。我已使用以下代码在我的客户端文件中计算哈希。

然后我在 send_packet() 中调用它。我已经添加了头文件

现在在 Makefile 中,我不确定如何添加路径。我检查了一些可能的方法,例如,尝试使用 libtomcrypt 库(rsa 公钥生成)时出现 Contiki mote 类型创建错误,并且我添加了以下几行:

(这里libtomcrypt-develop是包含LibTomCrypt库的文件夹的名称)根据我的理解,我猜Makefile有问题。有人可以找出Makefile中的问题吗?

0 投票
1 回答
729 浏览

encryption - 如何使用 LibTom 进行 AES GCM 加密/解密

LibTom 是一个伟大的综合库,用于 C/C++ 中的加密和数学运算。

https://www.libtom.net/LibTomCrypt/

文档是从编写库的开发人员的角度编写的,因此有些示例不太清楚。

我花了一些时间弄清楚如何使用这个库执行 AES 加密和解密,并认为我会在这里分享我的解决方案:

0 投票
1 回答
407 浏览

c - libtomcrypt 的 RSA 签名验证失败

我在一个项目中使用 libtomcrypt,特别是使用 RSA 散列和签名一些数据。由于内存要求,我想切换到 mbedtls。但是,在尝试使用 mbedtls 验证 libtomcrypt 生成的签名时,我注意到了一个问题。存在填充 (PKCS#1 PSS) 解码问题。

因为我不知道这些库中的哪个(可能)有错误,所以我使用 openssl 来验证。

我使用 openssl 成功验证了使用 mbedtls 生成的签名,并且在验证生成的形式 libtomcrypt 时验证失败,这让我认为 libtomcrypt 有错误。

但是,因为这可能是一个配置问题,所以我创建了一个带有最少示例的存储库,希望有人可以检测到来自我而不是库本身的问题。

测试仓库在这里

感谢您收到的任何帮助!

0 投票
1 回答
64 浏览

c - 如何在 aes 中存储对称密钥

我正在使用 libtomcrypt 编写简单的 aes 解码器/编码器。我需要讲述编码中使用的对称密钥,以便稍后解码数据。问题是我从“存储”结构访问的键的值与编码器中使用的键相比发生了变化。

我尝试将键值分配给全局 symmetric_key 数组 elem 的元素,但该值仍然与原始值不同

我希望他们是一样的

0 投票
0 回答
30 浏览

hash - c ++ libtomcrypt库输出较短的散列/截断的散列

我正在尝试生成要在区块链项目中使用的哈希值,在寻找加密库时,我偶然发现了整个 tomcrypt 并选择下载它,因为它很容易安装,但是现在我在创建哈希值时遇到了问题(顺便说一句,我我使用 SHA3_512 但该错误存在于所有其他 SHA 散列算法中)有时它输出正确的散列但被截断

照片示例 哈希截断示例

这是散列函数的代码

这是 toHex 函数的代码,即使我已经检查过并且在调用此函数之前会弹出截断哈希问题

如果有人知道这个图书馆或一般关于这个问题和可能的修复请向我解释,我从 3 天起就被困住了

更新 我发现程序在遇到 2 个十六进制连续零时会截断哈希,所以二进制中有 8 个零(或只是 2 个字节),但我仍然不明白为什么,如果你这样做,请让我和希望其他人使用同样的问题知道