OpenSSL에서 CMS를 사용하여 암호화 된 S/MIME 메시지의 암호를 해독하려고하면 암호 해독 방법이 성공하지 못했습니다. OpenSSL.org 말한다OpenSSL 암호 해독은 실패하지만 오류 코드는 0입니다.
..
CMS_decrypt()는 실패를 성공을위한 1 또는 0 중 하나를 반환합니다. 오류 (3)
I 이것을 실행 는 ...
out = BIO_new(BIO_s_mem());
if (!out)
assert(false);
int error = CMS_decrypt(cms, rkey, rcert, out, NULL, 0);
if (!error) {
fprintf(stderr, "Error Decrypting Data\n");
printf("error code: %d\n", ERR_get_error());
ERR_print_errors_fp(stderr);
assert(false);
}
...
ERR_get_error()
에서 오류 코드가 에러 변수가 에러가 발생한 것을 의미 0이고 ERR_get_error 얻을 수있다 또한
ERR_print_errors_fp()
은 오류가 없다는 것을 인쇄하지 않습니다.
상기 코드의 출력 :
Error Decrypting Data
error code: 0
Assertion failed: (false)
사람이 잘못 여기에 무슨 일이 일어나고 있는지 제안이 있습니까? 감사합니다
성공적으로 해독합니까? 그렇다면 오류가 의도 한대로 0을 반환하는지 (반환 값이 우연히 교환되었을 수 있음) 확인하거나 컨트롤 문 –
에서 "ERR_get_error()"값을 사용하는 것이 좋습니다. @ MD-Tech : Nope. : -/바이오가 비어 있습니다. mem BIO 대신 파일 BIO를 만들더라도 새 파일을 만들지 만 그 안에 아무것도 쓰지는 않습니다 ... – Chris