From 9256e8a2487697c347f8e54db69509dc662b26f7 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Mon, 14 Sep 2020 11:30:14 +0200 Subject: PEM: Add a more generic way to implement PEM _ex functions for libctx This also adds the following functions, for completeness: PEM_write_PrivateKey_ex(), PEM_write_bio_PrivateKey_ex(), PEM_write_PUBKEY_ex, PEM_write_bio_PUBKEY_ex Fixes #13542 Reviewed-by: Shane Lontis (Merged from https://github.com/openssl/openssl/pull/13547) --- util/libcrypto.num | 4 ++++ util/perl/OpenSSL/ParseC.pm | 40 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) (limited to 'util') diff --git a/util/libcrypto.num b/util/libcrypto.num index 77afc6eeb4..1c6b17c629 100644 --- a/util/libcrypto.num +++ b/util/libcrypto.num @@ -5280,3 +5280,7 @@ OSSL_DECODER_CTX_set_input_structure ? 3_0_0 EXIST::FUNCTION: OSSL_DECODER_INSTANCE_get_input_structure ? 3_0_0 EXIST::FUNCTION: OSSL_ENCODER_CTX_set_output_structure ? 3_0_0 EXIST::FUNCTION: OSSL_ENCODER_INSTANCE_get_output_structure ? 3_0_0 EXIST::FUNCTION: +PEM_write_PrivateKey_ex ? 3_0_0 EXIST::FUNCTION:STDIO +PEM_write_bio_PrivateKey_ex ? 3_0_0 EXIST::FUNCTION: +PEM_write_PUBKEY_ex ? 3_0_0 EXIST::FUNCTION:STDIO +PEM_write_bio_PUBKEY_ex ? 3_0_0 EXIST::FUNCTION: diff --git a/util/perl/OpenSSL/ParseC.pm b/util/perl/OpenSSL/ParseC.pm index 5cc5f28bf3..f4e5783e98 100644 --- a/util/perl/OpenSSL/ParseC.pm +++ b/util/perl/OpenSSL/ParseC.pm @@ -550,6 +550,21 @@ int PEM_write_$1(void); #endif int PEM_read_bio_$1(void); int PEM_write_bio_$1(void); +EOF + }, + }, + { regexp => qr/DECLARE_PEM(?|_rw|_rw_cb|_rw_const)_ex<<<\((.*?),.*\)>>>/, + massager => sub { return (<<"EOF"); +#ifndef OPENSSL_NO_STDIO +int PEM_read_$1(void); +int PEM_write_$1(void); +int PEM_read_$1_ex(void); +int PEM_write_$1_ex(void); +#endif +int PEM_read_bio_$1(void); +int PEM_write_bio_$1(void); +int PEM_read_bio_$1_ex(void); +int PEM_write_bio_$1_ex(void); EOF }, }, @@ -559,6 +574,17 @@ EOF int PEM_write_$1(void); #endif int PEM_write_bio_$1(void); +EOF + }, + }, + { regexp => qr/DECLARE_PEM(?|_write|_write_cb|_write_const)_ex<<<\((.*?),.*\)>>>/, + massager => sub { return (<<"EOF"); +#ifndef OPENSSL_NO_STDIO +int PEM_write_$1(void); +int PEM_write_$1_ex(void); +#endif +int PEM_write_bio_$1(void); +int PEM_write_bio_$1_ex(void); EOF }, }, @@ -568,13 +594,25 @@ EOF int PEM_read_$1(void); #endif int PEM_read_bio_$1(void); +EOF + }, + }, + { regexp => qr/DECLARE_PEM(?|_read|_read_cb)_ex<<<\((.*?),.*\)>>>/, + massager => sub { return (<<"EOF"); +#ifndef OPENSSL_NO_STDIO +int PEM_read_$1(void); +int PEM_read_$1_ex(void); +#endif +int PEM_read_bio_$1(void); +int PEM_read_bio_$1_ex(void); EOF }, }, # Universal translator of attributed PEM declarators { regexp => qr/ DECLARE_PEM - (_rw|_rw_cb|_rw_const|_write|_write_cb|_write_const|_read|_read_cb) + ((?:_rw|_rw_cb|_rw_const|_write|_write_cb|_write_const|_read|_read_cb) + (?:_ex)?) _attr <<<\(\s*OSSL_DEPRECATEDIN_(.*?)\s*,(.*?)\)>>> /x, -- cgit v1.2.3