Don't truncate the input when decrypting in pkeyutl
The pkeyutl app was truncating the input file for decryption leading to incorrect results. This was probably ok historically when RSA was being used for decryption which has short maximum sizes. This is not ok with SM2. Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21272)
This commit is contained in:
parent
43596b306b
commit
849450746f
@ -2043,7 +2043,8 @@ int bio_to_mem(unsigned char **out, int maxlen, BIO *in)
|
||||
BIO_free(mem);
|
||||
return -1;
|
||||
}
|
||||
maxlen -= len;
|
||||
if (maxlen != -1)
|
||||
maxlen -= len;
|
||||
|
||||
if (maxlen == 0)
|
||||
break;
|
||||
|
@ -420,7 +420,7 @@ int pkeyutl_main(int argc, char **argv)
|
||||
/* Raw input data is handled elsewhere */
|
||||
if (in != NULL && !rawin) {
|
||||
/* Read the input data */
|
||||
buf_inlen = bio_to_mem(&buf_in, keysize * 10, in);
|
||||
buf_inlen = bio_to_mem(&buf_in, -1, in);
|
||||
if (buf_inlen < 0) {
|
||||
BIO_printf(bio_err, "Error reading input Data\n");
|
||||
goto end;
|
||||
|
Loading…
x
Reference in New Issue
Block a user