Skip to content

Commit 9e71da2

Browse files
authored
Merge pull request #10751 from aidangarske/tinytls13
Add --enable-tinytls13 TLS 1.3-only footprint profile. Merging with PRB-master-job failing. Failures are unrelated to this PR.
2 parents 6dae0c9 + fef29ab commit 9e71da2

24 files changed

Lines changed: 1102 additions & 26 deletions

.github/workflows/tinytls13.yml

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
name: Tiny TLS 1.3 Tests
2+
3+
# START OF COMMON SECTION
4+
on:
5+
push:
6+
branches: [ 'release/**' ]
7+
pull_request:
8+
types: [opened, synchronize, reopened, ready_for_review]
9+
branches: [ '*' ]
10+
schedule:
11+
- cron: '42 10 * * 1-5'
12+
13+
concurrency:
14+
group: ${{ github.workflow }}-${{ github.ref }}
15+
cancel-in-progress: true
16+
# END OF COMMON SECTION
17+
18+
permissions:
19+
contents: read
20+
21+
jobs:
22+
# Build + make check every --enable-tinytls13 spelling on one runner via
23+
# .github/scripts/parallel-make-check.py (see psk.yml for the pattern).
24+
make_check:
25+
name: make check
26+
if: ${{ (github.repository_owner == 'wolfssl') && (github.event_name != 'pull_request' || github.event.pull_request.draft == false) }}
27+
runs-on: ubuntu-24.04
28+
timeout-minutes: 10
29+
steps:
30+
- uses: actions/checkout@v5
31+
name: Checkout wolfSSL
32+
33+
- name: Install dependencies
34+
uses: ./.github/actions/install-apt-deps
35+
with:
36+
packages: autoconf automake libtool build-essential bubblewrap
37+
ghcr-debs-tag: ubuntu-24.04-minimal
38+
39+
- name: Set up ccache
40+
uses: ./.github/actions/ccache-setup
41+
with:
42+
workflow-id: tinytls13
43+
read-only: ${{ github.event_name == 'pull_request' }}
44+
max-size: 100M
45+
46+
- name: Allow unprivileged user namespaces (for bwrap)
47+
run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 || true
48+
49+
# Every tiny TLS 1.3 profile/adder spelling, so each is proven to build
50+
# and pass make check (which runs the TLS handshake test suite) out of
51+
# the box. Server is enabled where a config needs the server-side tests.
52+
# The psk-p256 and cert-rsaverify configs strip to combinations
53+
# (ECDHE-only ECC without certs, RSA verify only) that the OpenSSL-compat
54+
# API unit suite (coupled to examples via BUILD_TESTS) does not gate for.
55+
# Rather than carry test-harness edits for those, they build static with
56+
# --disable-examples, skip make check ("check": false), and instead run
57+
# wolfcrypt/test/testwolfcrypt plus examples/tls13/tls13_memio.c
58+
# (a self-contained in-memory TLS 1.3 handshake) for real crypto and
59+
# handshake verification.
60+
- name: Build and test all tinytls13 configs
61+
run: |
62+
cat > "$RUNNER_TEMP/tinytls13-configs.json" <<'EOF'
63+
[
64+
{"name": "tinytls13-psk-x25519", "minutes": 1,
65+
"configure": ["--enable-tinytls13=psk,server", "--disable-mlkem"]},
66+
{"name": "tinytls13-psk-p256", "minutes": 1, "check": false,
67+
"configure": ["--enable-tinytls13=psk,p256,server", "--enable-static", "--disable-shared", "--disable-examples", "--disable-mlkem"],
68+
"run": [["make", "wolfcrypt/test/testwolfcrypt"], ["./wolfcrypt/test/testwolfcrypt"],
69+
["cc", "-I.", "-I..", "../examples/tls13/tls13_memio.c", "src/.libs/libwolfssl.a", "-lm", "-o", "tls13_memio"],
70+
["./tls13_memio"]]},
71+
{"name": "tinytls13-psk-staticmem", "minutes": 1,
72+
"configure": ["--enable-tinytls13=psk,server,staticmem", "--disable-mlkem"]},
73+
{"name": "tinytls13-psk-mldsa", "minutes": 1,
74+
"configure": ["--enable-tinytls13=psk,server,mldsa", "--disable-mlkem"]},
75+
{"name": "tinytls13-psk-sha384", "minutes": 1,
76+
"configure": ["--enable-tinytls13=psk,server,sha384", "--disable-mlkem"]},
77+
{"name": "tinytls13-cert", "minutes": 1,
78+
"configure": ["--enable-tinytls13=cert,server", "--disable-mlkem"]},
79+
{"name": "tinytls13-cert-sha384", "minutes": 1,
80+
"configure": ["--enable-tinytls13=cert,server,sha384", "--disable-mlkem"]},
81+
{"name": "tinytls13-cert-mutualauth", "minutes": 1,
82+
"configure": ["--enable-tinytls13=cert,mutualauth,server", "--disable-mlkem"]},
83+
{"name": "tinytls13-cert-rsaverify", "minutes": 1, "check": false,
84+
"configure": ["--enable-tinytls13=cert,server,rsaverify", "--enable-static", "--disable-shared", "--disable-examples", "--disable-mlkem"],
85+
"run": [["make", "wolfcrypt/test/testwolfcrypt"], ["./wolfcrypt/test/testwolfcrypt"],
86+
["cc", "-I.", "-I..", "../examples/tls13/tls13_memio.c", "src/.libs/libwolfssl.a", "-lm", "-o", "tls13_memio"],
87+
["./tls13_memio"]]},
88+
{"name": "tinytls13-cert-mldsa", "minutes": 1,
89+
"configure": ["--enable-tinytls13=cert,server,mldsa", "--enable-static", "--disable-mlkem"],
90+
"run": [["cc", "-I.", "-I..", "../examples/tls13/tls13_memio.c", "src/.libs/libwolfssl.a", "-lm", "-o", "tls13_memio"],
91+
["./tls13_memio"]]},
92+
{"name": "tinytls13-psk-client-only", "minutes": 1,
93+
"configure": ["--enable-tinytls13=psk", "--disable-mlkem"]},
94+
{"name": "tinytls13-cert-client-only", "minutes": 1,
95+
"configure": ["--enable-tinytls13=cert", "--disable-mlkem"]},
96+
{"name": "tinytls13-psk-asm", "minutes": 1,
97+
"configure": ["--enable-tinytls13=psk,server,asm", "--disable-mlkem"]},
98+
{"name": "tinytls13-cert-asm", "minutes": 1,
99+
"configure": ["--enable-tinytls13=cert,server,asm", "--disable-mlkem"]},
100+
{"name": "tinytls13-cert-chacha", "minutes": 1, "check": false,
101+
"configure": ["--enable-tinytls13=cert,server", "--enable-static", "--disable-shared", "--disable-examples", "--disable-mlkem"],
102+
"cflags": "-DHAVE_CHACHA -DHAVE_POLY1305",
103+
"run": [["cc", "-I.", "-I..", "../examples/tls13/tls13_memio.c", "src/.libs/libwolfssl.a", "-lm", "-o", "tls13_memio"],
104+
["./tls13_memio", "TLS13-CHACHA20-POLY1305-SHA256"]]},
105+
{"name": "tinytls13-cert-aes256", "minutes": 1, "check": false,
106+
"configure": ["--enable-tinytls13=cert,server,sha384", "--enable-static", "--disable-shared", "--disable-examples", "--disable-mlkem"],
107+
"cflags": "-DWOLFSSL_AES_256",
108+
"run": [["cc", "-I.", "-I..", "../examples/tls13/tls13_memio.c", "src/.libs/libwolfssl.a", "-lm", "-o", "tls13_memio"],
109+
["./tls13_memio", "TLS13-AES256-GCM-SHA384"]]},
110+
{"name": "tinytls13-psk-mlkem", "minutes": 1,
111+
"configure": ["--enable-tinytls13=psk,server", "--enable-static"],
112+
"run": [["cc", "-I.", "-I..", "../examples/tls13/tls13_memio.c", "src/.libs/libwolfssl.a", "-lm", "-o", "tls13_memio"],
113+
["./tls13_memio", "-", "mlkem"]]},
114+
{"name": "tinytls13-cert-staticmem", "minutes": 1, "check": false,
115+
"configure": ["--enable-tinytls13=cert,server,staticmem", "--enable-static", "--disable-shared", "--disable-examples", "--disable-mlkem"],
116+
"run": [["make", "wolfcrypt/test/testwolfcrypt"], ["./wolfcrypt/test/testwolfcrypt"],
117+
["cc", "-I.", "-I..", "../examples/tls13/tls13_memio.c", "src/.libs/libwolfssl.a", "-lm", "-o", "tls13_memio"],
118+
["./tls13_memio"]]},
119+
{"name": "tinytls13-nomalloc", "minutes": 1, "check": false,
120+
"configure": ["--enable-tinytls13=psk,server,staticmem", "--enable-static", "--disable-shared", "--disable-examples", "--disable-crypttests", "--disable-mlkem"],
121+
"cflags": "-DWOLFSSL_NO_MALLOC"},
122+
{"name": "tinytls13-combo-cert-mutualauth-sha384", "minutes": 1,
123+
"configure": ["--enable-tinytls13=cert,mutualauth,server,sha384", "--disable-mlkem"]},
124+
{"name": "tinytls13-combo-cert-mldsa-sha384", "minutes": 1,
125+
"configure": ["--enable-tinytls13=cert,server,mldsa,sha384", "--enable-static", "--disable-mlkem"],
126+
"run": [["cc", "-I.", "-I..", "../examples/tls13/tls13_memio.c", "src/.libs/libwolfssl.a", "-lm", "-o", "tls13_memio"],
127+
["./tls13_memio"]]},
128+
{"name": "tinytls13-bare", "minutes": 1,
129+
"configure": ["--enable-tinytls13", "--disable-mlkem"]},
130+
{"name": "tinytls13-usersettings", "minutes": 1, "check": false,
131+
"user_settings": "examples/configs/user_settings_tinytls13.h",
132+
"configure": ["--enable-usersettings", "--enable-static", "--disable-shared", "--disable-examples", "--disable-crypttests"]}
133+
]
134+
EOF
135+
.github/scripts/parallel-make-check.py \
136+
${{ github.event_name == 'schedule' && '--build-only' || '' }} \
137+
--private-dir=certs \
138+
"$RUNNER_TEMP/tinytls13-configs.json"
139+
140+
- name: ccache stats
141+
if: always()
142+
run: ccache -s || true
143+
144+
- name: Upload logs on failure
145+
if: failure()
146+
uses: actions/upload-artifact@v6
147+
with:
148+
retention-days: 7
149+
name: tinytls13-logs
150+
path: |
151+
build-*/make-check.log
152+
build-*/test-suite.log
153+
build-*/config.log
154+
if-no-files-found: ignore

