Skip to content

Commit 24d28b3

Browse files
authored
Merge pull request #5 from bandi13/fixCompilation
Add in fixes to wp-cs-tests.sh
2 parents 049b679 + 4fa1a7c commit 24d28b3

4 files changed

Lines changed: 58 additions & 223 deletions

File tree

scripts/wp-cs-test.sh

Lines changed: 53 additions & 221 deletions
Original file line numberDiff line numberDiff line change
@@ -21,34 +21,24 @@
2121

2222
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
2323
CERT_DIR=$SCRIPT_DIR/../certs
24-
LOG_DIR=$SCRIPT_DIR/log
25-
LOG_FILE=$LOG_DIR/wp-cs-test.log
26-
LOG_SERVER=$LOG_DIR/wp-cs-test-server.log
27-
LOG_WP_SERVER=$LOG_DIR/wp-cs-test-wp-server.log
28-
LOG_CLIENT=$LOG_DIR/wp-cs-test-client.log
29-
TMP_LOG=$LOG_DIR/wp-cs-test-tmp.log
24+
LOG_FILE=$SCRIPT_DIR/wp-cs-test.log
3025

3126
OPENSSL_SERVER_PID=-1
32-
WP_OPENSSL_SERVER_PID=-1
3327

34-
kill_servers() {
35-
SERVER_PID=$OPENSSL_SERVER_PID
36-
check_process_running
37-
if [ "$PS_EXIT" = "0" ]; then
38-
(kill -INT $SERVER_PID) >/dev/null 2>&1
39-
fi
28+
set -o pipefail # pass failures up the pipe
29+
prepend() { # Usage: cmd 2>&1 | prepend "sometext "
30+
while read line; do echo "${1}${line}"; done
31+
}
4032

41-
SERVER_PID=$WP_OPENSSL_SERVER_PID
42-
check_process_running
43-
if [ "$PS_EXIT" = "0" ]; then
44-
(kill -INT $SERVER_PID) >/dev/null 2>&1
33+
kill_servers() {
34+
if [ $(check_process_running $OPENSSL_SERVER_PID) = "0" ]; then
35+
(kill -9 $OPENSSL_SERVER_PID) >/dev/null 2>&1
4536
fi
4637
}
4738

4839
do_cleanup() {
40+
sleep 0.5 # flush buffers
4941
kill_servers
50-
51-
rm -f $TMP_LOG
5242
}
5343

5444
do_trap() {
@@ -58,7 +48,6 @@ do_trap() {
5848
exit 1
5949
}
6050

61-
6251
trap do_trap INT TERM
6352

6453
TLS13_ALL_CIPHERS="TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256:TLS_AES_128_CCM_8_SHA256"
@@ -144,245 +133,83 @@ TLS1_PSK_CIPHERS=(
144133
)
145134

146135
check_process_running() {
147-
ps -p $SERVER_PID > /dev/null
148-
PS_EXIT=$?
136+
ps -p $1 > /dev/null
137+
echo $?
149138
}
150139

151140
# need a unique port since may run the same time as testsuite
152141
generate_port() {
153-
port=$(($(od -An -N2 /dev/random) % (65535-49512) + 49512))
154-
}
155-
156-
start_openssl_server() {
157-
generate_port
158-
export OPENSSL_PORT=$port
159-
160-
($OPENSSL_BIN s_server -www \
161-
-cert $CERT_DIR/server-cert.pem -key $CERT_DIR/server-key.pem \
162-
-dcert $CERT_DIR/server-ecc.pem -dkey $CERT_DIR/ecc-key.pem \
163-
-accept $OPENSSL_PORT $OPENSSL_ALL_CIPHERS \
164-
>$LOG_SERVER 2>&1
165-
) &
166-
OPENSSL_SERVER_PID=$!
167-
168-
sleep 0.1
169-
170-
SERVER_PID=$OPENSSL_SERVER_PID
171-
check_process_running
172-
if [ "$PS_EXIT" != "0" ]; then
173-
printf "OpenSSL server failed to start\n"
174-
do_cleanup
175-
exit 1
176-
fi
177-
}
178-
179-
start_wp_openssl_server() {
180-
generate_port
181-
export WP_OPENSSL_PORT=$port
182-
183-
($OPENSSL_BIN s_server -www \
184-
-provider-path $WOLFPROV_PATH -provider $WOLFPROV_NAME \
185-
-cert $CERT_DIR/server-cert.pem -key $CERT_DIR/server-key.pem \
186-
-dcert $CERT_DIR/server-ecc.pem -dkey $CERT_DIR/ecc-key.pem \
187-
-accept $WP_OPENSSL_PORT $OPENSSL_ALL_CIPHERS \
188-
>$LOG_WP_SERVER 2>&1
189-
) &
190-
WP_OPENSSL_SERVER_PID=$!
191-
192-
sleep 0.1
193-
194-
SERVER_PID=$WP_OPENSSL_SERVER_PID
195-
check_process_running
196-
if [ "$PS_EXIT" != "0" ]; then
197-
printf "server failed to start\n"
198-
printf "OpenSSL server using wolfProvider failed to start\n"
199-
do_cleanup
200-
exit 1
201-
fi
142+
echo $(($(od -An -N2 /dev/random) % (65535-49512) + 49512))
202143
}
203-
start_openssl_server() {
204-
generate_port
205-
export OPENSSL_PORT=$port
206144

207-
($OPENSSL_BIN s_server -www \
145+
start_openssl_server() { # usage: start_openssl_server [extraArgs]
146+
stdbuf -oL -eL $OPENSSL_BIN s_server -www $1 \
208147
-cert $CERT_DIR/server-cert.pem -key $CERT_DIR/server-key.pem \
209148
-dcert $CERT_DIR/server-ecc.pem -dkey $CERT_DIR/ecc-key.pem \
210149
-accept $OPENSSL_PORT $OPENSSL_ALL_CIPHERS \
211-
>$LOG_SERVER 2>&1
212-
) &
213-
OPENSSL_SERVER_PID=$!
150+
2>&1 | prepend "[server] " >>$LOG_FILE &
151+
OPENSSL_SERVER_PID=$(($! - 1))
214152

215153
sleep 0.1
216154

217-
SERVER_PID=$OPENSSL_SERVER_PID
218-
check_process_running
219-
if [ "$PS_EXIT" != "0" ]; then
155+
if [ $(check_process_running $OPENSSL_SERVER_PID) != "0" ]; then
220156
printf "OpenSSL server failed to start\n"
221157
do_cleanup
222158
exit 1
223159
fi
224160
}
225161

226-
start_wp_openssl_server() {
227-
generate_port
228-
export WP_OPENSSL_PORT=$port
229-
230-
($OPENSSL_BIN s_server -www \
231-
-provider-path $WOLFPROV_PATH -provider $WOLFPROV_NAME \
232-
-cert $CERT_DIR/server-cert.pem -key $CERT_DIR/server-key.pem \
233-
-dcert $CERT_DIR/server-ecc.pem -dkey $CERT_DIR/ecc-key.pem \
234-
-accept $WP_OPENSSL_PORT $OPENSSL_ALL_CIPHERS \
235-
>$LOG_WP_SERVER 2>&1
236-
) &
237-
WP_OPENSSL_SERVER_PID=$!
238-
239-
sleep 0.1
240-
241-
SERVER_PID=$WP_OPENSSL_SERVER_PID
242-
check_process_running
243-
if [ "$PS_EXIT" != "0" ]; then
244-
printf "server failed to start\n"
245-
printf "OpenSSL server using wolfProvider failed to start\n"
246-
do_cleanup
247-
exit 1
248-
fi
249-
}
250-
251-
do_wp_client() {
162+
do_client() { # usage: do_client [extraArgs]
252163
printf "\t\t$CIPHER ... "
164+
printf "\n$CIPHER ...\n" >>$LOG_FILE
253165
if [ "$TLS_VERSION" != "-tls1_3" ]; then
254166
(echo -n | \
255-
$OPENSSL_BIN s_client \
256-
-provider-path $WOLFPROV_PATH \
257-
-provider $WOLFPROV_NAME \
167+
stdbuf -oL -eL $OPENSSL_BIN s_client $1 \
258168
-cipher $CIPHER $TLS_VERSION \
259-
-curves $CURVES \
260169
-connect localhost:$OPENSSL_PORT \
261-
>$TMP_LOG 2>&1
262-
)
263-
else
264-
(echo -n | \
265-
$OPENSSL_BIN s_client \
266-
-provider-path $WOLFPROV_PATH \
267-
-provider $WOLFPROV_NAME \
268-
-ciphersuites $CIPHER $TLS_VERSION \
269170
-curves $CURVES \
270-
-connect localhost:$OPENSSL_PORT \
271-
>$TMP_LOG 2>&1
272-
)
273-
fi
274-
if [ "$?" = "0" ]; then
275-
printf "pass\n"
276-
else
277-
printf "fail\n"
278-
FAIL=$((FAIL+1))
279-
fi
280-
281-
#check_log
282-
283-
cat $TMP_LOG >>$LOG_CLIENT
284-
}
285-
286-
do_client() {
287-
printf "\t\t$CIPHER ... "
288-
if [ "$TLS_VERSION" != "-tls1_3" ]; then
289-
(echo -n | \
290-
$OPENSSL_BIN s_client \
291-
-cipher $CIPHER $TLS_VERSION \
292-
-connect localhost:$WP_OPENSSL_PORT \
293-
-curves $CURVES \
294-
>>$LOG_CLIENT 2>&1
171+
2>&1 | prepend "[client] " >>$LOG_FILE
295172
)
296173
else
297174
(echo -n | \
298-
$OPENSSL_BIN s_client \
175+
stdbuf -oL -eL $OPENSSL_BIN s_client $1 \
299176
-ciphersuites $CIPHER $TLS_VERSION \
300-
-connect localhost:$WP_OPENSSL_PORT \
177+
-connect localhost:$OPENSSL_PORT \
301178
-curves $CURVES \
302-
>>$LOG_CLIENT 2>&1
179+
2>&1 | prepend "[client] " >>$LOG_FILE
303180
)
304181
fi
305182
if [ "$?" = "0" ]; then
306-
printf "pass\n"
183+
printf "pass\n" | tee -a $LOG_FILE
307184
else
308-
printf "fail\n"
185+
printf "fail\n" | tee -a $LOG_FILE
309186
FAIL=$((FAIL+1))
310187
fi
311-
312-
NEW_LINES=`wc -l $LOG_WP_SERVER | awk '{print $1}'`
313-
tail --lines=$((NEW_LINES-LOG_LINES)) $LOG_WP_SERVER >$TMP_LOG
314-
315-
#check_log
316-
317-
LOG_LINES=$NEW_LINES
318188
}
319189

320-
do_wp_client_test() {
321-
printf "\tClient testing\n"
322-
CHECK_CLIENT=1
323-
CHECK_SERVER=
324-
325-
#TLS_VERSION=-tls1
326-
#printf "\t$TLS_VERSION\n"
327-
#for CIPHER in ${TLS1_CIPHERS[@]}
328-
#do
329-
# do_wp_client
330-
#done
331-
332-
#TLS_VERSION=-tls1_1
333-
#printf "\t$TLS_VERSION\n"
334-
#for CIPHER in ${TLS1_CIPHERS[@]}
335-
#do
336-
# do_wp_client
337-
#done
338-
339-
TLS_VERSION=-tls1_2
340-
printf "\t$TLS_VERSION\n"
341-
for CIPHER in ${TLS12_CIPHERS[@]}
342-
do
343-
do_wp_client
344-
done
345-
346-
TLS_VERSION=-tls1_3
347-
printf "\t$TLS_VERSION\n"
348-
for CIPHER in ${TLS13_CIPHERS[@]}
349-
do
350-
do_wp_client
351-
done
352-
}
353-
354-
do_client_test() {
355-
printf "\tServer testing\n"
356-
CHECK_CLIENT=
357-
CHECK_SERVER=1
358-
LOG_LINES=0
359-
360-
#TLS_VERSION=-tls1
361-
#printf "\t$TLS_VERSION\n"
362-
#for CIPHER in ${TLS1_CIPHERS[@]}
363-
#do
364-
# do_client
365-
#done
366-
367-
#TLS_VERSION=-tls1_1
368-
#printf "\t$TLS_VERSION\n"
369-
#for CIPHER in ${TLS1_CIPHERS[@]}
370-
#do
371-
# do_client
372-
#done
190+
do_client_test() { # usage: do_client_test [extraArgs]
191+
# TLS_VERSION=-tls1
192+
# printf "\t$TLS_VERSION\n" | tee -a $LOG_FILE
193+
# for CIPHER in ${TLS1_CIPHERS[@]}; do
194+
# do_client "$1"
195+
# done
196+
#
197+
# TLS_VERSION=-tls1_1
198+
# printf "\t$TLS_VERSION\n" | tee -a $LOG_FILE
199+
# for CIPHER in ${TLS1_CIPHERS[@]}; do
200+
# do_client "$1"
201+
# done
373202

374203
TLS_VERSION=-tls1_2
375-
printf "\t$TLS_VERSION\n"
376-
for CIPHER in ${TLS12_CIPHERS[@]}
377-
do
378-
do_client
204+
printf "\t$TLS_VERSION\n" | tee -a $LOG_FILE
205+
for CIPHER in ${TLS12_CIPHERS[@]}; do
206+
do_client "$1"
379207
done
380208

381209
TLS_VERSION=-tls1_3
382-
printf "\t$TLS_VERSION\n"
383-
for CIPHER in ${TLS13_CIPHERS[@]}
384-
do
385-
do_client
210+
printf "\t$TLS_VERSION\n" | tee -a $LOG_FILE
211+
for CIPHER in ${TLS13_CIPHERS[@]}; do
212+
do_client "$1"
386213
done
387214
}
388215

@@ -414,16 +241,21 @@ FAIL=0
414241
WOLFPROV_NAME="libwolfprov"
415242
WOLFPROV_PATH=$PWD/.libs
416243

417-
rm -f $LOG_CLIENT
418-
419244
CURVES=prime256v1
420245
#CURVES=X25519
421246
OPENSSL_ALL_CIPHERS="-cipher ALL -ciphersuites $TLS13_ALL_CIPHERS"
247+
OPENSSL_PORT=$(generate_port)
248+
249+
printf "\tClient testing\n" | tee $LOG_FILE
422250
start_openssl_server
423-
do_wp_client_test
424-
start_wp_openssl_server
251+
do_client_test "-provider-path $WOLFPROV_PATH -provider $WOLFPROV_NAME"
252+
kill_servers
253+
254+
printf "\tServer testing\n" | tee -a $LOG_FILE
255+
start_openssl_server "-provider-path $WOLFPROV_PATH -provider $WOLFPROV_NAME"
425256
do_client_test
426257
kill_servers
258+
427259
do_cleanup
428260

429261
if [ "$FAIL" = "0" ]; then

src/wp_ecc_kmgmt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1486,7 +1486,7 @@ static int wp_ecc_gen_set_template(wp_EccGenCtx* ctx, wp_Ecc* ecc)
14861486
}
14871487
if (ok) {
14881488
XSTRNCPY(ctx->curveName, name, sizeof(ctx->curveName)-1);
1489-
ctx->curveName[WP_MAX_EC_GROUP_NAME_SZ-1] = '\0';
1489+
ctx->curveName[sizeof(ctx->curveName)-1] = '\0';
14901490
}
14911491

14921492
return ok;

src/wp_ecx_kmgmt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -730,7 +730,7 @@ static int wp_ecx_validate_pub_key(const wp_Ecx* ecx)
730730
{
731731
int ok = 1;
732732
int rc;
733-
unsigned char key[WP_MAX_KEY_SIZE];
733+
unsigned char key[WP_MAX_KEY_SIZE] = {0};
734734
word32 len = ecx->data->len;
735735

736736
ok &= ecx->hasPub;

0 commit comments

Comments
 (0)