diff -Naur libs3-66885387c9f761253988321de9c4bbfc1660717d.old/libs3-openssl3.patch libs3-66885387c9f761253988321de9c4bbfc1660717d/libs3-openssl3.patch --- libs3-66885387c9f761253988321de9c4bbfc1660717d.old/libs3-openssl3.patch 1970-01-01 01:00:00.000000000 +0100 +++ libs3-66885387c9f761253988321de9c4bbfc1660717d/libs3-openssl3.patch 2024-02-14 11:04:15.016371304 +0100 @@ -0,0 +1,51 @@ +diff --git a/src/bucket_metadata.c b/src/bucket_metadata.c +index 05f3e67..3a9db98 100644 +--- a/src/bucket_metadata.c ++++ b/src/bucket_metadata.c +@@ -38,6 +38,23 @@ + #include + #include + #include ++ ++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) ++static EVP_MD_CTX* EVP_MD_CTX_new(void) { ++ EVP_MD_CTX* ctx = (EVP_MD_CTX*)malloc(sizeof(EVP_MD_CTX)); ++ if(ctx) { ++ EVP_MD_CTX_init(ctx); ++ } ++ return ctx; ++} ++ ++static void EVP_MD_CTX_free(EVP_MD_CTX* ctx) { ++ if(ctx) { ++ EVP_MD_CTX_cleanup(ctx); ++ free(ctx); ++ } ++} ++#endif + #endif + + #include "libs3.h" +@@ -486,16 +503,17 @@ void S3_get_lifecycle(const S3BucketContext *bucketContext, + // Calculate MD5 and encode it as base64 + void generate_content_md5(const char* data, int size, + char* retBuffer, int retBufferSize) { +- MD5_CTX mdContext; ++ EVP_MD_CTX *mdContext; + BIO *bio, *b64; + BUF_MEM *bufferPtr; + + char md5Buffer[MD5_DIGEST_LENGTH]; + +- MD5_Init(&mdContext); +- MD5_Update(&mdContext, data, size); +- MD5_Final((unsigned char*)md5Buffer, &mdContext); +- ++ mdContext = EVP_MD_CTX_new(); ++ EVP_DigestInit_ex(mdContext, EVP_md5(), NULL); ++ EVP_DigestUpdate(mdContext, data, size); ++ EVP_DigestFinal_ex(mdContext, (unsigned char*)md5Buffer, NULL); ++ EVP_MD_CTX_free(mdContext); + + b64 = BIO_new(BIO_f_base64()); + bio = BIO_new(BIO_s_mem()); diff -Naur libs3-66885387c9f761253988321de9c4bbfc1660717d.old/src/bucket_metadata.c libs3-66885387c9f761253988321de9c4bbfc1660717d/src/bucket_metadata.c --- libs3-66885387c9f761253988321de9c4bbfc1660717d.old/src/bucket_metadata.c 2024-02-14 11:04:10.253289215 +0100 +++ libs3-66885387c9f761253988321de9c4bbfc1660717d/src/bucket_metadata.c 2024-02-14 11:04:21.585484519 +0100 @@ -32,6 +32,23 @@ #include #include #include + +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) +static EVP_MD_CTX* EVP_MD_CTX_new(void) { + EVP_MD_CTX* ctx = (EVP_MD_CTX*)malloc(sizeof(EVP_MD_CTX)); + if(ctx) { + EVP_MD_CTX_init(ctx); + } + return ctx; +} + +static void EVP_MD_CTX_free(EVP_MD_CTX* ctx) { + if(ctx) { + EVP_MD_CTX_cleanup(ctx); + free(ctx); + } +} +#endif #endif #include "libs3.h" @@ -480,16 +497,17 @@ // Calculate MD5 and encode it as base64 void generate_content_md5(const char* data, int size, char* retBuffer, int retBufferSize) { - MD5_CTX mdContext; + EVP_MD_CTX *mdContext; BIO *bio, *b64; BUF_MEM *bufferPtr; char md5Buffer[MD5_DIGEST_LENGTH]; - MD5_Init(&mdContext); - MD5_Update(&mdContext, data, size); - MD5_Final((unsigned char*)md5Buffer, &mdContext); - + mdContext = EVP_MD_CTX_new(); + EVP_DigestInit_ex(mdContext, EVP_md5(), NULL); + EVP_DigestUpdate(mdContext, data, size); + EVP_DigestFinal_ex(mdContext, (unsigned char*)md5Buffer, NULL); + EVP_MD_CTX_free(mdContext); b64 = BIO_new(BIO_f_base64()); bio = BIO_new(BIO_s_mem());