.wolfssl_known_macro_extras

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -954,6 +954,7 @@ WOLFSSL_TICKET_ENC_CBC_HMAC
954954
WOLFSSL_TICKET_ENC_CHACHA20_POLY1305
955955
WOLFSSL_TICKET_ENC_HMAC_SHA384
956956
WOLFSSL_TICKET_ENC_HMAC_SHA512
957+
WOLFSSL_TINY_TLS13_NO_DEFAULT_CURVE
957958
WOLFSSL_TI_CURRTIME
958959
WOLFSSL_TLS13_DRAFT
959960
WOLFSSL_TLS13_IGNORE_AEAD_LIMITS

certs/mldsa/ecc-leaf-mldsa44.pem

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
-----BEGIN CERTIFICATE-----
2+
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
60+
AAAACxkpPg==
61+
-----END CERTIFICATE-----

certs/mldsa/include.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ EXTRA_DIST += \
2828
certs/mldsa/mldsa44-key.pem \
2929
certs/mldsa/mldsa44-cert.pem \
3030
certs/mldsa/mldsa44-cert.der \
31+
certs/mldsa/ecc-leaf-mldsa44.pem \
3132
certs/mldsa/mldsa65-key.pem \
3233
certs/mldsa/mldsa65-cert.pem \
3334
certs/mldsa/mldsa65-cert.der \

