openssl: bump to 1.1.1s

Changes between 1.1.1r and 1.1.1s [1 Nov 2022]

  *) Fixed a regression introduced in 1.1.1r version not refreshing the
     certificate data to be signed before signing the certificate.
     [Gibeom Gwon]

 Changes between 1.1.1q and 1.1.1r [11 Oct 2022]

  *) Fixed the linux-mips64 Configure target which was missing the
     SIXTY_FOUR_BIT bn_ops flag. This was causing heap corruption on that
     platform.
     [Adam Joseph]

  *) Fixed a strict aliasing problem in bn_nist. Clang-14 optimisation was
     causing incorrect results in some cases as a result.
     [Paul Dale]

  *) Fixed SSL_pending() and SSL_has_pending() with DTLS which were failing to
     report correct results in some cases
     [Matt Caswell]

  *) Fixed a regression introduced in 1.1.1o for re-signing certificates with
     different key sizes
     [Todd Short]

  *) Added the loongarch64 target
     [Shi Pujin]

  *) Fixed a DRBG seed propagation thread safety issue
     [Bernd Edlinger]

  *) Fixed a memory leak in tls13_generate_secret
     [Bernd Edlinger]

  *) Fixed reported performance degradation on aarch64. Restored the
     implementation prior to commit 2621751 ("aes/asm/aesv8-armx.pl: avoid
     32-bit lane assignment in CTR mode") for 64bit targets only, since it is
     reportedly 2-17% slower and the silicon errata only affects 32bit targets.
     The new algorithm is still used for 32 bit targets.
     [Bernd Edlinger]

  *) Added a missing header for memcmp that caused compilation failure on some
     platforms
     [Gregor Jasny]

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
John Audia 2022-11-03 09:27:49 -04:00 committed by Daniel Golle
parent bef3699ad5
commit a0814f04ed
14 changed files with 2527 additions and 168 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=openssl PKG_NAME:=openssl
PKG_BASE:=1.1.1 PKG_BASE:=1.1.1
PKG_BUGFIX:=q PKG_BUGFIX:=s
PKG_VERSION:=$(PKG_BASE)$(PKG_BUGFIX) PKG_VERSION:=$(PKG_BASE)$(PKG_BUGFIX)
PKG_RELEASE:=$(AUTORELEASE) PKG_RELEASE:=$(AUTORELEASE)
PKG_USE_MIPS16:=0 PKG_USE_MIPS16:=0
@ -25,7 +25,7 @@ PKG_SOURCE_URL:= \
ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/ \ ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/ \
ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/old/$(PKG_BASE)/ ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/old/$(PKG_BASE)/
PKG_HASH:=d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca PKG_HASH:=c5ac01e760ee6ff0dab61d6b2bbd30146724d063eb322180c6f18a6f74e4b6aa
PKG_LICENSE:=OpenSSL PKG_LICENSE:=OpenSSL
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE

View File

