问题标签 [libgcrypt]

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 回答
479 浏览

c - libgcrypt v1.5.0 的编译器警告

当我使用定义编译示例程序时GCRYPT_NO_DEPRECATED,我收到以下 6 个警告:

手动定义_GCRYPT_IN_LIBGCRYPT可以解决 6 个警告,但该手册的劝告相当严格:

带有一个前置下划线的名称前缀是为内部使用而保留的,绝不应该被应用程序使用。

那么应该如何在没有警告的情况下编译 gcrypt 标头呢?

0 投票
2 回答
557 浏览

c - C Libgcrypt:无法使用 libgcrypt 检查数字是否为素数

我正在使用 libgcrypt 函数gcry_prime_check来测试该数字3是否为质数。根据我的功能,事实证明 3 不是质数。我究竟做错了什么?

这是我的代码

这是输出

此外,一个关于使用 libgcrypt 的好教程的链接将是一个很大的好处。谢谢

编辑:

好吧,我设法使用生成一个质数gcry_prime_generate并将该值复制到number. 原来它没有通过主要检查。但是,当您直接将质数生成的 mpi 输出传递给质数检查功能时……它通过了!

0 投票
1 回答
715 浏览

c - 使用 libgcrypt 和 Elgamal 加密和解密时的数据丢失

我正在使用 Libgcrypt 和 Elgamal 来加密一个字节块,我遇到了 2 个问题:

  1. 当我不使用填充并且我的字节块以零字节开始时,我在解密期间丢失了第一个字节;

  2. 如果我使用填充,则加密效果很好,但是当我解密时,填充不会被删除。显然第一个零字节仍然存在。

使用 RSA 我遇到了同样的问题:(

我的测试代码在那里:www.tiago.eti.br/storage/post.c 它不使用填充。

要使用填充,您需要更改:

并更改加密算法更改:

要编译,您需要使用:

我能做些什么来解决它?

0 投票
1 回答
468 浏览

c - 使用 Libgcrypt 的程序中的内存泄漏

我正在使用 Libgcrypt 进行一些测试,当我使用 valgrind 检查内存使用情况时,退出时使用了 3,200 个字节。

我试过用

但是 valgrind valgrind 只抱怨我的代码中的这一行:

和 valgrind 关于 Libgcrypt 的内部功能。

我的测试代码在这里:http : //www.tiago.eti.br/storage/post2.c 我正在使用来自 Debian sid 存储库的 Libgcrypt 1.5.0

这是 Libgcrypt 的错误还是我做错了什么?

0 投票
2 回答
419 浏览

encryption - 压缩和加密...首先应用哪个?

我正在使用 C 语言进行远程备份项目...我想发送数据并压缩和加密数据。

但是我很困惑是先压缩还是先加密!

什么会更好?:

  1. 压缩数据然后加密
  2. 加密数据然后压缩

另外我将使用 zlib 进行压缩。而且我想知道要使用哪个加密库...有人说 libgcrypt 很好。好的加密库(非常易于使用)的建议将不胜感激...... :)

或者有什么可以同时完成这两项工作的吗?

谢谢!

0 投票
1 回答
1434 浏览

c - AES128/CBC 测试不工作

这是我的代码(为了代码的可读性,故意省略了错误检查):

预期结果:
KEY = 00000000000000000000000000000000
IV = 00000000000000000000000000000000 PLAINTEXT
= 80000000000000000000000000000000
密文= 3ad78e726c1ec02b7ebfe92b23d9ec34

我的结果:
KEY = 00000000000000000000000000000000
IV = 00000000000000000000000000000000 PLAINTEXT
= 80000000000000000000000000000000
密文= 42

,为什么我得到这个输出?我究竟做错了什么?

0 投票
2 回答
1282 浏览

c - c aes256 padding with pkcs#7 标准

加密:

解密:

我正在尝试从 pkcs#7 标准添加可移动填充,但我遇到了问题。
如果我使用 txt 文件,我的程序可以完美运行,但如果我尝试解密一些 tar.gz 或 pdf 文件,解密程序会在文件大小的一半处停止!
例如,让我们使用大小为 28272 字节的 tar.gz 存档(prova 是原始文件,out 是加密文件,origdec 是解密文件):

我在 gnu/linux 上使用 libgcrypt!

0 投票
1 回答
1942 浏览

linux - gnutls 配置错误:检查 libgcrypt... 否

我配置并编译了 libgpg-error 和 libgcrypt 但无法安装(make install),因为我没有 root 权限。
当我尝试配置 libgnutls 时,出现此错误。

config.log中,我发现这些错误:

有人可以帮忙吗?

0 投票
3 回答
1551 浏览

c - 使用 libgcrypt 从密码中加密文件

我正在开发对文件进行 aes256-cbc 加密的简单软件。我正在使用 GNU/Linux 和 libgcrypt-1.5.0。IV 是使用 OpenSSL rand 函数随机生成的,IV 存储在输出文件中的密文之前。我正在使用 PKCS#7 填充方法。

现在我怀疑如何进行:

  1. 最好使用sha256重复输入密码5万次加密文件,还是使用用户给的密码?

  2. 如果我想检查输入密码的正确性,我必须将它存储到加密文件中(显然是加密的)。这样做是否正确?

0 投票
2 回答
1915 浏览

c - 在 C 中使用 libgcrypt 导出密钥

我正在开发一个简单的软件来进行 aes256-cbc 文件加密。该软件是在 GNU/Linux 上使用 libgcrypt-1.5.0 开发的。

我想将上述函数与GCRY_KDF_PBKDF2asalgoSHA512as subalgo 一起使用。

此函数从 a 派生密钥passphrasekeysize以八位字节给出键的请求大小. keybuffer是调用者提供的缓冲区,成功时使用派生密钥填充。输入密码短语取自passphrase密码短语八位字节的任意内存缓冲区。algo指定要使用的 KDF 算法;见下文。subalgo指定 KDF 算法内部使用的算法;这通常是一种哈希算法,但某些 KDF 算法可能会以不同的方式使用它。salt是一种长度为 saltlen 八位字节的盐,这是大多数 KDF 算法所需要的。iterations是大多数 KDF 的正整数参数。

我不了解如何使用此功能的三件事:

  1. salt必须随机生成,因此必须将其加密放入输出文件中,不是吗?(IV-密文-SALT-MAC)
  2. saltlen有一个正确的“加密”值还是我可以选择我喜欢的任何东西?比如 10,20,30...
  3. keysize(在这种情况下)必须是 512,对吧?