certs/renewcerts.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,6 +1109,26 @@ EOF
11091109

11101110
echo "End of ML-DSA-${level} section"
11111111
done
1112+
1113+
# ECC P-256 leaf signed by the ML-DSA-44 CA; used by
1114+
# examples/tls13/tls13_memio.c to drive ML-DSA cert verify.
1115+
echo "Generating ecc-leaf-mldsa44.pem (P-256 leaf signed by ML-DSA-44 CA)..."
1116+
cat > mldsa/ecc-leaf.ext <<EOF
1117+
subjectKeyIdentifier = hash
1118+
authorityKeyIdentifier = keyid:always
1119+
EOF
1120+
"$OPENSSL3" req -new -key ecc-key.pem -subj "/CN=localhost" \
1121+
-out mldsa/ecc-leaf-mldsa44.csr
1122+
check_result $? "ecc-leaf-mldsa44 request"
1123+
1124+
"$OPENSSL3" x509 -req -in mldsa/ecc-leaf-mldsa44.csr \
1125+
-CA mldsa/mldsa44-cert.pem -CAkey mldsa/mldsa44-key.pem \
1126+
-CAcreateserial -days 3650 -extfile mldsa/ecc-leaf.ext \
1127+
-out mldsa/ecc-leaf-mldsa44.pem
1128+
check_result $? "ecc-leaf-mldsa44 certificate"
1129+
1130+
rm -f mldsa/ecc-leaf-mldsa44.csr mldsa/ecc-leaf.ext mldsa/mldsa44-cert.srl
1131+
echo "End of ecc-leaf-mldsa44 section"
11121132
echo "---------------------------------------------------------------------"
11131133
else
11141134
echo "Skipping ML-DSA cert generation (no OpenSSL 3.3+ with ML-DSA support found)"

