Skip to content

Commit cdcd457

Browse files
author
gojimmypi
committed
Sync to wolfsm version
1 parent 02c314f commit cdcd457

1 file changed

Lines changed: 28 additions & 92 deletions

File tree

.github/workflows/sm-cipher.yml

Lines changed: 28 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,13 @@ on:
2323
branches: [ '**', 'master', 'main', 'release/**' ]
2424
paths:
2525
- '.github/workflows/sm-cipher.yml'
26-
- 'src/**'
27-
- 'wolfcrypt/**'
28-
- 'wolfssl/**'
26+
- './**'
2927
pull_request:
3028
# Run after merge on protected branches
3129
branches: [ "main", "master", "release/**" ]
3230
paths:
3331
- '.github/workflows/sm-cipher.yml'
34-
- 'src/**'
35-
- 'wolfcrypt/**'
36-
- 'wolfssl/**'
32+
- './**'
3733
workflow_dispatch:
3834

3935
concurrency:
@@ -43,7 +39,6 @@ concurrency:
4339

4440
jobs:
4541
build:
46-
# TODO:
4742
# if: github.repository_owner == 'wolfssl'
4843
runs-on: ubuntu-latest
4944
env:
@@ -74,10 +69,13 @@ jobs:
7469
7570
echo "GITHUB_ENV=$GITHUB_ENV"
7671
72+
git status
73+
7774
echo "contents..."
7875
# typically "/home/runner/work/wolfssl/wolfssl" contains wolfssl source
7976
pwd
8077
ls
78+
# ** END ** Set job environment variables
8179
8280
- name: Get wolfsm
8381
run: |
@@ -140,119 +138,57 @@ jobs:
140138
pwd
141139
ls
142140
143-
# Done with install wolfsm
141+
# ** END ** Install wolfsm
144142
145143
- name: Compile wolfssl
146144
run: |
147145
# Compile fresh wolfSSL with wolfsm code
148146
149147
# We're already in $WOLFSSL_ROOT
150-
151148
echo "Current directory: $PWD"
152149
153150
./autogen.sh
154151
./configure --enable-sm3 --enable-sm4-ecb --enable-sm4-cbc --enable-sm4-ctr --enable-sm4-gcm --enable-sm4-ccm --enable-sm2
155152
make
156-
# Done with compile wolfssl
157153
158-
- name: Test SM wolfcrypt
159-
shell: bash
154+
# ** END ** Compile wolfssl
155+
156+
- name: make check
160157
run: |
161-
# Run client / server tests from cloned wolfssl directory
158+
# make check
162159
163-
cd "$WOLFSSL_ROOT"
160+
# We're already in $WOLFSSL_ROOT
164161
echo "Current directory: $PWD"
165162
166-
set -euo pipefail
163+
make check
167164
168-
./wolfcrypt/test/testwolfcrypt
165+
# ** END ** make check
169166
170-
- name: Run SM benchmark
171-
shell: bash
167+
- name: Unit test
172168
run: |
173-
# Run client / server tests from cloned wolfssl directory
169+
# Run unit.test ./tests/test-sm2.conf
174170
175-
cd "$WOLFSSL_ROOT"
171+
# We're already in $WOLFSSL_ROOT
176172
echo "Current directory: $PWD"
177173
178-
set -euo pipefail
174+
echo "looking for test-sm2.conf"
175+
ls ./tests/test-sm2.conf
179176
180-
./wolfcrypt/benchmark/benchmark
177+
echo "Run unit test: ./tests/unit.test ./tests/test-sm2.conf"
178+
./tests/unit.test ./tests/test-sm2.conf
179+
180+
# ** END ** Unit test
181181
182-
- name: Test SM client/server (TLS 1.2 and 1.3)
182+
- name: Run SM benchmark
183183
shell: bash
184184
run: |
185-
# Run client / server tests from cloned wolfssl directory
185+
# Run benchmark from cloned wolfssl directory
186186
187-
cd "$WOLFSSL_ROOT"
187+
# We're already in $WOLFSSL_ROOT
188188
echo "Current directory: $PWD"
189189
190190
set -euo pipefail
191191
192-
# Parameterized cases
193-
cases=(
194-
"-v 3 -l ECDHE-ECDSA-SM4-CBC-SM3"
195-
"-v 3 -l ECDHE-ECDSA-SM4-GCM-SM3"
196-
"-v 3 -l ECDHE-ECDSA-SM4-CCM-SM3"
197-
"-v 4 -l TLS13-SM4-GCM-SM3"
198-
"-v 4 -l TLS13-SM4-CCM-SM3 "
199-
)
200-
201-
srv_bin=./examples/server/server
202-
cli_bin=./examples/client/client
203-
204-
srv_cert=./certs/sm2/server-sm2.pem
205-
srv_key=./certs/sm2/server-sm2-priv.pem
206-
cli_cert=./certs/sm2/client-sm2.pem
207-
cli_key=./certs/sm2/client-sm2-priv.pem
208-
ca_root=./certs/sm2/root-sm2.pem
209-
210-
# Use an explicit port so we can start/stop cleanly
211-
port=11111
212-
213-
# Ensure background server is cleaned up even on failure
214-
cleanup() { pkill -P $$ >/dev/null 2>&1 || true; }
215-
trap cleanup EXIT
216-
217-
for args in "${cases[@]}"; do
218-
echo "=== Testing ${args} on port ${port} ==="
219-
220-
# Start server in background; capture PID
221-
"${srv_bin}" ${args} \
222-
-c "${srv_cert}" -k "${srv_key}" \
223-
-A "${cli_cert}" -V \
224-
-p "${port}" &
225-
srv_pid=$!
226-
227-
# Wait briefly for the server to listen
228-
if command -v ss >/dev/null 2>&1; then
229-
for _ in {1..40}; do
230-
ss -ltn | grep -q ":${port} " && break
231-
echo "Waiting for server on port ${port} ..."
232-
sleep 0.25
233-
done
234-
else
235-
sleep 2
236-
fi
237-
238-
# Run client with timeout so CI does not hang
239-
set +e
240-
timeout 60s "${cli_bin}" ${args} \
241-
-h 127.0.0.1 -p "${port}" \
242-
-c "${cli_cert}" \
243-
-k "${cli_key}" \
244-
-A "${ca_root}" -C
245-
rc=$?
246-
set -e
247-
248-
# Graceful shutdown: only kill if still running; keep quiet
249-
if kill -0 "${srv_pid}" >/dev/null 2>&1; then
250-
kill "${srv_pid}" # >/dev/null 2>&1 || true
251-
fi
252-
wait "${srv_pid}" # >/dev/null 2>&1 || true
253-
254-
if [ ${rc} -ne 0 ]; then
255-
echo "Client failed for: ${args} (rc=${rc})"
256-
exit ${rc}
257-
fi
258-
done
192+
./wolfcrypt/benchmark/benchmark
193+
194+
# ** END ** un SM benchmark

0 commit comments

Comments
 (0)