@ -15,7 +15,6 @@ Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8883) (Merged from https://github.com/openssl/openssl/pull/8883)
diff --git a/crypto/perlasm/ppc-xlate.pl b/crypto/perlasm/ppc-xlate.pl
--- a/crypto/perlasm/ppc-xlate.pl --- a/crypto/perlasm/ppc-xlate.pl
+++ b/crypto/perlasm/ppc-xlate.pl +++ b/crypto/perlasm/ppc-xlate.pl
@@ -49,7 +49,7 @@ my $globl = sub { @@ -49,7 +49,7 @@ my $globl = sub {

View File

@ -8,10 +8,9 @@ version to disable building the AFALG engine on openwrt targets.
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
diff --git a/Configure b/Configure
--- a/Configure --- a/Configure
+++ b/Configure +++ b/Configure
@@ -1548,7 +1548,9 @@ unless ($disabled{"crypto-mdebug-backtrace"}) @@ -1548,7 +1548,9 @@ unless ($disabled{"crypto-mdebug-backtra
unless ($disabled{afalgeng}) { unless ($disabled{afalgeng}) {
$config{afalgeng}=""; $config{afalgeng}="";

View File

@ -7,8 +7,6 @@ Targets are named: linux-$(CONFIG_ARCH)-openwrt
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
diff --git a/Configurations/25-openwrt.conf b/Configurations/25-openwrt.conf
new file mode 100644
--- /dev/null --- /dev/null
+++ b/Configurations/25-openwrt.conf +++ b/Configurations/25-openwrt.conf
@@ -0,0 +1,52 @@ @@ -0,0 +1,52 @@

View File

@ -8,10 +8,9 @@ OpenSSL_version(OPENSSL_CFLAGS), or running openssl version -a
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
diff --git a/crypto/build.info b/crypto/build.info
--- a/crypto/build.info --- a/crypto/build.info
+++ b/crypto/build.info +++ b/crypto/build.info
@@ -10,7 +10,7 @@ EXTRA= ../ms/uplink-x86.pl ../ms/uplink.c ../ms/applink.c \ @@ -10,7 +10,7 @@ EXTRA= ../ms/uplink-x86.pl ../ms/uplink
ppccpuid.pl pariscid.pl alphacpuid.pl arm64cpuid.pl armv4cpuid.pl ppccpuid.pl pariscid.pl alphacpuid.pl arm64cpuid.pl armv4cpuid.pl
DEPEND[cversion.o]=buildinf.h DEPEND[cversion.o]=buildinf.h

View File

@ -7,10 +7,9 @@ This shortens build time.
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
diff --git a/Configure b/Configure
--- a/Configure --- a/Configure
+++ b/Configure +++ b/Configure
@@ -318,7 +318,7 @@ my $auto_threads=1; # enable threads automatically? true by default @@ -318,7 +318,7 @@ my $auto_threads=1; # enable threads
my $default_ranlib; my $default_ranlib;
# Top level directories to build # Top level directories to build

View File

@ -14,7 +14,6 @@ when the client has it on top of its ciphersuite preference.
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h
--- a/include/openssl/ssl.h --- a/include/openssl/ssl.h
+++ b/include/openssl/ssl.h +++ b/include/openssl/ssl.h
@@ -173,9 +173,15 @@ extern "C" { @@ -173,9 +173,15 @@ extern "C" {
@ -36,10 +35,9 @@ diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h
# else # else
# define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \ # define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \
"TLS_AES_128_GCM_SHA256" "TLS_AES_128_GCM_SHA256"
diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c
--- a/ssl/ssl_ciph.c --- a/ssl/ssl_ciph.c
+++ b/ssl/ssl_ciph.c +++ b/ssl/ssl_ciph.c
@@ -1467,11 +1467,29 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *ssl_method, @@ -1465,11 +1465,29 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
ssl_cipher_apply_rule(0, SSL_kECDHE, 0, 0, 0, 0, 0, CIPHER_DEL, -1, &head, ssl_cipher_apply_rule(0, SSL_kECDHE, 0, 0, 0, 0, 0, CIPHER_DEL, -1, &head,
&tail); &tail);
@ -69,7 +67,7 @@ diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c
/* /*
* ...and generally, our preferred cipher is AES. * ...and generally, our preferred cipher is AES.
@@ -1527,7 +1545,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *ssl_method, @@ -1525,7 +1543,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_
* Within each group, ciphers remain sorted by strength and previous * Within each group, ciphers remain sorted by strength and previous
* preference, i.e., * preference, i.e.,
* 1) ECDHE > DHE * 1) ECDHE > DHE

View File

@ -8,7 +8,6 @@ This adds configuration options for engines, loading all cnf files under
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com> Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
diff --git a/apps/openssl.cnf b/apps/openssl.cnf
--- a/apps/openssl.cnf --- a/apps/openssl.cnf
+++ b/apps/openssl.cnf +++ b/apps/openssl.cnf
@@ -22,6 +22,16 @@ oid_section = new_oids @@ -22,6 +22,16 @@ oid_section = new_oids

View File

@ -14,7 +14,6 @@ Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7585) (Merged from https://github.com/openssl/openssl/pull/7585)
diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
--- a/crypto/engine/eng_devcrypto.c --- a/crypto/engine/eng_devcrypto.c
+++ b/crypto/engine/eng_devcrypto.c +++ b/crypto/engine/eng_devcrypto.c
@@ -461,6 +461,7 @@ struct digest_ctx { @@ -461,6 +461,7 @@ struct digest_ctx {
@ -25,7 +24,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
}; };
static const struct digest_data_st { static const struct digest_data_st {
@@ -564,12 +565,15 @@ static int digest_update(EVP_MD_CTX *ctx, const void *data, size_t count) @@ -564,12 +565,15 @@ static int digest_update(EVP_MD_CTX *ctx
if (digest_ctx == NULL) if (digest_ctx == NULL)
return 0; return 0;
@ -45,7 +44,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
} }
static int digest_final(EVP_MD_CTX *ctx, unsigned char *md) static int digest_final(EVP_MD_CTX *ctx, unsigned char *md)
@@ -579,7 +583,10 @@ static int digest_final(EVP_MD_CTX *ctx, unsigned char *md) @@ -579,7 +583,10 @@ static int digest_final(EVP_MD_CTX *ctx,
if (md == NULL || digest_ctx == NULL) if (md == NULL || digest_ctx == NULL)
return 0; return 0;

View File

@ -13,7 +13,6 @@ Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7585) (Merged from https://github.com/openssl/openssl/pull/7585)
diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
--- a/crypto/engine/eng_devcrypto.c --- a/crypto/engine/eng_devcrypto.c
+++ b/crypto/engine/eng_devcrypto.c +++ b/crypto/engine/eng_devcrypto.c
@@ -16,6 +16,7 @@ @@ -16,6 +16,7 @@
@ -79,7 +78,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
/* /*
* Code further down must make sure that only NIDs in the table above * Code further down must make sure that only NIDs in the table above
@@ -333,19 +367,40 @@ static int cipher_cleanup(EVP_CIPHER_CTX *ctx) @@ -333,19 +367,40 @@ static int cipher_cleanup(EVP_CIPHER_CTX
} }
/* /*
@ -185,7 +184,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
static const EVP_CIPHER *get_cipher_method(int nid) static const EVP_CIPHER *get_cipher_method(int nid)
{ {
size_t i = get_cipher_data_index(nid); size_t i = get_cipher_data_index(nid);
@@ -438,6 +520,36 @@ static int devcrypto_ciphers(ENGINE *e, const EVP_CIPHER **cipher, @@ -438,6 +520,36 @@ static int devcrypto_ciphers(ENGINE *e,
return *cipher != NULL; return *cipher != NULL;
} }
@ -246,7 +245,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
/* /*
* Code further down must make sure that only NIDs in the table above * Code further down must make sure that only NIDs in the table above
@@ -516,8 +637,8 @@ static const struct digest_data_st *get_digest_data(int nid) @@ -516,8 +637,8 @@ static const struct digest_data_st *get_
} }
/* /*
@ -257,7 +256,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
*/ */
static int digest_init(EVP_MD_CTX *ctx) static int digest_init(EVP_MD_CTX *ctx)
@@ -630,52 +751,94 @@ static int digest_cleanup(EVP_MD_CTX *ctx) @@ -630,52 +751,94 @@ static int digest_cleanup(EVP_MD_CTX *ct
return clean_devcrypto_session(&digest_ctx->sess); return clean_devcrypto_session(&digest_ctx->sess);
} }
@ -402,7 +401,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
} }
} }
@@ -739,8 +909,154 @@ static int devcrypto_digests(ENGINE *e, const EVP_MD **digest, @@ -739,7 +909,153 @@ static int devcrypto_digests(ENGINE *e,
return *digest != NULL; return *digest != NULL;
} }
@ -478,8 +477,8 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
+ "DIGESTS", + "DIGESTS",
+ "either ALL, NONE, or a comma-separated list of digests to enable [default=ALL]", + "either ALL, NONE, or a comma-separated list of digests to enable [default=ALL]",
+ ENGINE_CMD_FLAG_STRING}, + ENGINE_CMD_FLAG_STRING},
#endif +#endif
+
+ {0, NULL, NULL, 0} + {0, NULL, NULL, 0}
+}; +};
+ +
@ -503,7 +502,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
+ use_softdrivers = i; + use_softdrivers = i;
+#ifdef IMPLEMENT_DIGEST +#ifdef IMPLEMENT_DIGEST
+ rebuild_known_digest_nids(e); + rebuild_known_digest_nids(e);
+#endif #endif
+ rebuild_known_cipher_nids(e); + rebuild_known_cipher_nids(e);
+ return 1; + return 1;
+#endif /* CIOCGSESSINFO */ +#endif /* CIOCGSESSINFO */
@ -553,10 +552,9 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
+ } + }
+ return 0; + return 0;
+} +}
+
/****************************************************************************** /******************************************************************************
* *
* LOAD / UNLOAD
@@ -806,6 +1122,8 @@ void engine_load_devcrypto_int() @@ -806,6 +1122,8 @@ void engine_load_devcrypto_int()
if (!ENGINE_set_id(e, "devcrypto") if (!ENGINE_set_id(e, "devcrypto")

View File

@ -11,10 +11,9 @@ Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7585) (Merged from https://github.com/openssl/openssl/pull/7585)
diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
--- a/crypto/engine/eng_devcrypto.c --- a/crypto/engine/eng_devcrypto.c
+++ b/crypto/engine/eng_devcrypto.c +++ b/crypto/engine/eng_devcrypto.c
@@ -50,16 +50,20 @@ static int use_softdrivers = DEVCRYPTO_DEFAULT_USE_SOFDTRIVERS; @@ -50,16 +50,20 @@ static int use_softdrivers = DEVCRYPTO_D
*/ */
struct driver_info_st { struct driver_info_st {
enum devcrypto_status_t { enum devcrypto_status_t {
@ -81,7 +80,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
#endif /* CIOCGSESSINFO */ #endif /* CIOCGSESSINFO */
} }
ioctl(cfd, CIOCFSESSION, &sess.ses); ioctl(cfd, CIOCFSESSION, &sess.ses);
@@ -505,8 +514,11 @@ static void destroy_all_cipher_methods(void) @@ -505,8 +514,11 @@ static void destroy_all_cipher_methods(v
{ {
size_t i; size_t i;
@ -94,7 +93,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
} }
static int devcrypto_ciphers(ENGINE *e, const EVP_CIPHER **cipher, static int devcrypto_ciphers(ENGINE *e, const EVP_CIPHER **cipher,
@@ -550,6 +562,40 @@ static int cryptodev_select_cipher_cb(const char *str, int len, void *usr) @@ -550,6 +562,40 @@ static int cryptodev_select_cipher_cb(co
return 1; return 1;
} }
@ -189,7 +188,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
EVP_MD_meth_free(known_digest_methods[i]); EVP_MD_meth_free(known_digest_methods[i]);
known_digest_methods[i] = NULL; known_digest_methods[i] = NULL;
goto finish; goto finish;
@@ -894,8 +945,11 @@ static void destroy_all_digest_methods(void) @@ -894,8 +945,11 @@ static void destroy_all_digest_methods(v
{ {
size_t i; size_t i;
@ -202,7 +201,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
} }
static int devcrypto_digests(ENGINE *e, const EVP_MD **digest, static int devcrypto_digests(ENGINE *e, const EVP_MD **digest,
@@ -939,6 +993,43 @@ static int cryptodev_select_digest_cb(const char *str, int len, void *usr) @@ -939,6 +993,43 @@ static int cryptodev_select_digest_cb(co
return 1; return 1;
} }
@ -246,7 +245,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
#endif #endif
/****************************************************************************** /******************************************************************************
@@ -983,6 +1074,11 @@ static const ENGINE_CMD_DEFN devcrypto_cmds[] = { @@ -983,6 +1074,11 @@ static const ENGINE_CMD_DEFN devcrypto_c
ENGINE_CMD_FLAG_STRING}, ENGINE_CMD_FLAG_STRING},
#endif #endif
@ -258,7 +257,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c
{0, NULL, NULL, 0} {0, NULL, NULL, 0}
}; };
@@ -1051,6 +1147,13 @@ static int devcrypto_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void)) @@ -1051,6 +1147,13 @@ static int devcrypto_ctrl(ENGINE *e, int
return 1; return 1;
#endif /* IMPLEMENT_DIGEST */ #endif /* IMPLEMENT_DIGEST */

View File

@ -19,7 +19,6 @@ turn them on if it is safe and fast enough.
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
diff --git a/engines/e_devcrypto.c b/engines/e_devcrypto.c
--- a/engines/e_devcrypto.c --- a/engines/e_devcrypto.c
+++ b/engines/e_devcrypto.c +++ b/engines/e_devcrypto.c
@@ -852,7 +852,7 @@ static void prepare_digest_methods(void) @@ -852,7 +852,7 @@ static void prepare_digest_methods(void)
@ -31,7 +30,7 @@ diff --git a/engines/e_devcrypto.c b/engines/e_devcrypto.c
/* /*
* Check that the digest is usable * Check that the digest is usable
@@ -1072,7 +1072,7 @@ static const ENGINE_CMD_DEFN devcrypto_cmds[] = { @@ -1072,7 +1072,7 @@ static const ENGINE_CMD_DEFN devcrypto_c
#ifdef IMPLEMENT_DIGEST #ifdef IMPLEMENT_DIGEST
{DEVCRYPTO_CMD_DIGESTS, {DEVCRYPTO_CMD_DIGESTS,
"DIGESTS", "DIGESTS",

View File

@ -8,10 +8,9 @@ session. It may have been closed by another process after a fork.
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
diff --git a/engines/e_devcrypto.c b/engines/e_devcrypto.c
--- a/engines/e_devcrypto.c --- a/engines/e_devcrypto.c
+++ b/engines/e_devcrypto.c +++ b/engines/e_devcrypto.c
@@ -195,9 +195,8 @@ static int cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key, @@ -195,9 +195,8 @@ static int cipher_init(EVP_CIPHER_CTX *c
get_cipher_data(EVP_CIPHER_CTX_nid(ctx)); get_cipher_data(EVP_CIPHER_CTX_nid(ctx));
/* cleanup a previous session */ /* cleanup a previous session */