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

时间:2012-07-18 15:31:15

标签: c elgamal libgcrypt

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

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

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

  3. 使用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
    

    我能做些什么来解决它?

1 个答案:

答案 0 :(得分:2)

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

Libgcrypt直到1.5.0没有删除填充:它识别标志但对填充没有任何作用。

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