Skip to content

Commit 2b60f79

Browse files
committed
Improve support for tcpdump; integ test
1 parent e20ca5c commit 2b60f79

File tree

3 files changed

+49
-5
lines changed

3 files changed

+49
-5
lines changed

crypto/cipher_extra/cipher_extra.c

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,16 +106,26 @@ const EVP_CIPHER *EVP_get_cipherbynid(int nid) {
106106
return NULL;
107107
}
108108

109+
#define TCPDUMP_ALIASES_SIZE (3)
110+
static const char * const TCPDUMP_ALIASES[TCPDUMP_ALIASES_SIZE][2] = {
111+
{"3des", "des-ede3-cbc"},
112+
{"aes256", "aes-256-cbc"},
113+
{"aes128", "aes-128-cbc"}
114+
};
115+
109116
const EVP_CIPHER *EVP_get_cipherbyname(const char *name) {
110117
if (name == NULL) {
111118
return NULL;
112119
}
113120

114-
// This is not a name used by OpenSSL, but tcpdump registers it with
121+
// These are not names used by OpenSSL, but tcpdump registers it with
115122
// |EVP_add_cipher_alias|. Our |EVP_add_cipher_alias| is a no-op, so we
116123
// support the name here.
117-
if (OPENSSL_strcasecmp(name, "3des") == 0) {
118-
name = "des-ede3-cbc";
124+
for(size_t i = 0; i < TCPDUMP_ALIASES_SIZE; i++) {
125+
if (OPENSSL_strcasecmp(name, TCPDUMP_ALIASES[i][0]) == 0) {
126+
name = TCPDUMP_ALIASES[i][1];
127+
break;
128+
}
119129
}
120130

121131
for (size_t i = 0; i < OPENSSL_ARRAY_SIZE(kCiphers); i++) {

tests/ci/integration/run_tcpdump_integration.sh

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ source tests/ci/common_posix_setup.sh
2020
# - AWS_LC_INSTALL_FOLDER
2121

2222
# Assumes script is executed from the root of aws-lc directory
23+
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
2324
SCRATCH_FOLDER=${SYS_ROOT}/"TCPDUMP_SCRATCH"
2425
TCPDUMP_SRC_FOLDER="${SCRATCH_FOLDER}/tcpdump"
2526
TCPDUMP_INSTALL_FOLDER="${SCRATCH_FOLDER}/tcpdump-install"
@@ -32,9 +33,12 @@ rm -rf "${SCRATCH_FOLDER:?}"/*
3233
pushd "${SCRATCH_FOLDER}"
3334

3435
function tcpdump_build() {
36+
git apply "${SCRIPT_DIR}/tcpdump_patch/aws-lc-tcpdump.patch"
3537
autoreconf -fi
36-
./configure --prefix="${TCPDUMP_INSTALL_FOLDER}" --with-openssl="${AWS_LC_INSTALL_FOLDER}"
38+
./configure --prefix="${TCPDUMP_INSTALL_FOLDER}" --with-crypto="${AWS_LC_INSTALL_FOLDER}"
3739
make -j "${NUM_CPU_THREADS}"
40+
make install
41+
ldd "${TCPDUMP_INSTALL_FOLDER}/bin/tcpdump" | grep "${AWS_LC_INSTALL_FOLDER}/lib/libcrypto.so" || exit 1
3842
}
3943

4044
function tcpdump_run_tests() {
@@ -47,11 +51,14 @@ git clone https://github.com/the-tcpdump-group/tcpdump.git "${TCPDUMP_SRC_FOLDER
4751
mkdir -p "${AWS_LC_BUILD_FOLDER}" "${AWS_LC_INSTALL_FOLDER}" "${TCPDUMP_INSTALL_FOLDER}"
4852
ls
4953

50-
aws_lc_build "${SRC_ROOT}" "${AWS_LC_BUILD_FOLDER}" "${AWS_LC_INSTALL_FOLDER}"
54+
aws_lc_build "${SRC_ROOT}" "${AWS_LC_BUILD_FOLDER}" "${AWS_LC_INSTALL_FOLDER}" -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=1
55+
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}:${AWS_LC_INSTALL_FOLDER}/lib/"
5156

5257
pushd "${TCPDUMP_SRC_FOLDER}"
5358
tcpdump_build
5459
tcpdump_run_tests
5560
popd
5661

5762
popd
63+
64+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
From b4cb0cb3e12575240a1cb6a081e9ec4376d64f42 Mon Sep 17 00:00:00 2001
2+
From: Justin W Smith <[email protected]>
3+
Date: Fri, 8 Dec 2023 09:42:38 -0500
4+
Subject: [PATCH] Configure check for AES_cbc_encrypt
5+
6+
---
7+
configure.ac | 4 ++--
8+
1 file changed, 2 insertions(+), 2 deletions(-)
9+
10+
diff --git a/configure.ac b/configure.ac
11+
index 4e0dc2de..b215daf3 100644
12+
--- a/configure.ac
13+
+++ b/configure.ac
14+
@@ -868,8 +868,8 @@ if test "$want_libcrypto" != "no"; then
15+
#
16+
AC_CHECK_HEADER(openssl/crypto.h,
17+
[
18+
- AC_CHECK_LIB(crypto, DES_cbc_encrypt)
19+
- if test "$ac_cv_lib_crypto_DES_cbc_encrypt" = "yes"; then
20+
+ AC_CHECK_LIB(crypto, AES_cbc_encrypt)
21+
+ if test "$ac_cv_lib_crypto_AES_cbc_encrypt" = "yes"; then
22+
AC_CHECK_HEADERS(openssl/evp.h)
23+
#
24+
# OK, then:
25+
--
26+
2.39.2 (Apple Git-143)
27+

0 commit comments

Comments
 (0)