certs/rsapss/ecc-leaf-rsapss.pem

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDNDCCAeigAwIBAgIUcQ837WSJJkEpm5bqUbCnYmh4tPcwQQYJKoZIhvcNAQEK
3+
MDSgDzANBglghkgBZQMEAgEFAKEcMBoGCSqGSIb3DQEBCDANBglghkgBZQMEAgEF
4+
AKIDAgEgMIGyMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UE
5+
BwwHQm96ZW1hbjEXMBUGA1UECgwOd29sZlNTTF9SU0FQU1MxEjAQBgNVBAsMCUNB
6+
LVJTQVBTUzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkB
7+
FhBpbmZvQHdvbGZzc2wuY29tMRcwFQYKCZImiZPyLGQBAQwHd29sZlNTTDAeFw0y
8+
NjA2MjkyMDQyMTFaFw0zNjA2MjYyMDQyMTFaMBQxEjAQBgNVBAMMCWxvY2FsaG9z
9+
dDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLszrEwnUErGSqUEwzzenzbbci3O
10+
lOor+ssgCTksFuhhAumvTdMCk5oxW5eSIX/wzxjakRECNIboIFgzC4A0idijQjBA
11+
MB0GA1UdDgQWBBRdXSbvrH42+Zt2FStKJQIj77KJMDAfBgNVHSMEGDAWgBSeDODT
12+
37ZL8xljXMpsk4aiFFORMTBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAQUA
13+
oRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUAogMCASADggEBAFijyXPfkDdV
14+
J/cZg6W5e9pRHpeXlxHLbcX8tcsGE9/la9rLcUtqSi5pWgK4OehwlrKrzufFjkZr
15+
JfyLTjYMuYkkv4NStJZD3XOYRZ5/qIcZX3U2b2Xm3GKW/H7vnuLKrd3wKed315+z
16+
FCYkKPIS04fKTGqb03ZyClCAmzHv2YPpezHsIXJGSJh0YsVsdM/WDKEjuOlL0CRm
17+
UyTsrMNZjqlvMhgGP5GsyTOEbYM8KvfkPn9xyzw7Dmwz4+BAc1LvRoBkS+UAgiZB
18+
gLn9OK5d2mRlcwmgMGDJQm1vaSrXZ/eQBrdVLUGLChjWvw+rPouAZaZVbBhE8q1C
19+
UaqgwTLH/tY=
20+
-----END CERTIFICATE-----

certs/rsapss/include.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44

55
EXTRA_DIST += \
6+
certs/rsapss/ecc-leaf-rsapss.pem \
67
certs/rsapss/ca-rsapss.der \
78
certs/rsapss/ca-rsapss.pem \
89
certs/rsapss/ca-rsapss-key.der \

certs/rsapss/renew-rsapss-certs.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,4 +207,24 @@ mv tmp.pem client-3072-rsapss.pem
207207
echo "End of section"
208208
echo "---------------------------------------------------------------------"
209209

210+
############################################################
211+
###### ecc-leaf-rsapss.pem: P-256 leaf signed by ca ########
212+
############################################################
213+
# Drives RSA-PSS cert verify with a tiny ECC leaf key in
214+
# examples/tls13/tls13_memio.c.
215+
echo "Updating ecc-leaf-rsapss.pem"
216+
echo ""
217+
cat > ecc-leaf.ext <<EOF
218+
subjectKeyIdentifier = hash
219+
authorityKeyIdentifier = keyid:always
220+
EOF
221+
openssl req -new -key ../ecc-key.pem -subj "/CN=localhost" -out ecc-leaf-rsapss.csr
222+
check_result $? "Generate request"
223+
224+
openssl x509 -req -in ecc-leaf-rsapss.csr -days 3650 -extfile ecc-leaf.ext -CA ca-rsapss.pem -CAkey ca-rsapss-priv.pem -sigopt rsa_padding_mode:pss -CAcreateserial -out ecc-leaf-rsapss.pem
225+
check_result $? "Generate certificate"
226+
rm -f ecc-leaf-rsapss.csr ecc-leaf.ext ca-rsapss.srl
227+
echo "End of section"
228+
echo "---------------------------------------------------------------------"
229+
210230

0 commit comments

Comments
 (0)