File 2182-Update-MD5-implementation-from-OpenSSL-3.6.0-to-3.6..patch of Package erlang
From cb876d3c2516254d75a9cfdf5cd162a7e26bb2c9 Mon Sep 17 00:00:00 2001
From: Kiko Fernandez-Reyes <kiko@erlang.org>
Date: Wed, 4 Feb 2026 14:44:45 +0100
Subject: [PATCH 2/2] Update MD5 implementation from OpenSSL 3.6.0 to 3.6.1
---
erts/emulator/openssl/crypto/md5/md5_dgst.c | 16 +--
erts/emulator/openssl/crypto/md5/md5_local.h | 105 ++++++++++--------
.../openssl/include/crypto/md32_common.h | 85 +++++++-------
.../openssl/include/openssl_local/md5.h | 52 ++++-----
erts/emulator/openssl/{update => update.sh} | 0
erts/emulator/openssl/vendor.info | 7 +-
.../src/openssl/crypto/md5/md5_dgst.c | 16 +--
.../src/openssl/crypto/md5/md5_local.h | 105 ++++++++++--------
.../src/openssl/include/crypto/md32_common.h | 85 +++++++-------
.../src/openssl/include/openssl_local/md5.h | 52 ++++-----
lib/erl_interface/src/openssl/vendor.info | 4 +-
11 files changed, 272 insertions(+), 255 deletions(-)
rename erts/emulator/openssl/{update => update.sh} (100%)
diff --git a/erts/emulator/openssl/crypto/md5/md5_dgst.c b/erts/emulator/openssl/crypto/md5/md5_dgst.c
index 155a5ac3e5..512bbf826e 100644
--- a/erts/emulator/openssl/crypto/md5/md5_dgst.c
+++ b/erts/emulator/openssl/crypto/md5/md5_dgst.c
@@ -45,9 +45,9 @@ int MD5_Init(MD5_CTX *c)
}
#ifndef md5_block_data_order
-# ifdef X
-# undef X
-# endif
+#ifdef X
+#undef X
+#endif
#if defined(ERLANG_OPENSSL_INTEGRATION)
#define md5_block_data_order MD5_BLOCK_DATA_ORDER_FUNCTION_NAME
#endif
@@ -55,15 +55,15 @@ void md5_block_data_order(MD5_CTX *c, const void *data_, size_t num)
{
const unsigned char *data = data_;
register unsigned MD32_REG_T A, B, C, D, l;
-# ifndef MD32_XARRAY
+#ifndef MD32_XARRAY
/* See comment in crypto/sha/sha_local.h for details. */
unsigned MD32_REG_T XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15;
-# define X(i) XX##i
-# else
+#define X(i) XX##i
+#else
MD5_LONG XX[MD5_LBLOCK];
-# define X(i) XX[i]
-# endif
+#define X(i) XX[i]
+#endif
A = c->A;
B = c->B;
diff --git a/erts/emulator/openssl/crypto/md5/md5_local.h b/erts/emulator/openssl/crypto/md5/md5_local.h
index 5830ffd687..b7cb3a6282 100644
--- a/erts/emulator/openssl/crypto/md5/md5_local.h
+++ b/erts/emulator/openssl/crypto/md5/md5_local.h
@@ -19,47 +19,48 @@
#endif
#ifdef MD5_ASM
-# if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
- defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || \
- defined(_M_X64) || defined(__aarch64__) || \
- (defined(__loongarch__) && __loongarch_grlen == 64) || \
- (defined(__riscv) && __riscv_xlen == 64)
-# define md5_block_data_order ossl_md5_block_asm_data_order
-# elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
-# define md5_block_data_order ossl_md5_block_asm_data_order
-# elif defined(__sparc) || defined(__sparc__)
-# define md5_block_data_order ossl_md5_block_asm_data_order
-# endif
+#if defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64) || defined(__aarch64__) || (defined(__loongarch__) && __loongarch_grlen == 64) || (defined(__riscv) && __riscv_xlen == 64)
+#define md5_block_data_order ossl_md5_block_asm_data_order
+#elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
+#define md5_block_data_order ossl_md5_block_asm_data_order
+#elif defined(__sparc) || defined(__sparc__)
+#define md5_block_data_order ossl_md5_block_asm_data_order
+#endif
#endif
void md5_block_data_order(MD5_CTX *c, const void *p, size_t num);
#define DATA_ORDER_IS_LITTLE_ENDIAN
-#define HASH_LONG MD5_LONG
-#define HASH_CTX MD5_CTX
-#define HASH_CBLOCK MD5_CBLOCK
+#define HASH_LONG MD5_LONG
+#define HASH_CTX MD5_CTX
+#define HASH_CBLOCK MD5_CBLOCK
#if defined(ERLANG_OPENSSL_INTEGRATION)
-#define HASH_UPDATE MD5_UPDATE_FUNCTION_NAME
-#define HASH_TRANSFORM MD5_TRANSFORM_FUNCTION_NAME
-#define HASH_FINAL MD5_FINAL_FUNCTION_NAME
+#define HASH_UPDATE MD5_UPDATE_FUNCTION_NAME
+#define HASH_TRANSFORM MD5_TRANSFORM_FUNCTION_NAME
+#define HASH_FINAL MD5_FINAL_FUNCTION_NAME
#else
-#define HASH_UPDATE MD5_Update
-#define HASH_TRANSFORM MD5_Transform
-#define HASH_FINAL MD5_Final
+#define HASH_UPDATE MD5_Update
+#define HASH_TRANSFORM MD5_Transform
+#define HASH_FINAL MD5_Final
#endif
-#define HASH_MAKE_STRING(c,s) do { \
- unsigned long ll; \
- ll=(c)->A; (void)HOST_l2c(ll,(s)); \
- ll=(c)->B; (void)HOST_l2c(ll,(s)); \
- ll=(c)->C; (void)HOST_l2c(ll,(s)); \
- ll=(c)->D; (void)HOST_l2c(ll,(s)); \
- } while (0)
+#define HASH_MAKE_STRING(c, s) \
+ do { \
+ unsigned long ll; \
+ ll = (c)->A; \
+ (void)HOST_l2c(ll, (s)); \
+ ll = (c)->B; \
+ (void)HOST_l2c(ll, (s)); \
+ ll = (c)->C; \
+ (void)HOST_l2c(ll, (s)); \
+ ll = (c)->D; \
+ (void)HOST_l2c(ll, (s)); \
+ } while (0)
#if defined(ERLANG_OPENSSL_INTEGRATION)
#define HASH_BLOCK_DATA_ORDER MD5_BLOCK_DATA_ORDER_FUNCTION_NAME
#undef md5_block_data_order
#else
-#define HASH_BLOCK_DATA_ORDER md5_block_data_order
+#define HASH_BLOCK_DATA_ORDER md5_block_data_order
#endif
#include "crypto/md32_common.h"
@@ -74,27 +75,35 @@ void md5_block_data_order(MD5_CTX *c, const void *p, size_t num);
* below. Wei attributes these optimizations to Peter Gutmann's
* SHS code, and he attributes it to Rich Schroeppel.
*/
-#define F(b,c,d) ((((c) ^ (d)) & (b)) ^ (d))
-#define G(b,c,d) ((((b) ^ (c)) & (d)) ^ (c))
-#define H(b,c,d) ((b) ^ (c) ^ (d))
-#define I(b,c,d) (((~(d)) | (b)) ^ (c))
+#define F(b, c, d) ((((c) ^ (d)) & (b)) ^ (d))
+#define G(b, c, d) ((((b) ^ (c)) & (d)) ^ (c))
+#define H(b, c, d) ((b) ^ (c) ^ (d))
+#define I(b, c, d) (((~(d)) | (b)) ^ (c))
-#define R0(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+F((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };
+#define R0(a, b, c, d, k, s, t) \
+ { \
+ a += ((k) + (t) + F((b), (c), (d))); \
+ a = ROTATE(a, s); \
+ a += b; \
+ };
-#define R1(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+G((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };
+#define R1(a, b, c, d, k, s, t) \
+ { \
+ a += ((k) + (t) + G((b), (c), (d))); \
+ a = ROTATE(a, s); \
+ a += b; \
+ };
-#define R2(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+H((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };
+#define R2(a, b, c, d, k, s, t) \
+ { \
+ a += ((k) + (t) + H((b), (c), (d))); \
+ a = ROTATE(a, s); \
+ a += b; \
+ };
-#define R3(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+I((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };
+#define R3(a, b, c, d, k, s, t) \
+ { \
+ a += ((k) + (t) + I((b), (c), (d))); \
+ a = ROTATE(a, s); \
+ a += b; \
+ };
diff --git a/erts/emulator/openssl/include/crypto/md32_common.h b/erts/emulator/openssl/include/crypto/md32_common.h
index c448bbef3b..7b51cc85c4 100644
--- a/erts/emulator/openssl/include/crypto/md32_common.h
+++ b/erts/emulator/openssl/include/crypto/md32_common.h
@@ -68,7 +68,7 @@
/*
* For ossl_(un)likely
*/
-# include <internal/common.h>
+#include <internal/common.h>
#else
/* Cut from <internal/common.h> */
# if defined(__GNUC__) || defined(__clang__)
@@ -111,50 +111,49 @@
#define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
#ifndef PEDANTIC
-# if defined(__GNUC__) && __GNUC__>=2 && \
- !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
-# if defined(__riscv_zbb) || defined(__riscv_zbkb)
-# if __riscv_xlen == 64
-# undef ROTATE
-# define ROTATE(x, n) ({ MD32_REG_T ret; \
+#if defined(__GNUC__) && __GNUC__ >= 2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
+#if defined(__riscv_zbb) || defined(__riscv_zbkb)
+#if __riscv_xlen == 64
+#undef ROTATE
+#define ROTATE(x, n) ({ MD32_REG_T ret; \
asm ("roriw %0, %1, %2" \
: "=r"(ret) \
: "r"(x), "i"(32 - (n))); ret;})
-# endif
-# if __riscv_xlen == 32
-# undef ROTATE
-# define ROTATE(x, n) ({ MD32_REG_T ret; \
+#endif
+#if __riscv_xlen == 32
+#undef ROTATE
+#define ROTATE(x, n) ({ MD32_REG_T ret; \
asm ("rori %0, %1, %2" \
: "=r"(ret) \
: "r"(x), "i"(32 - (n))); ret;})
-# endif
-# endif
-# endif
+#endif
+#endif
+#endif
#endif
#if defined(DATA_ORDER_IS_BIG_ENDIAN)
-# define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++)))<<24), \
- l|=(((unsigned long)(*((c)++)))<<16), \
- l|=(((unsigned long)(*((c)++)))<< 8), \
- l|=(((unsigned long)(*((c)++))) ) )
-# define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l)>>24)&0xff), \
- *((c)++)=(unsigned char)(((l)>>16)&0xff), \
- *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
- *((c)++)=(unsigned char)(((l) )&0xff), \
- l)
+#define HOST_c2l(c, l) (l = (((unsigned long)(*((c)++))) << 24), \
+ l |= (((unsigned long)(*((c)++))) << 16), \
+ l |= (((unsigned long)(*((c)++))) << 8), \
+ l |= (((unsigned long)(*((c)++)))))
+#define HOST_l2c(l, c) (*((c)++) = (unsigned char)(((l) >> 24) & 0xff), \
+ *((c)++) = (unsigned char)(((l) >> 16) & 0xff), \
+ *((c)++) = (unsigned char)(((l) >> 8) & 0xff), \
+ *((c)++) = (unsigned char)(((l)) & 0xff), \
+ l)
#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
-# define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++))) ), \
- l|=(((unsigned long)(*((c)++)))<< 8), \
- l|=(((unsigned long)(*((c)++)))<<16), \
- l|=(((unsigned long)(*((c)++)))<<24) )
-# define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
- *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
- *((c)++)=(unsigned char)(((l)>>16)&0xff), \
- *((c)++)=(unsigned char)(((l)>>24)&0xff), \
- l)
+#define HOST_c2l(c, l) (l = (((unsigned long)(*((c)++)))), \
+ l |= (((unsigned long)(*((c)++))) << 8), \
+ l |= (((unsigned long)(*((c)++))) << 16), \
+ l |= (((unsigned long)(*((c)++))) << 24))
+#define HOST_l2c(l, c) (*((c)++) = (unsigned char)(((l)) & 0xff), \
+ *((c)++) = (unsigned char)(((l) >> 8) & 0xff), \
+ *((c)++) = (unsigned char)(((l) >> 16) & 0xff), \
+ *((c)++) = (unsigned char)(((l) >> 24) & 0xff), \
+ l)
#endif
@@ -172,11 +171,11 @@ int HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len)
if (ossl_unlikely(len == 0))
return 1;
- l = (c->Nl + (((HASH_LONG) len) << 3)) & 0xffffffffUL;
- if (ossl_unlikely(l < c->Nl)) /* overflow */
+ l = (c->Nl + (((HASH_LONG)len) << 3)) & 0xffffffffUL;
+ if (ossl_unlikely(l < c->Nl)) /* overflow */
c->Nh++;
- c->Nh += (HASH_LONG) (len >> 29); /* might cause compiler warning on
- * 16-bit */
+ c->Nh += (HASH_LONG)(len >> 29); /* might cause compiler warning on
+ * 16-bit */
c->Nl = l;
n = c->num;
@@ -230,7 +229,7 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
unsigned char *p = (unsigned char *)c->data;
size_t n = c->num;
- p[n] = 0x80; /* there is always room for one */
+ p[n] = 0x80; /* there is always room for one */
n++;
if (n > (HASH_CBLOCK - 8)) {
@@ -241,7 +240,7 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
memset(p + n, 0, HASH_CBLOCK - 8 - n);
p += HASH_CBLOCK - 8;
-#if defined(DATA_ORDER_IS_BIG_ENDIAN)
+#if defined(DATA_ORDER_IS_BIG_ENDIAN)
(void)HOST_l2c(c->Nh, p);
(void)HOST_l2c(c->Nl, p);
#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
@@ -262,7 +261,7 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
#endif
#ifndef HASH_MAKE_STRING
-# error "HASH_MAKE_STRING must be defined!"
+#error "HASH_MAKE_STRING must be defined!"
#else
HASH_MAKE_STRING(c, md);
#endif
@@ -271,8 +270,8 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
}
#ifndef MD32_REG_T
-# if defined(__alpha) || defined(__sparcv9) || defined(__mips)
-# define MD32_REG_T long
+#if defined(__alpha) || defined(__sparcv9) || defined(__mips)
+#define MD32_REG_T long
/*
* This comment was originally written for MD5, which is why it
* discusses A-D. But it basically applies to all 32-bit digests,
@@ -296,6 +295,6 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
* pre-processor condition reflects the circumstances under which
* the conclusion was made and is subject to further extension.
*/
-# define MD32_REG_T int
-# endif
+#define MD32_REG_T int
+#endif
#endif
diff --git a/erts/emulator/openssl/include/openssl_local/md5.h b/erts/emulator/openssl/include/openssl_local/md5.h
index c9b42ecb11..a522ea711c 100644
--- a/erts/emulator/openssl/include/openssl_local/md5.h
+++ b/erts/emulator/openssl/include/openssl_local/md5.h
@@ -8,8 +8,8 @@
*/
#ifndef OPENSSL_MD5_H
-# define OPENSSL_MD5_H
-# pragma once
+#define OPENSSL_MD5_H
+#pragma once
#if defined(ERLANG_OPENSSL_INTEGRATION)
@@ -20,36 +20,36 @@
#else /* !defined(ERLANG_OPENSSL_INTEGRATION) */
-# include <openssl/macros.h>
-# ifndef OPENSSL_NO_DEPRECATED_3_0
-# define HEADER_MD5_H
-# endif
+#include <openssl/macros.h>
+#ifndef OPENSSL_NO_DEPRECATED_3_0
+#define HEADER_MD5_H
+#endif
-# include <openssl/opensslconf.h>
+#include <openssl/opensslconf.h>
#endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */
-# ifndef OPENSSL_NO_MD5
+#ifndef OPENSSL_NO_MD5
#if !defined(ERLANG_OPENSSL_INTEGRATION)
-# include <openssl/e_os2.h>
+#include <openssl/e_os2.h>
#endif
-# include <stddef.h>
-# ifdef __cplusplus
+#include <stddef.h>
+#ifdef __cplusplus
extern "C" {
# endif
-# define MD5_DIGEST_LENGTH 16
+#define MD5_DIGEST_LENGTH 16
-# if !defined(OPENSSL_NO_DEPRECATED_3_0)
+#if !defined(OPENSSL_NO_DEPRECATED_3_0)
/*
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* ! MD5_LONG has to be at least 32 bits wide. !
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*/
-# define MD5_LONG unsigned int
+#define MD5_LONG unsigned int
-# define MD5_CBLOCK 64
-# define MD5_LBLOCK (MD5_CBLOCK/4)
+#define MD5_CBLOCK 64
+#define MD5_LBLOCK (MD5_CBLOCK/4)
typedef struct MD5state_st {
MD5_LONG A, B, C, D;
@@ -57,26 +57,26 @@ typedef struct MD5state_st {
MD5_LONG data[MD5_LBLOCK];
unsigned int num;
} MD5_CTX;
-# endif
-# ifndef OPENSSL_NO_DEPRECATED_3_0
-# if defined(ERLANG_OPENSSL_INTEGRATION)
+#endif
+#ifndef OPENSSL_NO_DEPRECATED_3_0
+#if defined(ERLANG_OPENSSL_INTEGRATION)
int MD5_INIT_FUNCTION_NAME(MD5_CTX *c);
int MD5_UPDATE_FUNCTION_NAME(MD5_CTX *c, const void *data, size_t len);
int MD5_FINAL_FUNCTION_NAME(unsigned char *md, MD5_CTX *c);
void MD5_TRANSFORM_FUNCTION_NAME(MD5_CTX *c, const unsigned char *b);
-# else /* !defined(ERLANG_OPENSSL_INTEGRATION) */
+#else /* !defined(ERLANG_OPENSSL_INTEGRATION) */
OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c);
OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c);
OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n,
- unsigned char *md);
+ unsigned char *md);
OSSL_DEPRECATEDIN_3_0 void MD5_Transform(MD5_CTX *c, const unsigned char *b);
-# endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */
-# endif
+#endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */
+#endif
-# ifdef __cplusplus
+#ifdef __cplusplus
}
-# endif
-# endif
+#endif
+#endif
#endif
diff --git a/erts/emulator/openssl/update b/erts/emulator/openssl/update.sh
similarity index 100%
rename from erts/emulator/openssl/update
rename to erts/emulator/openssl/update.sh
diff --git a/erts/emulator/openssl/vendor.info b/erts/emulator/openssl/vendor.info
index 89187f0d29..30071886b7 100644
--- a/erts/emulator/openssl/vendor.info
+++ b/erts/emulator/openssl/vendor.info
@@ -14,14 +14,15 @@
"homepage": "https://www.openssl.org/",
"licenseDeclared": "Apache-2.0",
"name": "openssl",
- "versionInfo": "3.6.0",
- "sha": "7b371d80d959ec9ab4139d09d78e83c090de9779",
+ "versionInfo": "3.6.1",
+ "sha": "c9a9e5b10105ad850b6e4d1122c645c67767c341",
"path": "./erts/emulator/openssl",
+ "update": "./erts/emulator/openssl/update.sh",
"exclude": [
"./erts/emulator/openssl/vendor.info",
"./erts/emulator/openssl/README",
"./erts/emulator/openssl/openssl.mk",
- "./erts/emulator/openssl/update"
+ "./erts/emulator/openssl/update.sh"
],
"supplier": "Organization: OpenSSL Mission",
"purl": "pkg:generic/openssl"
diff --git a/lib/erl_interface/src/openssl/crypto/md5/md5_dgst.c b/lib/erl_interface/src/openssl/crypto/md5/md5_dgst.c
index 155a5ac3e5..512bbf826e 100644
--- a/lib/erl_interface/src/openssl/crypto/md5/md5_dgst.c
+++ b/lib/erl_interface/src/openssl/crypto/md5/md5_dgst.c
@@ -45,9 +45,9 @@ int MD5_Init(MD5_CTX *c)
}
#ifndef md5_block_data_order
-# ifdef X
-# undef X
-# endif
+#ifdef X
+#undef X
+#endif
#if defined(ERLANG_OPENSSL_INTEGRATION)
#define md5_block_data_order MD5_BLOCK_DATA_ORDER_FUNCTION_NAME
#endif
@@ -55,15 +55,15 @@ void md5_block_data_order(MD5_CTX *c, const void *data_, size_t num)
{
const unsigned char *data = data_;
register unsigned MD32_REG_T A, B, C, D, l;
-# ifndef MD32_XARRAY
+#ifndef MD32_XARRAY
/* See comment in crypto/sha/sha_local.h for details. */
unsigned MD32_REG_T XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
XX8, XX9, XX10, XX11, XX12, XX13, XX14, XX15;
-# define X(i) XX##i
-# else
+#define X(i) XX##i
+#else
MD5_LONG XX[MD5_LBLOCK];
-# define X(i) XX[i]
-# endif
+#define X(i) XX[i]
+#endif
A = c->A;
B = c->B;
diff --git a/lib/erl_interface/src/openssl/crypto/md5/md5_local.h b/lib/erl_interface/src/openssl/crypto/md5/md5_local.h
index 5830ffd687..b7cb3a6282 100644
--- a/lib/erl_interface/src/openssl/crypto/md5/md5_local.h
+++ b/lib/erl_interface/src/openssl/crypto/md5/md5_local.h
@@ -19,47 +19,48 @@
#endif
#ifdef MD5_ASM
-# if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
- defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || \
- defined(_M_X64) || defined(__aarch64__) || \
- (defined(__loongarch__) && __loongarch_grlen == 64) || \
- (defined(__riscv) && __riscv_xlen == 64)
-# define md5_block_data_order ossl_md5_block_asm_data_order
-# elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
-# define md5_block_data_order ossl_md5_block_asm_data_order
-# elif defined(__sparc) || defined(__sparc__)
-# define md5_block_data_order ossl_md5_block_asm_data_order
-# endif
+#if defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64) || defined(__aarch64__) || (defined(__loongarch__) && __loongarch_grlen == 64) || (defined(__riscv) && __riscv_xlen == 64)
+#define md5_block_data_order ossl_md5_block_asm_data_order
+#elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
+#define md5_block_data_order ossl_md5_block_asm_data_order
+#elif defined(__sparc) || defined(__sparc__)
+#define md5_block_data_order ossl_md5_block_asm_data_order
+#endif
#endif
void md5_block_data_order(MD5_CTX *c, const void *p, size_t num);
#define DATA_ORDER_IS_LITTLE_ENDIAN
-#define HASH_LONG MD5_LONG
-#define HASH_CTX MD5_CTX
-#define HASH_CBLOCK MD5_CBLOCK
+#define HASH_LONG MD5_LONG
+#define HASH_CTX MD5_CTX
+#define HASH_CBLOCK MD5_CBLOCK
#if defined(ERLANG_OPENSSL_INTEGRATION)
-#define HASH_UPDATE MD5_UPDATE_FUNCTION_NAME
-#define HASH_TRANSFORM MD5_TRANSFORM_FUNCTION_NAME
-#define HASH_FINAL MD5_FINAL_FUNCTION_NAME
+#define HASH_UPDATE MD5_UPDATE_FUNCTION_NAME
+#define HASH_TRANSFORM MD5_TRANSFORM_FUNCTION_NAME
+#define HASH_FINAL MD5_FINAL_FUNCTION_NAME
#else
-#define HASH_UPDATE MD5_Update
-#define HASH_TRANSFORM MD5_Transform
-#define HASH_FINAL MD5_Final
+#define HASH_UPDATE MD5_Update
+#define HASH_TRANSFORM MD5_Transform
+#define HASH_FINAL MD5_Final
#endif
-#define HASH_MAKE_STRING(c,s) do { \
- unsigned long ll; \
- ll=(c)->A; (void)HOST_l2c(ll,(s)); \
- ll=(c)->B; (void)HOST_l2c(ll,(s)); \
- ll=(c)->C; (void)HOST_l2c(ll,(s)); \
- ll=(c)->D; (void)HOST_l2c(ll,(s)); \
- } while (0)
+#define HASH_MAKE_STRING(c, s) \
+ do { \
+ unsigned long ll; \
+ ll = (c)->A; \
+ (void)HOST_l2c(ll, (s)); \
+ ll = (c)->B; \
+ (void)HOST_l2c(ll, (s)); \
+ ll = (c)->C; \
+ (void)HOST_l2c(ll, (s)); \
+ ll = (c)->D; \
+ (void)HOST_l2c(ll, (s)); \
+ } while (0)
#if defined(ERLANG_OPENSSL_INTEGRATION)
#define HASH_BLOCK_DATA_ORDER MD5_BLOCK_DATA_ORDER_FUNCTION_NAME
#undef md5_block_data_order
#else
-#define HASH_BLOCK_DATA_ORDER md5_block_data_order
+#define HASH_BLOCK_DATA_ORDER md5_block_data_order
#endif
#include "crypto/md32_common.h"
@@ -74,27 +75,35 @@ void md5_block_data_order(MD5_CTX *c, const void *p, size_t num);
* below. Wei attributes these optimizations to Peter Gutmann's
* SHS code, and he attributes it to Rich Schroeppel.
*/
-#define F(b,c,d) ((((c) ^ (d)) & (b)) ^ (d))
-#define G(b,c,d) ((((b) ^ (c)) & (d)) ^ (c))
-#define H(b,c,d) ((b) ^ (c) ^ (d))
-#define I(b,c,d) (((~(d)) | (b)) ^ (c))
+#define F(b, c, d) ((((c) ^ (d)) & (b)) ^ (d))
+#define G(b, c, d) ((((b) ^ (c)) & (d)) ^ (c))
+#define H(b, c, d) ((b) ^ (c) ^ (d))
+#define I(b, c, d) (((~(d)) | (b)) ^ (c))
-#define R0(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+F((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };
+#define R0(a, b, c, d, k, s, t) \
+ { \
+ a += ((k) + (t) + F((b), (c), (d))); \
+ a = ROTATE(a, s); \
+ a += b; \
+ };
-#define R1(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+G((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };
+#define R1(a, b, c, d, k, s, t) \
+ { \
+ a += ((k) + (t) + G((b), (c), (d))); \
+ a = ROTATE(a, s); \
+ a += b; \
+ };
-#define R2(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+H((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };
+#define R2(a, b, c, d, k, s, t) \
+ { \
+ a += ((k) + (t) + H((b), (c), (d))); \
+ a = ROTATE(a, s); \
+ a += b; \
+ };
-#define R3(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+I((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };
+#define R3(a, b, c, d, k, s, t) \
+ { \
+ a += ((k) + (t) + I((b), (c), (d))); \
+ a = ROTATE(a, s); \
+ a += b; \
+ };
diff --git a/lib/erl_interface/src/openssl/include/crypto/md32_common.h b/lib/erl_interface/src/openssl/include/crypto/md32_common.h
index c448bbef3b..7b51cc85c4 100644
--- a/lib/erl_interface/src/openssl/include/crypto/md32_common.h
+++ b/lib/erl_interface/src/openssl/include/crypto/md32_common.h
@@ -68,7 +68,7 @@
/*
* For ossl_(un)likely
*/
-# include <internal/common.h>
+#include <internal/common.h>
#else
/* Cut from <internal/common.h> */
# if defined(__GNUC__) || defined(__clang__)
@@ -111,50 +111,49 @@
#define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
#ifndef PEDANTIC
-# if defined(__GNUC__) && __GNUC__>=2 && \
- !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
-# if defined(__riscv_zbb) || defined(__riscv_zbkb)
-# if __riscv_xlen == 64
-# undef ROTATE
-# define ROTATE(x, n) ({ MD32_REG_T ret; \
+#if defined(__GNUC__) && __GNUC__ >= 2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
+#if defined(__riscv_zbb) || defined(__riscv_zbkb)
+#if __riscv_xlen == 64
+#undef ROTATE
+#define ROTATE(x, n) ({ MD32_REG_T ret; \
asm ("roriw %0, %1, %2" \
: "=r"(ret) \
: "r"(x), "i"(32 - (n))); ret;})
-# endif
-# if __riscv_xlen == 32
-# undef ROTATE
-# define ROTATE(x, n) ({ MD32_REG_T ret; \
+#endif
+#if __riscv_xlen == 32
+#undef ROTATE
+#define ROTATE(x, n) ({ MD32_REG_T ret; \
asm ("rori %0, %1, %2" \
: "=r"(ret) \
: "r"(x), "i"(32 - (n))); ret;})
-# endif
-# endif
-# endif
+#endif
+#endif
+#endif
#endif
#if defined(DATA_ORDER_IS_BIG_ENDIAN)
-# define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++)))<<24), \
- l|=(((unsigned long)(*((c)++)))<<16), \
- l|=(((unsigned long)(*((c)++)))<< 8), \
- l|=(((unsigned long)(*((c)++))) ) )
-# define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l)>>24)&0xff), \
- *((c)++)=(unsigned char)(((l)>>16)&0xff), \
- *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
- *((c)++)=(unsigned char)(((l) )&0xff), \
- l)
+#define HOST_c2l(c, l) (l = (((unsigned long)(*((c)++))) << 24), \
+ l |= (((unsigned long)(*((c)++))) << 16), \
+ l |= (((unsigned long)(*((c)++))) << 8), \
+ l |= (((unsigned long)(*((c)++)))))
+#define HOST_l2c(l, c) (*((c)++) = (unsigned char)(((l) >> 24) & 0xff), \
+ *((c)++) = (unsigned char)(((l) >> 16) & 0xff), \
+ *((c)++) = (unsigned char)(((l) >> 8) & 0xff), \
+ *((c)++) = (unsigned char)(((l)) & 0xff), \
+ l)
#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
-# define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++))) ), \
- l|=(((unsigned long)(*((c)++)))<< 8), \
- l|=(((unsigned long)(*((c)++)))<<16), \
- l|=(((unsigned long)(*((c)++)))<<24) )
-# define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
- *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
- *((c)++)=(unsigned char)(((l)>>16)&0xff), \
- *((c)++)=(unsigned char)(((l)>>24)&0xff), \
- l)
+#define HOST_c2l(c, l) (l = (((unsigned long)(*((c)++)))), \
+ l |= (((unsigned long)(*((c)++))) << 8), \
+ l |= (((unsigned long)(*((c)++))) << 16), \
+ l |= (((unsigned long)(*((c)++))) << 24))
+#define HOST_l2c(l, c) (*((c)++) = (unsigned char)(((l)) & 0xff), \
+ *((c)++) = (unsigned char)(((l) >> 8) & 0xff), \
+ *((c)++) = (unsigned char)(((l) >> 16) & 0xff), \
+ *((c)++) = (unsigned char)(((l) >> 24) & 0xff), \
+ l)
#endif
@@ -172,11 +171,11 @@ int HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len)
if (ossl_unlikely(len == 0))
return 1;
- l = (c->Nl + (((HASH_LONG) len) << 3)) & 0xffffffffUL;
- if (ossl_unlikely(l < c->Nl)) /* overflow */
+ l = (c->Nl + (((HASH_LONG)len) << 3)) & 0xffffffffUL;
+ if (ossl_unlikely(l < c->Nl)) /* overflow */
c->Nh++;
- c->Nh += (HASH_LONG) (len >> 29); /* might cause compiler warning on
- * 16-bit */
+ c->Nh += (HASH_LONG)(len >> 29); /* might cause compiler warning on
+ * 16-bit */
c->Nl = l;
n = c->num;
@@ -230,7 +229,7 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
unsigned char *p = (unsigned char *)c->data;
size_t n = c->num;
- p[n] = 0x80; /* there is always room for one */
+ p[n] = 0x80; /* there is always room for one */
n++;
if (n > (HASH_CBLOCK - 8)) {
@@ -241,7 +240,7 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
memset(p + n, 0, HASH_CBLOCK - 8 - n);
p += HASH_CBLOCK - 8;
-#if defined(DATA_ORDER_IS_BIG_ENDIAN)
+#if defined(DATA_ORDER_IS_BIG_ENDIAN)
(void)HOST_l2c(c->Nh, p);
(void)HOST_l2c(c->Nl, p);
#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
@@ -262,7 +261,7 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
#endif
#ifndef HASH_MAKE_STRING
-# error "HASH_MAKE_STRING must be defined!"
+#error "HASH_MAKE_STRING must be defined!"
#else
HASH_MAKE_STRING(c, md);
#endif
@@ -271,8 +270,8 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
}
#ifndef MD32_REG_T
-# if defined(__alpha) || defined(__sparcv9) || defined(__mips)
-# define MD32_REG_T long
+#if defined(__alpha) || defined(__sparcv9) || defined(__mips)
+#define MD32_REG_T long
/*
* This comment was originally written for MD5, which is why it
* discusses A-D. But it basically applies to all 32-bit digests,
@@ -296,6 +295,6 @@ int HASH_FINAL(unsigned char *md, HASH_CTX *c)
* pre-processor condition reflects the circumstances under which
* the conclusion was made and is subject to further extension.
*/
-# define MD32_REG_T int
-# endif
+#define MD32_REG_T int
+#endif
#endif
diff --git a/lib/erl_interface/src/openssl/include/openssl_local/md5.h b/lib/erl_interface/src/openssl/include/openssl_local/md5.h
index c9b42ecb11..a522ea711c 100644
--- a/lib/erl_interface/src/openssl/include/openssl_local/md5.h
+++ b/lib/erl_interface/src/openssl/include/openssl_local/md5.h
@@ -8,8 +8,8 @@
*/
#ifndef OPENSSL_MD5_H
-# define OPENSSL_MD5_H
-# pragma once
+#define OPENSSL_MD5_H
+#pragma once
#if defined(ERLANG_OPENSSL_INTEGRATION)
@@ -20,36 +20,36 @@
#else /* !defined(ERLANG_OPENSSL_INTEGRATION) */
-# include <openssl/macros.h>
-# ifndef OPENSSL_NO_DEPRECATED_3_0
-# define HEADER_MD5_H
-# endif
+#include <openssl/macros.h>
+#ifndef OPENSSL_NO_DEPRECATED_3_0
+#define HEADER_MD5_H
+#endif
-# include <openssl/opensslconf.h>
+#include <openssl/opensslconf.h>
#endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */
-# ifndef OPENSSL_NO_MD5
+#ifndef OPENSSL_NO_MD5
#if !defined(ERLANG_OPENSSL_INTEGRATION)
-# include <openssl/e_os2.h>
+#include <openssl/e_os2.h>
#endif
-# include <stddef.h>
-# ifdef __cplusplus
+#include <stddef.h>
+#ifdef __cplusplus
extern "C" {
# endif
-# define MD5_DIGEST_LENGTH 16
+#define MD5_DIGEST_LENGTH 16
-# if !defined(OPENSSL_NO_DEPRECATED_3_0)
+#if !defined(OPENSSL_NO_DEPRECATED_3_0)
/*
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* ! MD5_LONG has to be at least 32 bits wide. !
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*/
-# define MD5_LONG unsigned int
+#define MD5_LONG unsigned int
-# define MD5_CBLOCK 64
-# define MD5_LBLOCK (MD5_CBLOCK/4)
+#define MD5_CBLOCK 64
+#define MD5_LBLOCK (MD5_CBLOCK/4)
typedef struct MD5state_st {
MD5_LONG A, B, C, D;
@@ -57,26 +57,26 @@ typedef struct MD5state_st {
MD5_LONG data[MD5_LBLOCK];
unsigned int num;
} MD5_CTX;
-# endif
-# ifndef OPENSSL_NO_DEPRECATED_3_0
-# if defined(ERLANG_OPENSSL_INTEGRATION)
+#endif
+#ifndef OPENSSL_NO_DEPRECATED_3_0
+#if defined(ERLANG_OPENSSL_INTEGRATION)
int MD5_INIT_FUNCTION_NAME(MD5_CTX *c);
int MD5_UPDATE_FUNCTION_NAME(MD5_CTX *c, const void *data, size_t len);
int MD5_FINAL_FUNCTION_NAME(unsigned char *md, MD5_CTX *c);
void MD5_TRANSFORM_FUNCTION_NAME(MD5_CTX *c, const unsigned char *b);
-# else /* !defined(ERLANG_OPENSSL_INTEGRATION) */
+#else /* !defined(ERLANG_OPENSSL_INTEGRATION) */
OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c);
OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c);
OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n,
- unsigned char *md);
+ unsigned char *md);
OSSL_DEPRECATEDIN_3_0 void MD5_Transform(MD5_CTX *c, const unsigned char *b);
-# endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */
-# endif
+#endif /* !defined(ERLANG_OPENSSL_INTEGRATION) */
+#endif
-# ifdef __cplusplus
+#ifdef __cplusplus
}
-# endif
-# endif
+#endif
+#endif
#endif
diff --git a/lib/erl_interface/src/openssl/vendor.info b/lib/erl_interface/src/openssl/vendor.info
index e1702fcd0a..e7720bbed3 100644
--- a/lib/erl_interface/src/openssl/vendor.info
+++ b/lib/erl_interface/src/openssl/vendor.info
@@ -14,8 +14,8 @@
"homepage": "https://www.openssl.org/",
"licenseDeclared": "Apache-2.0",
"name": "openssl",
- "versionInfo": "3.6.0",
- "sha": "7b371d80d959ec9ab4139d09d78e83c090de9779",
+ "versionInfo": "3.6.1",
+ "sha": "c9a9e5b10105ad850b6e4d1122c645c67767c341",
"path": "./lib/erl_interface/src/openssl",
"exclude": [
"./lib/erl_interface/src/openssl/vendor.info",
--
2.51.0