Elgamal で Libgcrypt を使用してバイトのブロックを暗号化していますが、2 つの問題があります。
パディングを使用せず、バイト ブロックが 0 バイトで始まると、復号化中に最初のバイトが失われます。
パディングを使用すると暗号化はうまく機能しますが、復号化してもパディングは削除されません。そして、どうやら最初のゼロバイトがまだそこにあるようです。
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
解決するにはどうすればよいですか?