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

c - C中的Libgcrypt返回42

我想以此作为开头,我是 C 新手,尤其是使用像 libgcrypt 这样大的库,所以如果它非常简单,请理解。

所以,我一直在尝试加密一些文本,只是为了有点启动板,这样我就可以在开始加密字节之前获得一些更好的信心,如果你愿意的话,这是这个小应用程序的最终目标之一。我一直在关注这个,但仍然在努力让它发挥作用。真正让我感到困惑的部分是我将它传递给输出缓冲区,该缓冲区的大小已与输入文本的大小相匹配。我确实觉得很奇怪,这个站点告诉我使输出缓冲区与输入大小相同,即使通常在使用 AES 加密时输出的字节数很大。也许我错过了一些更有经验的人可以帮助我的东西,我已经阅读了他们的代码至少 3-4 次,我觉得这一定是我在这里想念的超级简单的东西。

编辑

客户端.c

控制台输出

感谢您的关注!

0 投票
1 回答
973 浏览

c - Libgcrypt 中的 AES CCM 加密和解密

在使用 CCM 操作模式和 AES 算法时,我在 Libgcrypt 中加密/解密简单的 16 字节消息时遇到问题。在 Libgcrypt 的文档中,我找不到为 CCM 设置哪些参数(我应该设置 IV 还是计数器?)。

我坚持以下代码:

如何在 Libgcrypt 中使用 AES128 和 CCM 执行简单的加密/解密?

0 投票
1 回答
410 浏览

rsa - 我们如何使用 libgcrypt 为 RSA 加密添加 pkcs1 填充?

我正在尝试使用 libgcrypt 使用 RSA 公钥加密字符串。它的 selftest_encr_1024 示例显示了大部分内容,但没有向我们展示如何处理填充。这是我编写的尝试添加 PKCS#1 类型 2 填充的代码,但它没有添加任何填充。我错过了什么或做错了什么?

0 投票
1 回答
228 浏览

c - Libgcrypt - 从 gcry_sexp_t 对象中提取 RSA 加密数据

我正在尝试从一个gcry_sexp_t对象(我假设它是一个 MPI)中提取加密的 RSA 数据,因此我可以将加密的数据存储为加密文件(在 sexp 对象中没有其他 gcrypt 元数据)。

我尝试过使用gcry_sexp_sprint,它序列化了整个 sexp 对象以及哪种工作方式,但我认为这不是在磁盘上存储 RSA 加密字节的预期方式。我还尝试使用gcry_sexp_nth_bufferand提取数据gcry_sexp_nth_mpi,两者都只返回字符串enc-val

此代码是相关部分:

在此之后,我有一个包含gcry_sexp_t所有相关数据的对象,我想从中提取加密数据。

谢谢!

编辑:我最终调用gcry_sexp_nth了两次来遍历嵌套的 S 表达式对象,然后使用gcry_sexp_nth_data来获取原始加密数据。不过,我确信有更好的方法。

0 投票
1 回答
354 浏览

gcc - “cc: command not found” when running make for libgcrypt on windows 10

G'day all. Just to preface this, I'm not an experienced programmer, so I might not use the correct jargon.

I'm in the process of installing GnuPG 2.2.19 on a Windows 10 machine (build no. 18363.628). I have installed MinGW (version 2013072300 according to mingw-get), as well as npth 1.6 and libgpg-error 1.37. I'm now attempting to install libgcrypt 1.8.5. Running ./autogen.sh --build-w32 works, but running make fails with the following output (I am using msys.bat as my shell):

Unfortunately I accidentally closed the shell window after the first time I ran make, so this is from when I ran it a second time, hence the "Nothing to be done" stuff.

I have checked the Makefile for libgcrypt; it contains the following:

  • CC = mingw32-gcc

  • CCAS = mingw32-gcc

  • CCASDEPMODE = depmode=gcc3

  • CCASFLAGS = -g -O2

  • CCDEPMODE = depmode=gcc3

  • CC_FOR_BUILD = cc

I've checked the MinGW root folder, and gcc.exe and mingw32-gcc.exe are both present in the bin folder. I've also tried changing the first of those lines above to CC=gcc; no change.

Anyone have any suggestions as to what the problem is? Thanks in advance.

0 投票
0 回答
30 浏览

c++ - 签署 gcrypt 数据返回 16777281

我将以下 gcrypt 代码设置为首先签名,然后验证数据。但是,这已经返回 16777281 作为签名操作的结果。但我找不到任何与此匹配的错误消息。

编辑:附加信息:

通过 gcry_strerror 的错误代码导致“无效对象”

0 投票
2 回答
87 浏览

c - C 和 libgcrypt。Str 键入 gcry_error_t。然后加

我正在尝试将字符串“255”中的数字转换为类型 gcry_mpi_t。gcry_mpi_dump 显示 323535 而不是 gcry_mpi_add 和 gcry_mpi_print(GCRYMPI_FMT_USG... ) 无法正常工作。

你可以看到输出:

输出

lib 取自https://gnupg.org/download/index.html

gcc 版本 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)

用命令编译。gcc test.c -lgcrypt

如果你有这种类型的例子,我想看看。

0 投票
1 回答
104 浏览

c - c libgcrypt中的密文长度错误

所以,我试图加密和解密一个字符串,在arch上使用libgcrypt库(版本1.8.7),此时我尝试了2种模式:CBC和GCM(不确定GCM,所以让我们先解决CBC),但同样的问题出现了。

我填充字符串,然后逐块对其进行加密。有时,顺便说一句,这会发生混乱,gcry_cipher_encrypt函数返回错误的字节数(5、7、11...),但如果我理解正确,输出应该是 16 字节(128 位)。解密也会发生同样的事情,我以完全相同的方式逐块进行。我在整个加密或解密过程中使用相同的 GCRY 处理程序,感觉就像我真的错过了一些东西......这是一个示例,仅在 CBC 模式下加密,以便更容易找到问题。

代码:

输出:

我真的很抱歉这个烂摊子,只是我在这一点上发疯了,看起来解决方案很简单,但我就是无法理解。

0 投票
0 回答
21 浏览

c++ - 如何使用 libgcrypt 初始化 gcry_ctx_t 以便将其传递给 gcry_pubkey_get_sexp

gcry_pubkey_get_sexp编写测试程序时,当我从已创建的密钥中提取公钥时,我很难弄清楚将什么作为第三个参数传递给它。

示例代码:

在这里,我只是将 nullptr 放入值中,这当然失败了。

我无法创建gcry_context,因为它仅在库中前向定义,并且链接器找不到所述结构的定义。

0 投票
1 回答
45 浏览

c - libgcrypt:CMAC 是一种选择吗?

为项目使用 libgcrypt,使用以下设置打开密码句柄:

根据 libgcrypt 文档:

GCRY_CIPHER_CBC_MAC:计算 CBC-MAC 密钥校验和。这与CBC模式相同,但只输出最后一个块。不能与 GCRY_CIPHER_CBC_CTS 同时使用。

从研究和阅读来看,“CBC_MAC”与 CMAC 不同。但是,如果 libgcrypt 支持 CMAC,我不能完全从文档中获得?有人可以澄清一下 CMAC 是否是 libgcrypt 中的一个选项吗?这里有一个模式列表,没有明确列出 CMAC:

https://www.gnupg.org/documentation/manuals/gcrypt/Available-cipher-modes.html