4

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

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

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

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

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

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

#define PADDING "raw"

#define PADDING "pkcs1"

并更改加密算法更改:

#define ALG "elg"

#define ALG "rsa"

要编译,您需要使用:

gcc -Wall -g post.c -lgcrypt -o post

我能做些什么来解决它?

4

1 回答 1

2

我在 Libgcrypt 邮件列表中发布了同样的问题,我得到了答案。

Libgcrypt 直到 1.5.0 都不会删除填充:它识别标志,但对填充不做任何事情。

所以解决方案是将 Libgcrypt 更新到 1.5.0。

于 2012-07-25T23:15:51.173 回答