Re: [PATCH] selftests/sgx: Fix OpenSSL deprecated warning for ERR_get_error_line

From: Jarkko Sakkinen
Date: Tue Aug 30 2022 - 21:06:34 EST


On Tue, Aug 30, 2022 at 11:18:03AM +0000, Dhanuka wrote:
> On 8/30/22 02:52, Jarkko Sakkinen wrote:
> > On Mon, Aug 29, 2022 at 03:15:30PM +0300, Jarkko Sakkinen wrote:
> > > On Sun, Aug 28, 2022 at 11:48:59AM +0530, Dhanuka Warusadura wrote:
> > > > These changes fix the "error: ‘ERR_get_error_line’ is deprecated:
> > > > Since OpenSSL 3.0" warning.
> > > >
> > > > Signed-off-by: Dhanuka Warusadura <wdnuka@xxxxxxxxx>
> > > > ---
> > > > tools/testing/selftests/sgx/sigstruct.c | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/tools/testing/selftests/sgx/sigstruct.c b/tools/testing/selftests/sgx/sigstruct.c
> > > > index 50c5ab1aa6fa..671d9b58e274 100644
> > > > --- a/tools/testing/selftests/sgx/sigstruct.c
> > > > +++ b/tools/testing/selftests/sgx/sigstruct.c
> > > > @@ -136,7 +136,7 @@ static bool check_crypto_errors(void)
> > > > break;
> > > > had_errors = true;
> > > > - err = ERR_get_error_line(&filename, &line);
> > > > + err = ERR_peek_last_error_line(&filename, &line);
> > > > ERR_error_string_n(err, str, sizeof(str));
> > > > fprintf(stderr, "crypto: %s: %s:%d\n", str, filename, line);
> > > > }
> > > > --
> > > > 2.37.2
> > > >
> > > Reviewed-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
> > Actually NAK.
> >
> > This fix is not complete:
> >
> > sigstruct.c: In function ‘get_modulus’:
> > sigstruct.c:151:9: error: ‘RSA_get0_key’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations]
> > 151 | RSA_get0_key(key, &n, NULL, NULL);
> > | ^~~~~~~~~~~~
> > In file included from /usr/include/openssl/x509.h:36,
> > from /usr/include/openssl/pem.h:23,
> > from sigstruct.c:16:
> > /usr/include/openssl/rsa.h:217:28: note: declared here
> > 217 | OSSL_DEPRECATEDIN_3_0 void RSA_get0_key(const RSA *r,
> > | ^~~~~~~~~~~~
> > sigstruct.c: In function ‘gen_sign_key’:
> > sigstruct.c:168:9: error: ‘PEM_read_bio_RSAPrivateKey’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declaration
> > ]
> > 168 | key = PEM_read_bio_RSAPrivateKey(bio, NULL, NULL, NULL);
> > | ^~~
> > /usr/include/openssl/pem.h:447:1: note: declared here
> > 447 | DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, RSAPrivateKey, RSA)
> > | ^~~~~~~~~~~~~~~~~~~~~~
> > sigstruct.c: In function ‘encl_measure’:
> > sigstruct.c:364:9: error: ‘RSA_sign’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations]
> > 364 | if (!RSA_sign(NID_sha256, digest, SHA256_DIGEST_LENGTH,
> > | ^~
> > /usr/include/openssl/rsa.h:348:27: note: declared here
> > 348 | OSSL_DEPRECATEDIN_3_0 int RSA_sign(int type, const unsigned char *m,
> > | ^~~~~~~~
> > sigstruct.c:377:9: error: ‘RSA_free’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations]
> > 377 | RSA_free(key);
> > | ^~~~~~~~
> > /usr/include/openssl/rsa.h:293:28: note: declared here
> > 293 | OSSL_DEPRECATEDIN_3_0 void RSA_free(RSA *r);
> > | ^~~~~~~~
> > sigstruct.c:382:9: error: ‘RSA_free’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations]
> > 382 | RSA_free(key);
> > | ^~~~~~~~
> > /usr/include/openssl/rsa.h:293:28: note: declared here
> > 293 | OSSL_DEPRECATEDIN_3_0 void RSA_free(RSA *r);
> > | ^~~~~~~~
> > cc1: all warnings being treated as errors
> > make: *** [Makefile:39: /home/jarkko/work/linux-sgx/tools/testing/selftests/sgx/sigstruct.o] Error 1
> >
> > BR, Jarkko
>
> Thanks for the review.
>
> But, my intention was to just fix the `ERR_get_error_line` deprecated
> warning (as mentioned in the commit header) and not all the OpenSSL
> deprecated warnings found in `sigstruct.c`
>
> Do I need to fix all these OpenSSL deprecated warnings in `sigstruct.c` in
> order to get this patch merged?

Yes, it is incomplete as it is.

BR, Jarkko