From 01e1f1b595d49ebad74fbf91cb7faf1ae04f325d Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Wed, 21 Jan 2026 16:10:59 +0100 Subject: [PATCH] [crypto] deprecate er and der modules These are unused and not well tested, mark them deprecated to announce removal once FreeRDP 4 is released. --- include/CMakeLists.txt | 5 ++ include/freerdp/crypto/der.h | 28 ++++++---- include/freerdp/crypto/er.h | 91 ++++++++++++++++++++++---------- libfreerdp/crypto/CMakeLists.txt | 6 ++- 4 files changed, 90 insertions(+), 40 deletions(-) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index ccb021d26..c3424500a 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -140,6 +140,11 @@ cleaning_configure_file( ) file(GLOB_RECURSE PUBLIC_COMMON_HEADERS LIST_DIRECTORIES false "freerdp/*.h") +if(WITHOUT_FREERDP_3x_DEPRECATED) + list(REMOVE_ITEM PUBLIC_COMMON_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/freerdp/crypto/er.h") + list(REMOVE_ITEM PUBLIC_COMMON_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/freerdp/crypto/der.h") +endif() + file(GLOB_RECURSE PUBLIC_COMMON_BIN_HEADERS LIST_DIRECTORIES false "${CMAKE_CURRENT_BINARY_DIR}/freerdp/*.h") list(SORT PUBLIC_COMMON_HEADERS) diff --git a/include/freerdp/crypto/der.h b/include/freerdp/crypto/der.h index afed4fe7d..70d5ed2ed 100644 --- a/include/freerdp/crypto/der.h +++ b/include/freerdp/crypto/der.h @@ -20,6 +20,9 @@ #ifndef FREERDP_CRYPTO_DER_H #define FREERDP_CRYPTO_DER_H +#include +#if !defined(WITHOUT_FREERDP_3x_DEPRECATED) + #include #ifdef __cplusplus @@ -28,18 +31,25 @@ extern "C" #endif // NOLINTNEXTLINE(bugprone-reserved-identifier,cert-dcl37-c,cert-dcl51-cpp) - FREERDP_API int _der_skip_length(int length); - FREERDP_API int der_write_length(wStream* s, int length); - FREERDP_API int der_get_content_length(int length); - FREERDP_API int der_skip_octet_string(int length); - FREERDP_API int der_skip_sequence_tag(int length); - FREERDP_API int der_write_sequence_tag(wStream* s, int length); - FREERDP_API int der_skip_contextual_tag(int length); - FREERDP_API int der_write_contextual_tag(wStream* s, BYTE tag, int length, BOOL pc); - FREERDP_API void der_write_octet_string(wStream* s, BYTE* oct_str, int length); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int _der_skip_length(int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int der_write_length(wStream* s, int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int der_get_content_length(int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int der_skip_octet_string(int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int der_skip_sequence_tag(int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API int der_write_sequence_tag(wStream* s, int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int der_skip_contextual_tag(int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API int der_write_contextual_tag(wStream* s, BYTE tag, int length, + BOOL pc)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API void der_write_octet_string(wStream* s, BYTE* oct_str, + int length)); #ifdef __cplusplus } #endif +#endif + #endif /* FREERDP_CRYPTO_DER_H */ diff --git a/include/freerdp/crypto/er.h b/include/freerdp/crypto/er.h index f81d1c1b6..fc1096e3b 100644 --- a/include/freerdp/crypto/er.h +++ b/include/freerdp/crypto/er.h @@ -21,6 +21,9 @@ #ifndef FREERDP_CRYPTO_ER_H #define FREERDP_CRYPTO_ER_H +#include +#if !defined(WITHOUT_FREERDP_3x_DEPRECATED) + #include #include @@ -60,40 +63,70 @@ extern "C" { #endif - FREERDP_API void er_read_length(wStream* s, int* length); - FREERDP_API int er_write_length(wStream* s, int length, BOOL flag); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API void er_read_length(wStream* s, int* length)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API int er_write_length(wStream* s, int length, BOOL flag)); // NOLINTNEXTLINE(bugprone-reserved-identifier,cert-dcl37-c,cert-dcl51-cpp) - FREERDP_API int _er_skip_length(int length); - FREERDP_API int er_get_content_length(int length); - FREERDP_API BOOL er_read_universal_tag(wStream* s, BYTE tag, BOOL pc); - FREERDP_API void er_write_universal_tag(wStream* s, BYTE tag, BOOL pc); - FREERDP_API BOOL er_read_application_tag(wStream* s, BYTE tag, int* length); - FREERDP_API void er_write_application_tag(wStream* s, BYTE tag, int length, BOOL flag); - FREERDP_API BOOL er_read_enumerated(wStream* s, BYTE* enumerated, BYTE count); - FREERDP_API void er_write_enumerated(wStream* s, BYTE enumerated, BYTE count, BOOL flag); - FREERDP_API BOOL er_read_contextual_tag(wStream* s, BYTE tag, int* length, BOOL pc); - FREERDP_API int er_write_contextual_tag(wStream* s, BYTE tag, int length, BOOL pc, BOOL flag); - FREERDP_API int er_skip_contextual_tag(int length); - FREERDP_API BOOL er_read_sequence_tag(wStream* s, int* length); - FREERDP_API int er_write_sequence_tag(wStream* s, int length, BOOL flag); - FREERDP_API int er_skip_sequence(int length); - FREERDP_API int er_skip_sequence_tag(int length); - FREERDP_API BOOL er_read_bit_string(wStream* s, int* length, BYTE* padding); - FREERDP_API BOOL er_write_bit_string_tag(wStream* s, UINT32 length, BYTE padding, BOOL flag); - FREERDP_API BOOL er_read_octet_string(wStream* s, int* length); - FREERDP_API void er_write_octet_string(wStream* s, BYTE* oct_str, int length, BOOL flag); - FREERDP_API int er_write_octet_string_tag(wStream* s, int length, BOOL flag); - FREERDP_API int er_skip_octet_string(int length); - FREERDP_API BOOL er_read_BOOL(wStream* s, BOOL* value); - FREERDP_API void er_write_BOOL(wStream* s, BOOL value); - FREERDP_API BOOL er_read_integer(wStream* s, UINT32* value); - FREERDP_API int er_write_integer(wStream* s, INT32 value); - FREERDP_API BOOL er_read_integer_length(wStream* s, int* length); - FREERDP_API int er_skip_integer(INT32 value); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int _er_skip_length(int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int er_get_content_length(int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API BOOL er_read_universal_tag(wStream* s, BYTE tag, BOOL pc)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API void er_write_universal_tag(wStream* s, BYTE tag, BOOL pc)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API BOOL er_read_application_tag(wStream* s, BYTE tag, + int* length)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API void er_write_application_tag(wStream* s, BYTE tag, int length, + BOOL flag)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API BOOL er_read_enumerated(wStream* s, BYTE* enumerated, + BYTE count)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API void er_write_enumerated(wStream* s, BYTE enumerated, + BYTE count, BOOL flag)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API BOOL er_read_contextual_tag(wStream* s, BYTE tag, int* length, + BOOL pc)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API int er_write_contextual_tag(wStream* s, BYTE tag, int length, + BOOL pc, BOOL flag)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int er_skip_contextual_tag(int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API BOOL er_read_sequence_tag(wStream* s, int* length)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API int er_write_sequence_tag(wStream* s, int length, BOOL flag)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int er_skip_sequence(int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int er_skip_sequence_tag(int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API BOOL er_read_bit_string(wStream* s, int* length, + BYTE* padding)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API BOOL er_write_bit_string_tag(wStream* s, UINT32 length, + BYTE padding, BOOL flag)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API BOOL er_read_octet_string(wStream* s, int* length)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API void er_write_octet_string(wStream* s, BYTE* oct_str, + int length, BOOL flag)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API int er_write_octet_string_tag(wStream* s, int length, + BOOL flag)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int er_skip_octet_string(int length)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API BOOL er_read_BOOL(wStream* s, BOOL* value)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API void er_write_BOOL(wStream* s, BOOL value)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API BOOL er_read_integer(wStream* s, UINT32* value)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int er_write_integer(wStream* s, INT32 value)); + WINPR_DEPRECATED_VAR("since 3.21.1", + FREERDP_API BOOL er_read_integer_length(wStream* s, int* length)); + WINPR_DEPRECATED_VAR("since 3.21.1", FREERDP_API int er_skip_integer(INT32 value)); #ifdef __cplusplus } #endif +#endif + #endif /* FREERDP_CRYPTO_ER_H */ diff --git a/libfreerdp/crypto/CMakeLists.txt b/libfreerdp/crypto/CMakeLists.txt index 756930ce7..d7b6431a2 100644 --- a/libfreerdp/crypto/CMakeLists.txt +++ b/libfreerdp/crypto/CMakeLists.txt @@ -19,8 +19,6 @@ set(MODULE_NAME "freerdp-crypto") set(MODULE_PREFIX "FREERDP_CRYPTO") freerdp_module_add( - er.c - der.c ber.c per.c base64.c @@ -40,6 +38,10 @@ freerdp_module_add( opensslcompat.c ) +if(NOT WITHOUT_FREERDP_3x_DEPRECATED) + freerdp_module_add(er.c der.c) +endif() + freerdp_include_directory_add(${OPENSSL_INCLUDE_DIR}) freerdp_library_add(${OPENSSL_LIBRARIES})