3
내가 바이트의 블록을 암호화하는 엘가와 libgcrypt를 사용하고
를 사용하여 해독, 나는이 문제가 발생하고 때 나는 패딩 내 블록을 사용하지 않는데이터 손실 암호화 및 libgcrypt를하고 엘가
바이트는 0 바이트가 시작되고, 나는 암호 해독 중에 첫 번째 바이트를 잃어버린다.
패딩을 사용하면 암호화가 잘 작동하지만 패딩을 제거하면 제거되지 않습니다. 그리고 분명히 거기에있는 첫 번째 0 바이트입니다.
RSA와 내가 같은 문제 :(내 테스트 코드가있는 데
:.
: www.tiago.eti.br/storage/post.c는 그리고 패딩을 사용하지 않는을 변경해야 패딩을 사용하려면를
#define PADDING "pkcs1"
에
#define PADDING "raw"
그리고 암호화 알고리즘 변경 변경 :
gcc -Wall -g post.c -lgcrypt -o post
내가 그것을 해결하기 위해 수행 할 수
#define ALG "elg"
#define ALG "rsa"
로는 사용할 필요가 컴파일하려면?
블록 해독시 패딩이 제거 될 것으로 예상됩니다. – argentage
문서에서 당신이 찾을 수 있습니다 "기능 :. gcry_error_t의 gcry_pk_decrypt (gcry_sexp_t * r_plain, gcry_sexp_t 데이터, gcry_sexp_t의 SKEY) (...)이 기능은 기본적으로 데이터에서 패딩을 제거하지 않습니다 libgcrypt를 패딩을 제거하도록하려면, '플래그 '에 암호화 할 때 사용 된 패딩 방법을 알려주는 힌트를 제공하십시오. (플래그 패딩 방식) " 그리고 제가 해냈습니다. 그러나 그것은 작동하지 않았다. –