Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
export OPENSSL_CONF="$OECORE_NATIVE_SYSROOT/usr/lib/ssl/openssl.cnf"
|
||||
export OPENSSL_MODULES="$OECORE_NATIVE_SYSROOT/usr/lib/ossl-modules/"
|
||||
export OPENSSL_ENGINES="$OECORE_NATIVE_SYSROOT/usr/lib/engines-3"
|
||||
|
||||
# Respect host env SSL_CERT_FILE/SSL_CERT_DIR first, then auto-detected host cert, then cert in buildtools
|
||||
# CAFILE/CAPATH is auto-deteced when source buildtools
|
||||
if [ -z "$SSL_CERT_FILE" ]; then
|
||||
if [ -n "$CAFILE" ];then
|
||||
export SSL_CERT_FILE="$CAFILE"
|
||||
elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
|
||||
export SSL_CERT_FILE="$OECORE_NATIVE_SYSROOT/usr/lib/ssl/certs/ca-certificates.crt"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$SSL_CERT_DIR" ]; then
|
||||
if [ -n "$CAPATH" ];then
|
||||
export SSL_CERT_DIR="$CAPATH"
|
||||
elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
|
||||
export SSL_CERT_DIR="$OECORE_NATIVE_SYSROOT/usr/lib/ssl/certs"
|
||||
fi
|
||||
fi
|
||||
|
||||
export BB_ENV_PASSTHROUGH_ADDITIONS="${BB_ENV_PASSTHROUGH_ADDITIONS:-} SSL_CERT_DIR SSL_CERT_FILE"
|
||||
@@ -0,0 +1,368 @@
|
||||
From 5ba65051fea0513db0d997f0ab7cafb9826ed74a Mon Sep 17 00:00:00 2001
|
||||
From: William Lyu <William.Lyu@windriver.com>
|
||||
Date: Fri, 20 Oct 2023 16:22:37 -0400
|
||||
Subject: [PATCH] Added handshake history reporting when test fails
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/openssl/openssl/pull/22481]
|
||||
|
||||
Signed-off-by: William Lyu <William.Lyu@windriver.com>
|
||||
Signed-off-by: Siddharth Doshi <sdoshi@mvista.com>
|
||||
---
|
||||
test/helpers/handshake.c | 137 +++++++++++++++++++++++++++++----------
|
||||
test/helpers/handshake.h | 70 +++++++++++++++++++-
|
||||
test/ssl_test.c | 44 +++++++++++++
|
||||
3 files changed, 217 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/test/helpers/handshake.c b/test/helpers/handshake.c
|
||||
index e0422469e4..ae2ad59dd4 100644
|
||||
--- a/test/helpers/handshake.c
|
||||
+++ b/test/helpers/handshake.c
|
||||
@@ -24,6 +24,102 @@
|
||||
#include <netinet/sctp.h>
|
||||
#endif
|
||||
|
||||
+/* Shamelessly copied from test/helpers/ssl_test_ctx.c */
|
||||
+/* Maps string names to various enumeration type */
|
||||
+typedef struct {
|
||||
+ const char *name;
|
||||
+ int value;
|
||||
+} enum_name_map;
|
||||
+
|
||||
+static const enum_name_map connect_phase_names[] = {
|
||||
+ {"Handshake", HANDSHAKE},
|
||||
+ {"RenegAppData", RENEG_APPLICATION_DATA},
|
||||
+ {"RenegSetup", RENEG_SETUP},
|
||||
+ {"RenegHandshake", RENEG_HANDSHAKE},
|
||||
+ {"AppData", APPLICATION_DATA},
|
||||
+ {"Shutdown", SHUTDOWN},
|
||||
+ {"ConnectionDone", CONNECTION_DONE}
|
||||
+};
|
||||
+
|
||||
+static const enum_name_map peer_status_names[] = {
|
||||
+ {"PeerSuccess", PEER_SUCCESS},
|
||||
+ {"PeerRetry", PEER_RETRY},
|
||||
+ {"PeerError", PEER_ERROR},
|
||||
+ {"PeerWaiting", PEER_WAITING},
|
||||
+ {"PeerTestFail", PEER_TEST_FAILURE}
|
||||
+};
|
||||
+
|
||||
+static const enum_name_map handshake_status_names[] = {
|
||||
+ {"HandshakeSuccess", HANDSHAKE_SUCCESS},
|
||||
+ {"ClientError", CLIENT_ERROR},
|
||||
+ {"ServerError", SERVER_ERROR},
|
||||
+ {"InternalError", INTERNAL_ERROR},
|
||||
+ {"HandshakeRetry", HANDSHAKE_RETRY}
|
||||
+};
|
||||
+
|
||||
+/* Shamelessly copied from test/helpers/ssl_test_ctx.c */
|
||||
+static const char *enum_name(const enum_name_map *enums, size_t num_enums,
|
||||
+ int value)
|
||||
+{
|
||||
+ size_t i;
|
||||
+ for (i = 0; i < num_enums; i++) {
|
||||
+ if (enums[i].value == value) {
|
||||
+ return enums[i].name;
|
||||
+ }
|
||||
+ }
|
||||
+ return "InvalidValue";
|
||||
+}
|
||||
+
|
||||
+const char *handshake_connect_phase_name(connect_phase_t phase)
|
||||
+{
|
||||
+ return enum_name(connect_phase_names, OSSL_NELEM(connect_phase_names),
|
||||
+ (int)phase);
|
||||
+}
|
||||
+
|
||||
+const char *handshake_status_name(handshake_status_t handshake_status)
|
||||
+{
|
||||
+ return enum_name(handshake_status_names, OSSL_NELEM(handshake_status_names),
|
||||
+ (int)handshake_status);
|
||||
+}
|
||||
+
|
||||
+const char *handshake_peer_status_name(peer_status_t peer_status)
|
||||
+{
|
||||
+ return enum_name(peer_status_names, OSSL_NELEM(peer_status_names),
|
||||
+ (int)peer_status);
|
||||
+}
|
||||
+
|
||||
+static void save_loop_history(HANDSHAKE_HISTORY *history,
|
||||
+ connect_phase_t phase,
|
||||
+ handshake_status_t handshake_status,
|
||||
+ peer_status_t server_status,
|
||||
+ peer_status_t client_status,
|
||||
+ int client_turn_count,
|
||||
+ int is_client_turn)
|
||||
+{
|
||||
+ HANDSHAKE_HISTORY_ENTRY *new_entry = NULL;
|
||||
+
|
||||
+ /*
|
||||
+ * Create a new history entry for a handshake loop with statuses given in
|
||||
+ * the arguments. Potentially evicting the oldest entry when the
|
||||
+ * ring buffer is full.
|
||||
+ */
|
||||
+ ++(history->last_idx);
|
||||
+ history->last_idx &= MAX_HANDSHAKE_HISTORY_ENTRY_IDX_MASK;
|
||||
+
|
||||
+ new_entry = &((history->entries)[history->last_idx]);
|
||||
+ new_entry->phase = phase;
|
||||
+ new_entry->handshake_status = handshake_status;
|
||||
+ new_entry->server_status = server_status;
|
||||
+ new_entry->client_status = client_status;
|
||||
+ new_entry->client_turn_count = client_turn_count;
|
||||
+ new_entry->is_client_turn = is_client_turn;
|
||||
+
|
||||
+ /* Evict the oldest handshake loop entry when the ring buffer is full. */
|
||||
+ if (history->entry_count < MAX_HANDSHAKE_HISTORY_ENTRY) {
|
||||
+ ++(history->entry_count);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
HANDSHAKE_RESULT *HANDSHAKE_RESULT_new(void)
|
||||
{
|
||||
HANDSHAKE_RESULT *ret;
|
||||
@@ -725,15 +821,6 @@ static void configure_handshake_ssl(SSL *server, SSL *client,
|
||||
SSL_set_post_handshake_auth(client, 1);
|
||||
}
|
||||
|
||||
-/* The status for each connection phase. */
|
||||
-typedef enum {
|
||||
- PEER_SUCCESS,
|
||||
- PEER_RETRY,
|
||||
- PEER_ERROR,
|
||||
- PEER_WAITING,
|
||||
- PEER_TEST_FAILURE
|
||||
-} peer_status_t;
|
||||
-
|
||||
/* An SSL object and associated read-write buffers. */
|
||||
typedef struct peer_st {
|
||||
SSL *ssl;
|
||||
@@ -1080,17 +1167,6 @@ static void do_shutdown_step(PEER *peer)
|
||||
}
|
||||
}
|
||||
|
||||
-typedef enum {
|
||||
- HANDSHAKE,
|
||||
- RENEG_APPLICATION_DATA,
|
||||
- RENEG_SETUP,
|
||||
- RENEG_HANDSHAKE,
|
||||
- APPLICATION_DATA,
|
||||
- SHUTDOWN,
|
||||
- CONNECTION_DONE
|
||||
-} connect_phase_t;
|
||||
-
|
||||
-
|
||||
static int renegotiate_op(const SSL_TEST_CTX *test_ctx)
|
||||
{
|
||||
switch (test_ctx->handshake_mode) {
|
||||
@@ -1168,19 +1244,6 @@ static void do_connect_step(const SSL_TEST_CTX *test_ctx, PEER *peer,
|
||||
}
|
||||
}
|
||||
|
||||
-typedef enum {
|
||||
- /* Both parties succeeded. */
|
||||
- HANDSHAKE_SUCCESS,
|
||||
- /* Client errored. */
|
||||
- CLIENT_ERROR,
|
||||
- /* Server errored. */
|
||||
- SERVER_ERROR,
|
||||
- /* Peers are in inconsistent state. */
|
||||
- INTERNAL_ERROR,
|
||||
- /* One or both peers not done. */
|
||||
- HANDSHAKE_RETRY
|
||||
-} handshake_status_t;
|
||||
-
|
||||
/*
|
||||
* Determine the handshake outcome.
|
||||
* last_status: the status of the peer to have acted last.
|
||||
@@ -1545,6 +1608,10 @@ static HANDSHAKE_RESULT *do_handshake_internal(
|
||||
|
||||
start = time(NULL);
|
||||
|
||||
+ save_loop_history(&(ret->history),
|
||||
+ phase, status, server.status, client.status,
|
||||
+ client_turn_count, client_turn);
|
||||
+
|
||||
/*
|
||||
* Half-duplex handshake loop.
|
||||
* Client and server speak to each other synchronously in the same process.
|
||||
@@ -1566,6 +1633,10 @@ static HANDSHAKE_RESULT *do_handshake_internal(
|
||||
0 /* server went last */);
|
||||
}
|
||||
|
||||
+ save_loop_history(&(ret->history),
|
||||
+ phase, status, server.status, client.status,
|
||||
+ client_turn_count, client_turn);
|
||||
+
|
||||
switch (status) {
|
||||
case HANDSHAKE_SUCCESS:
|
||||
client_turn_count = 0;
|
||||
diff --git a/test/helpers/handshake.h b/test/helpers/handshake.h
|
||||
index 78b03f9f4b..b9967c2623 100644
|
||||
--- a/test/helpers/handshake.h
|
||||
+++ b/test/helpers/handshake.h
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||
+ * Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -12,6 +12,11 @@
|
||||
|
||||
#include "ssl_test_ctx.h"
|
||||
|
||||
+#define MAX_HANDSHAKE_HISTORY_ENTRY_BIT 4
|
||||
+#define MAX_HANDSHAKE_HISTORY_ENTRY (1 << MAX_HANDSHAKE_HISTORY_ENTRY_BIT)
|
||||
+#define MAX_HANDSHAKE_HISTORY_ENTRY_IDX_MASK \
|
||||
+ ((1 << MAX_HANDSHAKE_HISTORY_ENTRY_BIT) - 1)
|
||||
+
|
||||
typedef struct ctx_data_st {
|
||||
unsigned char *npn_protocols;
|
||||
size_t npn_protocols_len;
|
||||
@@ -22,6 +27,63 @@ typedef struct ctx_data_st {
|
||||
char *session_ticket_app_data;
|
||||
} CTX_DATA;
|
||||
|
||||
+typedef enum {
|
||||
+ HANDSHAKE,
|
||||
+ RENEG_APPLICATION_DATA,
|
||||
+ RENEG_SETUP,
|
||||
+ RENEG_HANDSHAKE,
|
||||
+ APPLICATION_DATA,
|
||||
+ SHUTDOWN,
|
||||
+ CONNECTION_DONE
|
||||
+} connect_phase_t;
|
||||
+
|
||||
+/* The status for each connection phase. */
|
||||
+typedef enum {
|
||||
+ PEER_SUCCESS,
|
||||
+ PEER_RETRY,
|
||||
+ PEER_ERROR,
|
||||
+ PEER_WAITING,
|
||||
+ PEER_TEST_FAILURE
|
||||
+} peer_status_t;
|
||||
+
|
||||
+typedef enum {
|
||||
+ /* Both parties succeeded. */
|
||||
+ HANDSHAKE_SUCCESS,
|
||||
+ /* Client errored. */
|
||||
+ CLIENT_ERROR,
|
||||
+ /* Server errored. */
|
||||
+ SERVER_ERROR,
|
||||
+ /* Peers are in inconsistent state. */
|
||||
+ INTERNAL_ERROR,
|
||||
+ /* One or both peers not done. */
|
||||
+ HANDSHAKE_RETRY
|
||||
+} handshake_status_t;
|
||||
+
|
||||
+/* Stores the various status information in a handshake loop. */
|
||||
+typedef struct handshake_history_entry_st {
|
||||
+ connect_phase_t phase;
|
||||
+ handshake_status_t handshake_status;
|
||||
+ peer_status_t server_status;
|
||||
+ peer_status_t client_status;
|
||||
+ int client_turn_count;
|
||||
+ int is_client_turn;
|
||||
+} HANDSHAKE_HISTORY_ENTRY;
|
||||
+
|
||||
+typedef struct handshake_history_st {
|
||||
+ /* Implemented using ring buffer. */
|
||||
+ /*
|
||||
+ * The valid entries are |entries[last_idx]|, |entries[last_idx-1]|,
|
||||
+ * ..., etc., going up to |entry_count| number of entries. Note that when
|
||||
+ * the index into the array |entries| becomes < 0, we wrap around to
|
||||
+ * the end of |entries|.
|
||||
+ */
|
||||
+ HANDSHAKE_HISTORY_ENTRY entries[MAX_HANDSHAKE_HISTORY_ENTRY];
|
||||
+ /* The number of valid entries in |entries| array. */
|
||||
+ size_t entry_count;
|
||||
+ /* The index of the last valid entry in the |entries| array. */
|
||||
+ size_t last_idx;
|
||||
+} HANDSHAKE_HISTORY;
|
||||
+
|
||||
typedef struct handshake_result {
|
||||
ssl_test_result_t result;
|
||||
/* These alerts are in the 2-byte format returned by the info_callback. */
|
||||
@@ -77,6 +139,8 @@ typedef struct handshake_result {
|
||||
char *cipher;
|
||||
/* session ticket application data */
|
||||
char *result_session_ticket_app_data;
|
||||
+ /* handshake loop history */
|
||||
+ HANDSHAKE_HISTORY history;
|
||||
} HANDSHAKE_RESULT;
|
||||
|
||||
HANDSHAKE_RESULT *HANDSHAKE_RESULT_new(void);
|
||||
@@ -95,4 +159,8 @@ int configure_handshake_ctx_for_srp(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,
|
||||
CTX_DATA *server2_ctx_data,
|
||||
CTX_DATA *client_ctx_data);
|
||||
|
||||
+const char *handshake_connect_phase_name(connect_phase_t phase);
|
||||
+const char *handshake_status_name(handshake_status_t handshake_status);
|
||||
+const char *handshake_peer_status_name(peer_status_t peer_status);
|
||||
+
|
||||
#endif /* OSSL_TEST_HANDSHAKE_HELPER_H */
|
||||
diff --git a/test/ssl_test.c b/test/ssl_test.c
|
||||
index ea608518f9..9d6b093c81 100644
|
||||
--- a/test/ssl_test.c
|
||||
+++ b/test/ssl_test.c
|
||||
@@ -26,6 +26,44 @@ static OSSL_LIB_CTX *libctx = NULL;
|
||||
/* Currently the section names are of the form test-<number>, e.g. test-15. */
|
||||
#define MAX_TESTCASE_NAME_LENGTH 100
|
||||
|
||||
+static void print_handshake_history(const HANDSHAKE_HISTORY *history)
|
||||
+{
|
||||
+ size_t first_idx;
|
||||
+ size_t i;
|
||||
+ size_t cur_idx;
|
||||
+ const HANDSHAKE_HISTORY_ENTRY *cur_entry;
|
||||
+ const char header_template[] = "|%14s|%16s|%16s|%16s|%17s|%14s|";
|
||||
+ const char body_template[] = "|%14s|%16s|%16s|%16s|%17d|%14s|";
|
||||
+
|
||||
+ TEST_info("The following is the server/client state "
|
||||
+ "in the most recent %d handshake loops.",
|
||||
+ MAX_HANDSHAKE_HISTORY_ENTRY);
|
||||
+
|
||||
+ TEST_note("=================================================="
|
||||
+ "==================================================");
|
||||
+ TEST_note(header_template,
|
||||
+ "phase", "handshake status", "server status",
|
||||
+ "client status", "client turn count", "is client turn");
|
||||
+ TEST_note("+--------------+----------------+----------------"
|
||||
+ "+----------------+-----------------+--------------+");
|
||||
+
|
||||
+ first_idx = (history->last_idx - history->entry_count + 1) &
|
||||
+ MAX_HANDSHAKE_HISTORY_ENTRY_IDX_MASK;
|
||||
+ for (i = 0; i < history->entry_count; ++i) {
|
||||
+ cur_idx = (first_idx + i) & MAX_HANDSHAKE_HISTORY_ENTRY_IDX_MASK;
|
||||
+ cur_entry = &(history->entries)[cur_idx];
|
||||
+ TEST_note(body_template,
|
||||
+ handshake_connect_phase_name(cur_entry->phase),
|
||||
+ handshake_status_name(cur_entry->handshake_status),
|
||||
+ handshake_peer_status_name(cur_entry->server_status),
|
||||
+ handshake_peer_status_name(cur_entry->client_status),
|
||||
+ cur_entry->client_turn_count,
|
||||
+ cur_entry->is_client_turn ? "true" : "false");
|
||||
+ }
|
||||
+ TEST_note("=================================================="
|
||||
+ "==================================================");
|
||||
+}
|
||||
+
|
||||
static const char *print_alert(int alert)
|
||||
{
|
||||
return alert ? SSL_alert_desc_string_long(alert) : "no alert";
|
||||
@@ -388,6 +426,12 @@ static int check_test(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
|
||||
ret &= check_client_sign_type(result, test_ctx);
|
||||
ret &= check_client_ca_names(result, test_ctx);
|
||||
}
|
||||
+
|
||||
+ /* Print handshake loop history if any check fails. */
|
||||
+ if (!ret) {
|
||||
+ print_handshake_history(&(result->history));
|
||||
+ }
|
||||
+
|
||||
return ret;
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From 0377f0d5b5c1079e3b9a80881f4dcc891cbe9f9a Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex@linutronix.de>
|
||||
Date: Tue, 30 May 2023 09:11:27 -0700
|
||||
Subject: [PATCH] Configure: do not tweak mips cflags
|
||||
|
||||
This conflicts with mips machine definitons from yocto,
|
||||
e.g.
|
||||
| Error: -mips3 conflicts with the other architecture options, which imply -mips64r2
|
||||
|
||||
Upstream-Status: Inappropriate [oe-core specific]
|
||||
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
|
||||
|
||||
Refreshed for openssl-3.1.1
|
||||
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
|
||||
---
|
||||
Configure | 10 ----------
|
||||
1 file changed, 10 deletions(-)
|
||||
|
||||
diff --git a/Configure b/Configure
|
||||
index 4569952..adf019b 100755
|
||||
--- a/Configure
|
||||
+++ b/Configure
|
||||
@@ -1485,16 +1485,6 @@ if ($target =~ /^mingw/ && `$config{CC} --target-help 2>&1` =~ m/-mno-cygwin/m)
|
||||
push @{$config{shared_ldflag}}, "-mno-cygwin";
|
||||
}
|
||||
|
||||
-if ($target =~ /linux.*-mips/ && !$disabled{asm}
|
||||
- && !grep { $_ =~ /-m(ips|arch=)/ } (@{$config{CFLAGS}})) {
|
||||
- # minimally required architecture flags for assembly modules
|
||||
- my $value;
|
||||
- $value = '-mips2' if ($target =~ /mips32/);
|
||||
- $value = '-mips3' if ($target =~ /mips64/);
|
||||
- unshift @{$config{cflags}}, $value;
|
||||
- unshift @{$config{cxxflags}}, $value if $config{CXX};
|
||||
-}
|
||||
-
|
||||
# If threads aren't disabled, check how possible they are
|
||||
unless ($disabled{threads}) {
|
||||
if ($auto_threads) {
|
||||
@@ -0,0 +1,78 @@
|
||||
From 5985253f2c9025d7c127443a3a9938946f80c2a1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= <martin@geanix.com>
|
||||
Date: Tue, 6 Nov 2018 14:50:47 +0100
|
||||
Subject: [PATCH] buildinfo: strip sysroot and debug-prefix-map from compiler
|
||||
info
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The openssl build system generates buildinf.h containing the full
|
||||
compiler command line used to compile objects. This breaks
|
||||
reproducibility, as the compile command is baked into libcrypto, where
|
||||
it is used when running `openssl version -f`.
|
||||
|
||||
Add stripped build variables for the compiler and cflags lines, and use
|
||||
those when generating buildinfo.h.
|
||||
|
||||
This is based on a similar patch for older openssl versions:
|
||||
https://patchwork.openembedded.org/patch/147229/
|
||||
|
||||
Upstream-Status: Inappropriate [OE specific]
|
||||
Signed-off-by: Martin Hundebøll <martin@geanix.com>
|
||||
|
||||
Update to fix buildpaths qa issue for '-fmacro-prefix-map'.
|
||||
|
||||
Signed-off-by: Kai Kang <kai.kang@windriver.com>
|
||||
|
||||
Update to fix buildpaths qa issue for '-ffile-prefix-map'.
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
---
|
||||
Configurations/unix-Makefile.tmpl | 12 +++++++++++-
|
||||
crypto/build.info | 2 +-
|
||||
2 files changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: openssl-3.0.4/Configurations/unix-Makefile.tmpl
|
||||
===================================================================
|
||||
--- openssl-3.0.4.orig/Configurations/unix-Makefile.tmpl
|
||||
+++ openssl-3.0.4/Configurations/unix-Makefile.tmpl
|
||||
@@ -481,13 +481,23 @@ BIN_LDFLAGS={- join(' ', $target{bin_lflags} || (),
|
||||
'$(CNF_LDFLAGS)', '$(LDFLAGS)') -}
|
||||
BIN_EX_LIBS=$(CNF_EX_LIBS) $(EX_LIBS)
|
||||
|
||||
-# CPPFLAGS_Q is used for one thing only: to build up buildinf.h
|
||||
+# *_Q variables are used for one thing only: to build up buildinf.h
|
||||
CPPFLAGS_Q={- $cppflags1 =~ s|([\\"])|\\$1|g;
|
||||
$cppflags2 =~ s|([\\"])|\\$1|g;
|
||||
$lib_cppflags =~ s|([\\"])|\\$1|g;
|
||||
join(' ', $lib_cppflags || (), $cppflags2 || (),
|
||||
$cppflags1 || ()) -}
|
||||
|
||||
+CFLAGS_Q={- for (@{$config{CFLAGS}}) {
|
||||
+ s|-fdebug-prefix-map=[^ ]+|-fdebug-prefix-map=|g;
|
||||
+ s|-fmacro-prefix-map=[^ ]+|-fmacro-prefix-map=|g;
|
||||
+ s|-ffile-prefix-map=[^ ]+|-ffile-prefix-map=|g;
|
||||
+ }
|
||||
+ join(' ', @{$config{CFLAGS}}) -}
|
||||
+
|
||||
+CC_Q={- $config{CC} =~ s|--sysroot=[^ ]+|--sysroot=recipe-sysroot|g;
|
||||
+ join(' ', $config{CC}) -}
|
||||
+
|
||||
PERLASM_SCHEME= {- $target{perlasm_scheme} -}
|
||||
|
||||
# For x86 assembler: Set PROCESSOR to 386 if you want to support
|
||||
Index: openssl-3.0.4/crypto/build.info
|
||||
===================================================================
|
||||
--- openssl-3.0.4.orig/crypto/build.info
|
||||
+++ openssl-3.0.4/crypto/build.info
|
||||
@@ -115,7 +115,7 @@ DEFINE[../libcrypto]=$UPLINKDEF
|
||||
|
||||
DEPEND[info.o]=buildinf.h
|
||||
DEPEND[cversion.o]=buildinf.h
|
||||
-GENERATE[buildinf.h]=../util/mkbuildinf.pl "$(CC) $(LIB_CFLAGS) $(CPPFLAGS_Q)" "$(PLATFORM)"
|
||||
+GENERATE[buildinf.h]=../util/mkbuildinf.pl "$(CC_Q) $(CFLAGS_Q) $(CPPFLAGS_Q)" "$(PLATFORM)"
|
||||
|
||||
GENERATE[uplink-x86.S]=../ms/uplink-x86.pl
|
||||
GENERATE[uplink-x86_64.s]=../ms/uplink-x86_64.pl
|
||||
@@ -0,0 +1,44 @@
|
||||
From e70e34d857d4003199bcb5d3b52ca8102ccc1b98 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Mraz <tomas@openssl.org>
|
||||
Date: Mon, 5 Aug 2024 17:54:14 +0200
|
||||
Subject: [PATCH] dh_kmgmt.c: Avoid expensive public key validation for known
|
||||
safe-prime groups
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The partial validation is fully sufficient to check the key validity.
|
||||
|
||||
Thanks to Szilárd Pfeiffer for reporting the issue.
|
||||
|
||||
Reviewed-by: Neil Horman <nhorman@openssl.org>
|
||||
Reviewed-by: Matt Caswell <matt@openssl.org>
|
||||
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
|
||||
(Merged from https://github.com/openssl/openssl/pull/25088)
|
||||
|
||||
CVE: CVE-2024-41996
|
||||
Upstream-Status: Backport [https://github.com/openssl/openssl/commit/e70e34d857d4003199bcb5d3b52ca8102ccc1b98]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---
|
||||
providers/implementations/keymgmt/dh_kmgmt.c | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/providers/implementations/keymgmt/dh_kmgmt.c b/providers/implementations/keymgmt/dh_kmgmt.c
|
||||
index 82c3093b12..ebdce76710 100644
|
||||
--- a/providers/implementations/keymgmt/dh_kmgmt.c
|
||||
+++ b/providers/implementations/keymgmt/dh_kmgmt.c
|
||||
@@ -387,9 +387,11 @@ static int dh_validate_public(const DH *dh, int checktype)
|
||||
if (pub_key == NULL)
|
||||
return 0;
|
||||
|
||||
- /* The partial test is only valid for named group's with q = (p - 1) / 2 */
|
||||
- if (checktype == OSSL_KEYMGMT_VALIDATE_QUICK_CHECK
|
||||
- && ossl_dh_is_named_safe_prime_group(dh))
|
||||
+ /*
|
||||
+ * The partial test is only valid for named group's with q = (p - 1) / 2
|
||||
+ * but for that case it is also fully sufficient to check the key validity.
|
||||
+ */
|
||||
+ if (ossl_dh_is_named_safe_prime_group(dh))
|
||||
return ossl_dh_check_pub_key_partial(dh, pub_key, &res);
|
||||
|
||||
return DH_check_pub_key_ex(dh, pub_key);
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,129 @@
|
||||
From 6b1646e472c9e8c08bb14066ba2a7c3eed45f84a Mon Sep 17 00:00:00 2001
|
||||
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
|
||||
Date: Thu, 17 Apr 2025 08:51:53 -0500
|
||||
Subject: [PATCH] Fix P-384 curve on lower-than-P9 PPC64 targets
|
||||
|
||||
The change adding an asm implementation of p384_felem_reduce incorrectly
|
||||
uses the accelerated version on both targets that support the intrinsics
|
||||
*and* targets that don't, instead of falling back to the generics on older
|
||||
targets. This results in crashes when trying to use P-384 on < Power9.
|
||||
|
||||
Signed-off-by: Anna Wilcox <AWilcox@Wilcox-Tech.com>
|
||||
Closes: #27350
|
||||
Fixes: 85cabd94 ("Fix Minerva timing side-channel signal for P-384 curve on PPC")
|
||||
|
||||
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
|
||||
Reviewed-by: Tomas Mraz <tomas@openssl.org>
|
||||
(Merged from https://github.com/openssl/openssl/pull/27429)
|
||||
|
||||
(cherry picked from commit 29864f2b0f1046177e8048a5b17440893d3f9425)
|
||||
|
||||
CVE: CVE-2025-27587
|
||||
Upstream-Status: Backport [https://github.com/openssl/openssl/commit/6b1646e472c9e8c08bb14066ba2a7c3eed45f84a]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---
|
||||
crypto/ec/ecp_nistp384.c | 54 ++++++++++++++++++++++++----------------
|
||||
1 file changed, 33 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/crypto/ec/ecp_nistp384.c b/crypto/ec/ecp_nistp384.c
|
||||
index e0b5786bc1..439b4d03a3 100644
|
||||
--- a/crypto/ec/ecp_nistp384.c
|
||||
+++ b/crypto/ec/ecp_nistp384.c
|
||||
@@ -684,6 +684,22 @@ static void felem_reduce_ref(felem out, const widefelem in)
|
||||
out[i] = acc[i];
|
||||
}
|
||||
|
||||
+static ossl_inline void felem_square_reduce_ref(felem out, const felem in)
|
||||
+{
|
||||
+ widefelem tmp;
|
||||
+
|
||||
+ felem_square_ref(tmp, in);
|
||||
+ felem_reduce_ref(out, tmp);
|
||||
+}
|
||||
+
|
||||
+static ossl_inline void felem_mul_reduce_ref(felem out, const felem in1, const felem in2)
|
||||
+{
|
||||
+ widefelem tmp;
|
||||
+
|
||||
+ felem_mul_ref(tmp, in1, in2);
|
||||
+ felem_reduce_ref(out, tmp);
|
||||
+}
|
||||
+
|
||||
#if defined(ECP_NISTP384_ASM)
|
||||
static void felem_square_wrapper(widefelem out, const felem in);
|
||||
static void felem_mul_wrapper(widefelem out, const felem in1, const felem in2);
|
||||
@@ -695,10 +711,18 @@ static void (*felem_mul_p)(widefelem out, const felem in1, const felem in2) =
|
||||
|
||||
static void (*felem_reduce_p)(felem out, const widefelem in) = felem_reduce_ref;
|
||||
|
||||
+static void (*felem_square_reduce_p)(felem out, const felem in) =
|
||||
+ felem_square_reduce_ref;
|
||||
+static void (*felem_mul_reduce_p)(felem out, const felem in1, const felem in2) =
|
||||
+ felem_mul_reduce_ref;
|
||||
+
|
||||
void p384_felem_square(widefelem out, const felem in);
|
||||
void p384_felem_mul(widefelem out, const felem in1, const felem in2);
|
||||
void p384_felem_reduce(felem out, const widefelem in);
|
||||
|
||||
+void p384_felem_square_reduce(felem out, const felem in);
|
||||
+void p384_felem_mul_reduce(felem out, const felem in1, const felem in2);
|
||||
+
|
||||
# if defined(_ARCH_PPC64)
|
||||
# include "crypto/ppc_arch.h"
|
||||
# endif
|
||||
@@ -710,6 +734,8 @@ static void felem_select(void)
|
||||
felem_square_p = p384_felem_square;
|
||||
felem_mul_p = p384_felem_mul;
|
||||
felem_reduce_p = p384_felem_reduce;
|
||||
+ felem_square_reduce_p = p384_felem_square_reduce;
|
||||
+ felem_mul_reduce_p = p384_felem_mul_reduce;
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -718,7 +744,9 @@ static void felem_select(void)
|
||||
/* Default */
|
||||
felem_square_p = felem_square_ref;
|
||||
felem_mul_p = felem_mul_ref;
|
||||
- felem_reduce_p = p384_felem_reduce;
|
||||
+ felem_reduce_p = felem_reduce_ref;
|
||||
+ felem_square_reduce_p = felem_square_reduce_ref;
|
||||
+ felem_mul_reduce_p = felem_mul_reduce_ref;
|
||||
}
|
||||
|
||||
static void felem_square_wrapper(widefelem out, const felem in)
|
||||
@@ -737,31 +765,15 @@ static void felem_mul_wrapper(widefelem out, const felem in1, const felem in2)
|
||||
# define felem_mul felem_mul_p
|
||||
# define felem_reduce felem_reduce_p
|
||||
|
||||
-void p384_felem_square_reduce(felem out, const felem in);
|
||||
-void p384_felem_mul_reduce(felem out, const felem in1, const felem in2);
|
||||
-
|
||||
-# define felem_square_reduce p384_felem_square_reduce
|
||||
-# define felem_mul_reduce p384_felem_mul_reduce
|
||||
+# define felem_square_reduce felem_square_reduce_p
|
||||
+# define felem_mul_reduce felem_mul_reduce_p
|
||||
#else
|
||||
# define felem_square felem_square_ref
|
||||
# define felem_mul felem_mul_ref
|
||||
# define felem_reduce felem_reduce_ref
|
||||
|
||||
-static ossl_inline void felem_square_reduce(felem out, const felem in)
|
||||
-{
|
||||
- widefelem tmp;
|
||||
-
|
||||
- felem_square(tmp, in);
|
||||
- felem_reduce(out, tmp);
|
||||
-}
|
||||
-
|
||||
-static ossl_inline void felem_mul_reduce(felem out, const felem in1, const felem in2)
|
||||
-{
|
||||
- widefelem tmp;
|
||||
-
|
||||
- felem_mul(tmp, in1, in2);
|
||||
- felem_reduce(out, tmp);
|
||||
-}
|
||||
+# define felem_square_reduce felem_square_reduce_ref
|
||||
+# define felem_mul_reduce felem_mul_reduce_ref
|
||||
#endif
|
||||
|
||||
/*-
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
# Optional arguments are 'list' to lists the tests, or the test name (base name
|
||||
# ie test_evp, not 03_test_evp.t). Without any arguments we run all tests.
|
||||
|
||||
if test $# -gt 0; then
|
||||
TESTS=$*
|
||||
else
|
||||
# Skip test_symbol_presence as this is for developers
|
||||
TESTS="alltests -test_symbol_presence"
|
||||
fi
|
||||
|
||||
export TOP=.
|
||||
# Run four jobs in parallel
|
||||
export HARNESS_JOBS=4
|
||||
|
||||
{ perl ./test/run_tests.pl $TESTS || echo "FAIL: openssl" ; } | sed -u -r -e '/(.*) \.*.ok/ s/^/PASS: /g' -r -e '/Dubious(.*)/ s/^/FAIL: /g' -e '/(.*) \.*.skipped: (.*)/ s/^/SKIP: /g'
|
||||
264
sources/poky/meta/recipes-connectivity/openssl/openssl_3.2.4.bb
Normal file
264
sources/poky/meta/recipes-connectivity/openssl/openssl_3.2.4.bb
Normal file
@@ -0,0 +1,264 @@
|
||||
SUMMARY = "Secure Socket Layer"
|
||||
DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools."
|
||||
HOMEPAGE = "http://www.openssl.org/"
|
||||
BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html"
|
||||
SECTION = "libs/network"
|
||||
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c75985e733726beaba57bc5253e96d04"
|
||||
|
||||
SRC_URI = "https://github.com/openssl/openssl/releases/download/openssl-${PV}/openssl-${PV}.tar.gz \
|
||||
file://run-ptest \
|
||||
file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
|
||||
file://0001-Configure-do-not-tweak-mips-cflags.patch \
|
||||
file://0001-Added-handshake-history-reporting-when-test-fails.patch \
|
||||
file://CVE-2024-41996.patch \
|
||||
file://CVE-2025-27587-1.patch \
|
||||
file://CVE-2025-27587-2.patch \
|
||||
"
|
||||
|
||||
SRC_URI:append:class-nativesdk = " \
|
||||
file://environment.d-openssl.sh \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716"
|
||||
|
||||
inherit lib_package multilib_header multilib_script ptest perlnative manpages
|
||||
MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash"
|
||||
|
||||
PACKAGECONFIG ?= ""
|
||||
PACKAGECONFIG:class-native = ""
|
||||
PACKAGECONFIG:class-nativesdk = ""
|
||||
|
||||
PACKAGECONFIG[cryptodev-linux] = "enable-devcryptoeng,disable-devcryptoeng,cryptodev-linux,,cryptodev-module"
|
||||
PACKAGECONFIG[no-tls1] = "no-tls1"
|
||||
PACKAGECONFIG[no-tls1_1] = "no-tls1_1"
|
||||
PACKAGECONFIG[manpages] = ""
|
||||
|
||||
B = "${WORKDIR}/build"
|
||||
do_configure[cleandirs] = "${B}"
|
||||
|
||||
#| ./libcrypto.so: undefined reference to `getcontext'
|
||||
#| ./libcrypto.so: undefined reference to `setcontext'
|
||||
#| ./libcrypto.so: undefined reference to `makecontext'
|
||||
EXTRA_OECONF:append:libc-musl = " no-async"
|
||||
EXTRA_OECONF:append:libc-musl:powerpc64 = " no-asm"
|
||||
|
||||
# adding devrandom prevents openssl from using getrandom() which is not available on older glibc versions
|
||||
# (native versions can be built with newer glibc, but then relocated onto a system with older glibc)
|
||||
EXTRA_OECONF:class-native = "--with-rand-seed=os,devrandom"
|
||||
EXTRA_OECONF:class-nativesdk = "--with-rand-seed=os,devrandom"
|
||||
|
||||
# Relying on hardcoded built-in paths causes openssl-native to not be relocateable from sstate.
|
||||
CFLAGS:append:class-native = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin"
|
||||
CFLAGS:append:class-nativesdk = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin"
|
||||
|
||||
# This allows disabling deprecated or undesirable crypto algorithms.
|
||||
# The default is to trust upstream choices.
|
||||
DEPRECATED_CRYPTO_FLAGS ?= ""
|
||||
|
||||
do_configure () {
|
||||
# When we upgrade glibc but not uninative we see obtuse failures in openssl. Make
|
||||
# the issue really clear that perl isn't functional due to symbol mismatch issues.
|
||||
cat <<- EOF > ${WORKDIR}/perltest
|
||||
#!/usr/bin/env perl
|
||||
use POSIX;
|
||||
EOF
|
||||
chmod a+x ${WORKDIR}/perltest
|
||||
${WORKDIR}/perltest
|
||||
|
||||
os=${HOST_OS}
|
||||
case $os in
|
||||
linux-gnueabi |\
|
||||
linux-gnuspe |\
|
||||
linux-musleabi |\
|
||||
linux-muslspe |\
|
||||
linux-musl )
|
||||
os=linux
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
target="$os-${HOST_ARCH}"
|
||||
case $target in
|
||||
linux-arc | linux-microblaze*)
|
||||
target=linux-latomic
|
||||
;;
|
||||
linux-arm*)
|
||||
target=linux-armv4
|
||||
;;
|
||||
linux-aarch64*)
|
||||
target=linux-aarch64
|
||||
;;
|
||||
linux-i?86 | linux-viac3)
|
||||
target=linux-x86
|
||||
;;
|
||||
linux-gnux32-x86_64 | linux-muslx32-x86_64 )
|
||||
target=linux-x32
|
||||
;;
|
||||
linux-gnu64-x86_64)
|
||||
target=linux-x86_64
|
||||
;;
|
||||
linux-loongarch64)
|
||||
target=linux64-loongarch64
|
||||
;;
|
||||
linux-mips | linux-mipsel)
|
||||
# specifying TARGET_CC_ARCH prevents openssl from (incorrectly) adding target architecture flags
|
||||
target="linux-mips32 ${TARGET_CC_ARCH}"
|
||||
;;
|
||||
linux-gnun32-mips*)
|
||||
target=linux-mips64
|
||||
;;
|
||||
linux-*-mips64 | linux-mips64 | linux-*-mips64el | linux-mips64el)
|
||||
target=linux64-mips64
|
||||
;;
|
||||
linux-nios2* | linux-sh3 | linux-sh4 | linux-arc*)
|
||||
target=linux-generic32
|
||||
;;
|
||||
linux-powerpc)
|
||||
target=linux-ppc
|
||||
;;
|
||||
linux-powerpc64)
|
||||
target=linux-ppc64
|
||||
;;
|
||||
linux-powerpc64le)
|
||||
target=linux-ppc64le
|
||||
;;
|
||||
linux-riscv32)
|
||||
target=linux32-riscv32
|
||||
;;
|
||||
linux-riscv64)
|
||||
target=linux64-riscv64
|
||||
;;
|
||||
linux-sparc | linux-supersparc)
|
||||
target=linux-sparcv9
|
||||
;;
|
||||
mingw32-x86_64)
|
||||
target=mingw64
|
||||
;;
|
||||
esac
|
||||
|
||||
useprefix=${prefix}
|
||||
if [ "x$useprefix" = "x" ]; then
|
||||
useprefix=/
|
||||
fi
|
||||
# WARNING: do not set compiler/linker flags (-I/-D etc.) in EXTRA_OECONF, as they will fully replace the
|
||||
# environment variables set by bitbake. Adjust the environment variables instead.
|
||||
PERLEXTERNAL="$(realpath ${S}/external/perl/Text-Template-*/lib)"
|
||||
test -d "$PERLEXTERNAL" || bberror "PERLEXTERNAL '$PERLEXTERNAL' not found!"
|
||||
HASHBANGPERL="/usr/bin/env perl" PERL=perl PERL5LIB="$PERLEXTERNAL" \
|
||||
perl ${S}/Configure ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} ${DEPRECATED_CRYPTO_FLAGS} --prefix=$useprefix --openssldir=${libdir}/ssl-3 --libdir=${libdir} $target
|
||||
perl ${B}/configdata.pm --dump
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl install_sw install_ssldirs ${@bb.utils.contains('PACKAGECONFIG', 'manpages', 'install_docs', '', d)}
|
||||
|
||||
oe_multilib_header openssl/opensslconf.h
|
||||
oe_multilib_header openssl/configuration.h
|
||||
|
||||
# Create SSL structure for packages such as ca-certificates which
|
||||
# contain hard-coded paths to /etc/ssl. Debian does the same.
|
||||
install -d ${D}${sysconfdir}/ssl
|
||||
mv ${D}${libdir}/ssl-3/certs \
|
||||
${D}${libdir}/ssl-3/private \
|
||||
${D}${libdir}/ssl-3/openssl.cnf \
|
||||
${D}${sysconfdir}/ssl/
|
||||
|
||||
# Although absolute symlinks would be OK for the target, they become
|
||||
# invalid if native or nativesdk are relocated from sstate.
|
||||
ln -sf ${@oe.path.relative('${libdir}/ssl-3', '${sysconfdir}/ssl/certs')} ${D}${libdir}/ssl-3/certs
|
||||
ln -sf ${@oe.path.relative('${libdir}/ssl-3', '${sysconfdir}/ssl/private')} ${D}${libdir}/ssl-3/private
|
||||
ln -sf ${@oe.path.relative('${libdir}/ssl-3', '${sysconfdir}/ssl/openssl.cnf')} ${D}${libdir}/ssl-3/openssl.cnf
|
||||
}
|
||||
|
||||
do_install:append:class-native () {
|
||||
create_wrapper ${D}${bindir}/openssl \
|
||||
OPENSSL_CONF=${libdir}/ssl-3/openssl.cnf \
|
||||
SSL_CERT_DIR=${libdir}/ssl-3/certs \
|
||||
SSL_CERT_FILE=${libdir}/ssl-3/cert.pem \
|
||||
OPENSSL_ENGINES=${libdir}/engines-3 \
|
||||
OPENSSL_MODULES=${libdir}/ossl-modules
|
||||
}
|
||||
|
||||
do_install:append:class-nativesdk () {
|
||||
mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
|
||||
install -m 644 ${WORKDIR}/environment.d-openssl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh
|
||||
sed 's|/usr/lib/ssl/|/usr/lib/ssl-3/|g' -i ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh
|
||||
}
|
||||
|
||||
PTEST_BUILD_HOST_FILES += "configdata.pm"
|
||||
PTEST_BUILD_HOST_PATTERN = "perl_version ="
|
||||
do_install_ptest() {
|
||||
install -m644 ${S}/Configure ${B}/configdata.pm ${D}${PTEST_PATH}
|
||||
cp -rf ${S}/Configurations ${S}/external ${D}${PTEST_PATH}/
|
||||
|
||||
install -d ${D}${PTEST_PATH}/apps
|
||||
ln -s ${bindir}/openssl ${D}${PTEST_PATH}/apps
|
||||
|
||||
cd ${S}
|
||||
find test/certs test/ct test/d2i-tests test/recipes test/ocsp-tests test/ssl-tests test/smime-certs -type f -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \;
|
||||
find apps test -name \*.cnf -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \;
|
||||
find apps test -name \*.der -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \;
|
||||
find apps test -name \*.pem -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \;
|
||||
find util -name \*.p[lm] -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \;
|
||||
|
||||
cd ${B}
|
||||
# Everything but .? (.o and .d)
|
||||
find test -type f -name \*[^.]? -exec install -m755 -D {} ${D}${PTEST_PATH}/{} \;
|
||||
find apps test -name \*.cnf -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \;
|
||||
find apps test -name \*.pem -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \;
|
||||
find apps test -name \*.srl -exec install -m644 -D {} ${D}${PTEST_PATH}/{} \;
|
||||
install -m755 ${B}/util/*wrap.* ${D}${PTEST_PATH}/util/
|
||||
|
||||
install -m755 ${B}/apps/CA.pl ${D}${PTEST_PATH}/apps/
|
||||
install -m755 ${S}/test/*.pl ${D}${PTEST_PATH}/test/
|
||||
install -m755 ${S}/test/shibboleth.pfx ${D}${PTEST_PATH}/test/
|
||||
install -m755 ${S}/test/*.bin ${D}${PTEST_PATH}/test/
|
||||
install -m755 ${S}/test/dane*.in ${D}${PTEST_PATH}/test/
|
||||
install -m755 ${S}/test/smcont*.txt ${D}${PTEST_PATH}/test/
|
||||
install -m755 ${S}/test/ssl_test.tmpl ${D}${PTEST_PATH}/test/
|
||||
|
||||
sed 's|${S}|${PTEST_PATH}|g' -i ${D}${PTEST_PATH}/configdata.pm ${D}${PTEST_PATH}/util/wrap.pl
|
||||
|
||||
install -d ${D}${PTEST_PATH}/engines
|
||||
install -m755 ${B}/engines/dasync.so ${D}${PTEST_PATH}/engines/
|
||||
install -m755 ${B}/engines/ossltest.so ${D}${PTEST_PATH}/engines/
|
||||
ln -s ${libdir}/engines-3/loader_attic.so ${D}${PTEST_PATH}/engines/
|
||||
ln -s ${libdir}/ossl-modules/ ${D}${PTEST_PATH}/providers
|
||||
}
|
||||
|
||||
# Add the openssl.cnf file to the openssl-conf package. Make the libcrypto
|
||||
# package RRECOMMENDS on this package. This will enable the configuration
|
||||
# file to be installed for both the openssl-bin package and the libcrypto
|
||||
# package since the openssl-bin package depends on the libcrypto package.
|
||||
|
||||
PACKAGES =+ "libcrypto libssl openssl-conf ${PN}-engines ${PN}-misc ${PN}-ossl-module-legacy"
|
||||
|
||||
FILES:libcrypto = "${libdir}/libcrypto${SOLIBS}"
|
||||
FILES:libssl = "${libdir}/libssl${SOLIBS}"
|
||||
FILES:openssl-conf = "${sysconfdir}/ssl/openssl.cnf \
|
||||
${libdir}/ssl-3/openssl.cnf* \
|
||||
"
|
||||
FILES:${PN}-engines = "${libdir}/engines-3"
|
||||
# ${prefix} comes from what we pass into --prefix at configure time (which is used for INSTALLTOP)
|
||||
FILES:${PN}-engines:append:mingw32:class-nativesdk = " ${prefix}${libdir}/engines-3"
|
||||
FILES:${PN}-misc = "${libdir}/ssl-3/misc ${bindir}/c_rehash"
|
||||
FILES:${PN}-ossl-module-legacy = "${libdir}/ossl-modules/legacy.so"
|
||||
FILES:${PN} =+ "${libdir}/ssl-3/* ${libdir}/ossl-modules/"
|
||||
FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/openssl.sh"
|
||||
|
||||
CONFFILES:openssl-conf = "${sysconfdir}/ssl/openssl.cnf"
|
||||
|
||||
RRECOMMENDS:libcrypto += "openssl-conf ${PN}-ossl-module-legacy"
|
||||
RDEPENDS:${PN}-misc = "perl"
|
||||
RDEPENDS:${PN}-ptest += "openssl-bin perl perl-modules bash sed openssl-engines openssl-ossl-module-legacy"
|
||||
|
||||
RDEPENDS:${PN}-bin += "openssl-conf"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
CVE_PRODUCT = "openssl:openssl"
|
||||
|
||||
CVE_VERSION_SUFFIX = "alphabetical"
|
||||
|
||||
Reference in New Issue
Block a user