Skip to content

Commit 21d7063

Browse files
Merge branch csr into 'master'
1 parent 1d32ff2 commit 21d7063

File tree

16 files changed

+1337
-631
lines changed

16 files changed

+1337
-631
lines changed

.gitignore

+5-5
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,11 @@ cov-int
112112
cyassl.tgz
113113
*.log
114114
*.trs
115-
IDE\MDK-ARM\Projects/
116-
IDE\MDK-ARM\STM32F2xx_StdPeriph_Lib/inc
117-
IDE\MDK-ARM\STM32F2xx_StdPeriph_Lib/src
118-
IDE\MDK-ARM\LPC43xx\Drivers/
119-
IDE\MDK-ARM\LPC43xx\LPC43xx/
115+
IDE/MDK-ARM/Projects/
116+
IDE/MDK-ARM/STM32F2xx_StdPeriph_Lib/inc
117+
IDE/MDK-ARM/STM32F2xx_StdPeriph_Lib/src
118+
IDE/MDK-ARM/LPC43xx/Drivers/
119+
IDE/MDK-ARM/LPC43xx/LPC43xx/
120120
*.gcno
121121
*.gcda
122122
*.gcov

configure.ac

+117-96
Original file line numberDiff line numberDiff line change
@@ -1655,6 +1655,26 @@ then
16551655
AM_CFLAGS="$AM_CFLAGS -DHAVE_TLS_EXTENSIONS -DHAVE_TRUNCATED_HMAC"
16561656
fi
16571657

1658+
# Certificate Status Request : a.k.a. OCSP Stapling
1659+
AC_ARG_ENABLE([ocspstapling],
1660+
[AS_HELP_STRING([--enable-ocspstapling],[Enable Certificate Status Request - a.k.a. OCSP Stapling (default: disabled)])],
1661+
[ ENABLED_CERTIFICATE_STATUS_REQUEST=$enableval ],
1662+
[ ENABLED_CERTIFICATE_STATUS_REQUEST=no ]
1663+
)
1664+
1665+
if test "x$ENABLED_CERTIFICATE_STATUS_REQUEST" = "xyes"
1666+
then
1667+
AM_CFLAGS="$AM_CFLAGS -DHAVE_TLS_EXTENSIONS -DHAVE_CERTIFICATE_STATUS_REQUEST"
1668+
1669+
# Requires OCSP make sure on
1670+
if test "x$ENABLED_OCSP" = "xno"
1671+
then
1672+
ENABLED_OCSP="yes"
1673+
AM_CFLAGS="$AM_CFLAGS -DHAVE_OCSP"
1674+
AM_CONDITIONAL([BUILD_OCSP], [test "x$ENABLED_OCSP" = "xyes"])
1675+
fi
1676+
fi
1677+
16581678
# Renegotiation Indication - (FAKE Secure Renegotiation)
16591679
AC_ARG_ENABLE([renegotiation-indication],
16601680
[AS_HELP_STRING([--enable-renegotiation-indication],[Enable Renegotiation Indication (default: disabled)])],
@@ -2613,103 +2633,104 @@ done < $OPTION_FILE
26132633
echo "---"
26142634
echo "Configuration summary for $PACKAGE_NAME version $VERSION"
26152635
echo ""
2616-
echo " * Installation prefix: $prefix"
2617-
echo " * System type: $host_vendor-$host_os"
2618-
echo " * Host CPU: $host_cpu"
2619-
echo " * C Compiler: $CC"
2620-
echo " * C Flags: $CFLAGS"
2621-
echo " * C++ Compiler: $CXX"
2622-
echo " * C++ Flags: $CXXFLAGS"
2623-
echo " * CPP Flags: $CPPFLAGS"
2624-
echo " * CCAS Flags: $CCASFLAGS"
2625-
echo " * LIB Flags: $LIB"
2626-
echo " * Debug enabled: $ax_enable_debug"
2627-
echo " * Warnings as failure: $ac_cv_warnings_as_errors"
2628-
echo " * make -j: $enable_jobserver"
2629-
echo " * VCS checkout: $ac_cv_vcs_checkout"
2636+
echo " * Installation prefix: $prefix"
2637+
echo " * System type: $host_vendor-$host_os"
2638+
echo " * Host CPU: $host_cpu"
2639+
echo " * C Compiler: $CC"
2640+
echo " * C Flags: $CFLAGS"
2641+
echo " * C++ Compiler: $CXX"
2642+
echo " * C++ Flags: $CXXFLAGS"
2643+
echo " * CPP Flags: $CPPFLAGS"
2644+
echo " * CCAS Flags: $CCASFLAGS"
2645+
echo " * LIB Flags: $LIB"
2646+
echo " * Debug enabled: $ax_enable_debug"
2647+
echo " * Warnings as failure: $ac_cv_warnings_as_errors"
2648+
echo " * make -j: $enable_jobserver"
2649+
echo " * VCS checkout: $ac_cv_vcs_checkout"
26302650
echo
26312651
echo " Features "
2632-
echo " * Single threaded: $ENABLED_SINGLETHREADED"
2633-
echo " * Filesystem: $ENABLED_FILESYSTEM"
2634-
echo " * OpenSSH Build: $ENABLED_OPENSSH"
2635-
echo " * OpenSSL Extra API: $ENABLED_OPENSSLEXTRA"
2636-
echo " * Max Strength Build: $ENABLED_MAXSTRENGTH"
2637-
echo " * fastmath: $ENABLED_FASTMATH"
2638-
echo " * sniffer: $ENABLED_SNIFFER"
2639-
echo " * snifftest: $ENABLED_SNIFFTEST"
2640-
echo " * ARC4: $ENABLED_ARC4"
2641-
echo " * AES: $ENABLED_AES"
2642-
echo " * AES-NI: $ENABLED_AESNI"
2643-
echo " * AES-GCM: $ENABLED_AESGCM"
2644-
echo " * AES-CCM: $ENABLED_AESCCM"
2645-
echo " * DES3: $ENABLED_DES3"
2646-
echo " * IDEA: $ENABLED_IDEA"
2647-
echo " * Camellia: $ENABLED_CAMELLIA"
2648-
echo " * NULL Cipher: $ENABLED_NULL_CIPHER"
2649-
echo " * MD5: $ENABLED_MD5"
2650-
echo " * RIPEMD: $ENABLED_RIPEMD"
2651-
echo " * SHA: $ENABLED_SHA"
2652-
echo " * SHA-512: $ENABLED_SHA512"
2653-
echo " * BLAKE2: $ENABLED_BLAKE2"
2654-
echo " * keygen: $ENABLED_KEYGEN"
2655-
echo " * certgen: $ENABLED_CERTGEN"
2656-
echo " * certreq: $ENABLED_CERTREQ"
2657-
echo " * certext: $ENABLED_CERTEXT"
2658-
echo " * HC-128: $ENABLED_HC128"
2659-
echo " * RABBIT: $ENABLED_RABBIT"
2660-
echo " * CHACHA: $ENABLED_CHACHA"
2661-
echo " * Hash DRBG: $ENABLED_HASHDRBG"
2662-
echo " * PWDBASED: $ENABLED_PWDBASED"
2663-
echo " * wolfCrypt Only: $ENABLED_CRYPTONLY"
2664-
echo " * HKDF: $ENABLED_HKDF"
2665-
echo " * MD4: $ENABLED_MD4"
2666-
echo " * PSK: $ENABLED_PSK"
2667-
echo " * Poly1305: $ENABLED_POLY1305"
2668-
echo " * LEANPSK: $ENABLED_LEANPSK"
2669-
echo " * RSA: $ENABLED_RSA"
2670-
echo " * DSA: $ENABLED_DSA"
2671-
echo " * DH: $ENABLED_DH"
2672-
echo " * ECC: $ENABLED_ECC"
2673-
echo " * CURVE25519: $ENABLED_CURVE25519"
2674-
echo " * ED25519: $ENABLED_ED25519"
2675-
echo " * FPECC: $ENABLED_FPECC"
2676-
echo " * ECC_ENCRYPT: $ENABLED_ECC_ENCRYPT"
2677-
echo " * ASN: $ENABLED_ASN"
2678-
echo " * Anonymous cipher: $ENABLED_ANON"
2679-
echo " * CODING: $ENABLED_CODING"
2680-
echo " * MEMORY: $ENABLED_MEMORY"
2681-
echo " * I/O POOL: $ENABLED_IOPOOL"
2682-
echo " * LIGHTY: $ENABLED_LIGHTY"
2683-
echo " * STUNNEL: $ENABLED_STUNNEL"
2684-
echo " * ERROR_STRINGS: $ENABLED_ERROR_STRINGS"
2685-
echo " * DTLS: $ENABLED_DTLS"
2686-
echo " * Old TLS Versions: $ENABLED_OLD_TLS"
2687-
echo " * SSL version 3.0: $ENABLED_SSLV3"
2688-
echo " * OCSP: $ENABLED_OCSP"
2689-
echo " * CRL: $ENABLED_CRL"
2690-
echo " * CRL-MONITOR: $ENABLED_CRL_MONITOR"
2691-
echo " * Persistent session cache: $ENABLED_SAVESESSION"
2692-
echo " * Persistent cert cache: $ENABLED_SAVECERT"
2693-
echo " * Atomic User Record Layer: $ENABLED_ATOMICUSER"
2694-
echo " * Public Key Callbacks: $ENABLED_PKCALLBACKS"
2695-
echo " * NTRU: $ENABLED_NTRU"
2696-
echo " * SNI: $ENABLED_SNI"
2697-
echo " * ALPN: $ENABLED_ALPN"
2698-
echo " * Maximum Fragment Length: $ENABLED_MAX_FRAGMENT"
2699-
echo " * Truncated HMAC: $ENABLED_TRUNCATED_HMAC"
2700-
echo " * Renegotiation Indication: $ENABLED_RENEGOTIATION_INDICATION"
2701-
echo " * Secure Renegotiation: $ENABLED_SECURE_RENEGOTIATION"
2702-
echo " * Supported Elliptic Curves: $ENABLED_SUPPORTED_CURVES"
2703-
echo " * Session Ticket: $ENABLED_SESSION_TICKET"
2704-
echo " * All TLS Extensions: $ENABLED_TLSX"
2705-
echo " * PKCS#7 $ENABLED_PKCS7"
2706-
echo " * wolfSCEP $ENABLED_WOLFSCEP"
2707-
echo " * Secure Remote Password $ENABLED_SRP"
2708-
echo " * Small Stack: $ENABLED_SMALL_STACK"
2709-
echo " * valgrind unit tests: $ENABLED_VALGRIND"
2710-
echo " * LIBZ: $ENABLED_LIBZ"
2711-
echo " * Examples: $ENABLED_EXAMPLES"
2712-
echo " * User Crypto: $ENABLED_USER_CRYPTO"
2713-
echo " * Fast RSA: $ENABLED_FAST_RSA"
2652+
echo " * Single threaded: $ENABLED_SINGLETHREADED"
2653+
echo " * Filesystem: $ENABLED_FILESYSTEM"
2654+
echo " * OpenSSH Build: $ENABLED_OPENSSH"
2655+
echo " * OpenSSL Extra API: $ENABLED_OPENSSLEXTRA"
2656+
echo " * Max Strength Build: $ENABLED_MAXSTRENGTH"
2657+
echo " * fastmath: $ENABLED_FASTMATH"
2658+
echo " * sniffer: $ENABLED_SNIFFER"
2659+
echo " * snifftest: $ENABLED_SNIFFTEST"
2660+
echo " * ARC4: $ENABLED_ARC4"
2661+
echo " * AES: $ENABLED_AES"
2662+
echo " * AES-NI: $ENABLED_AESNI"
2663+
echo " * AES-GCM: $ENABLED_AESGCM"
2664+
echo " * AES-CCM: $ENABLED_AESCCM"
2665+
echo " * DES3: $ENABLED_DES3"
2666+
echo " * IDEA: $ENABLED_IDEA"
2667+
echo " * Camellia: $ENABLED_CAMELLIA"
2668+
echo " * NULL Cipher: $ENABLED_NULL_CIPHER"
2669+
echo " * MD5: $ENABLED_MD5"
2670+
echo " * RIPEMD: $ENABLED_RIPEMD"
2671+
echo " * SHA: $ENABLED_SHA"
2672+
echo " * SHA-512: $ENABLED_SHA512"
2673+
echo " * BLAKE2: $ENABLED_BLAKE2"
2674+
echo " * keygen: $ENABLED_KEYGEN"
2675+
echo " * certgen: $ENABLED_CERTGEN"
2676+
echo " * certreq: $ENABLED_CERTREQ"
2677+
echo " * certext: $ENABLED_CERTEXT"
2678+
echo " * HC-128: $ENABLED_HC128"
2679+
echo " * RABBIT: $ENABLED_RABBIT"
2680+
echo " * CHACHA: $ENABLED_CHACHA"
2681+
echo " * Hash DRBG: $ENABLED_HASHDRBG"
2682+
echo " * PWDBASED: $ENABLED_PWDBASED"
2683+
echo " * wolfCrypt Only: $ENABLED_CRYPTONLY"
2684+
echo " * HKDF: $ENABLED_HKDF"
2685+
echo " * MD4: $ENABLED_MD4"
2686+
echo " * PSK: $ENABLED_PSK"
2687+
echo " * Poly1305: $ENABLED_POLY1305"
2688+
echo " * LEANPSK: $ENABLED_LEANPSK"
2689+
echo " * RSA: $ENABLED_RSA"
2690+
echo " * DSA: $ENABLED_DSA"
2691+
echo " * DH: $ENABLED_DH"
2692+
echo " * ECC: $ENABLED_ECC"
2693+
echo " * CURVE25519: $ENABLED_CURVE25519"
2694+
echo " * ED25519: $ENABLED_ED25519"
2695+
echo " * FPECC: $ENABLED_FPECC"
2696+
echo " * ECC_ENCRYPT: $ENABLED_ECC_ENCRYPT"
2697+
echo " * ASN: $ENABLED_ASN"
2698+
echo " * Anonymous cipher: $ENABLED_ANON"
2699+
echo " * CODING: $ENABLED_CODING"
2700+
echo " * MEMORY: $ENABLED_MEMORY"
2701+
echo " * I/O POOL: $ENABLED_IOPOOL"
2702+
echo " * LIGHTY: $ENABLED_LIGHTY"
2703+
echo " * STUNNEL: $ENABLED_STUNNEL"
2704+
echo " * ERROR_STRINGS: $ENABLED_ERROR_STRINGS"
2705+
echo " * DTLS: $ENABLED_DTLS"
2706+
echo " * Old TLS Versions: $ENABLED_OLD_TLS"
2707+
echo " * SSL version 3.0: $ENABLED_SSLV3"
2708+
echo " * OCSP: $ENABLED_OCSP"
2709+
echo " * CRL: $ENABLED_CRL"
2710+
echo " * CRL-MONITOR: $ENABLED_CRL_MONITOR"
2711+
echo " * Persistent session cache: $ENABLED_SAVESESSION"
2712+
echo " * Persistent cert cache: $ENABLED_SAVECERT"
2713+
echo " * Atomic User Record Layer: $ENABLED_ATOMICUSER"
2714+
echo " * Public Key Callbacks: $ENABLED_PKCALLBACKS"
2715+
echo " * NTRU: $ENABLED_NTRU"
2716+
echo " * Server Name Indication: $ENABLED_SNI"
2717+
echo " * ALPN: $ENABLED_ALPN"
2718+
echo " * Maximum Fragment Length: $ENABLED_MAX_FRAGMENT"
2719+
echo " * Truncated HMAC: $ENABLED_TRUNCATED_HMAC"
2720+
echo " * Certificate Status Request: $ENABLED_CERTIFICATE_STATUS_REQUEST"
2721+
echo " * Supported Elliptic Curves: $ENABLED_SUPPORTED_CURVES"
2722+
echo " * Session Ticket: $ENABLED_SESSION_TICKET"
2723+
echo " * Renegotiation Indication: $ENABLED_RENEGOTIATION_INDICATION"
2724+
echo " * Secure Renegotiation: $ENABLED_SECURE_RENEGOTIATION"
2725+
echo " * All TLS Extensions: $ENABLED_TLSX"
2726+
echo " * PKCS#7 $ENABLED_PKCS7"
2727+
echo " * wolfSCEP $ENABLED_WOLFSCEP"
2728+
echo " * Secure Remote Password $ENABLED_SRP"
2729+
echo " * Small Stack: $ENABLED_SMALL_STACK"
2730+
echo " * valgrind unit tests: $ENABLED_VALGRIND"
2731+
echo " * LIBZ: $ENABLED_LIBZ"
2732+
echo " * Examples: $ENABLED_EXAMPLES"
2733+
echo " * User Crypto: $ENABLED_USER_CRYPTO"
2734+
echo " * Fast RSA: $ENABLED_FAST_RSA"
27142735
echo ""
27152736
echo "---"

examples/client/client.c

+24-5
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ static void Usage(void)
310310
#endif
311311
printf("-b <num> Benchmark <num> connections and print stats\n");
312312
#ifdef HAVE_ALPN
313-
printf("-L <str> Application-Layer Protocole Name ({C,F}:<list>)\n");
313+
printf("-L <str> Application-Layer Protocol Negotiation ({C,F}:<list>)\n");
314314
#endif
315315
printf("-B <num> Benchmark throughput using <num> bytes and print stats\n");
316316
printf("-s Use pre Shared keys\n");
@@ -348,6 +348,9 @@ static void Usage(void)
348348
printf("-o Perform OCSP lookup on peer certificate\n");
349349
printf("-O <url> Perform OCSP lookup using <url> as responder\n");
350350
#endif
351+
#ifdef HAVE_CERTIFICATE_STATUS_REQUEST
352+
printf("-W Use OCSP Stapling\n");
353+
#endif
351354
#ifdef ATOMIC_USER
352355
printf("-U Atomic User Record Layer Callbacks\n");
353356
#endif
@@ -425,7 +428,10 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
425428
byte maxFragment = 0;
426429
#endif
427430
#ifdef HAVE_TRUNCATED_HMAC
428-
byte truncatedHMAC = 0;
431+
byte truncatedHMAC = 0;
432+
#endif
433+
#ifdef HAVE_CERTIFICATE_STATUS_REQUEST
434+
byte statusRequest = 0;
429435
#endif
430436

431437

@@ -466,8 +472,7 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
466472

467473
#ifndef WOLFSSL_VXWORKS
468474
while ((ch = mygetopt(argc, argv,
469-
"?gdeDusmNrwRitfxXUPCh:p:v:l:A:c:k:Z:b:zS:L:ToO:aB:"))
470-
!= -1) {
475+
"?gdeDusmNrwRitfxXUPCh:p:v:l:A:c:k:Z:b:zS:L:ToO:aB:W")) != -1) {
471476
switch (ch) {
472477
case '?' :
473478
Usage();
@@ -654,6 +659,12 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
654659
#endif
655660
break;
656661

662+
case 'W' :
663+
#ifdef HAVE_CERTIFICATE_STATUS_REQUEST
664+
statusRequest = 1;
665+
#endif
666+
break;
667+
657668
case 'o' :
658669
#ifdef HAVE_OCSP
659670
useOcsp = 1;
@@ -976,6 +987,15 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
976987
wolfSSL_UseALPN(ssl, alpnList, (word32)XSTRLEN(alpnList), alpn_opt);
977988
}
978989
#endif
990+
#ifdef HAVE_CERTIFICATE_STATUS_REQUEST
991+
if (statusRequest) {
992+
if (wolfSSL_UseCertificateStatusRequest(ssl, WOLFSSL_CSR_OCSP,
993+
WOLFSSL_CSR_OCSP_USE_NONCE) != SSL_SUCCESS)
994+
err_sys("UseCertificateStatusRequest failed");
995+
996+
wolfSSL_CTX_EnableOCSP(ctx, WOLFSSL_OCSP_NO_NONCE);
997+
}
998+
#endif
979999

9801000
tcp_connect(&sockfd, host, port, doDTLS, ssl);
9811001

@@ -1317,4 +1337,3 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
13171337
}
13181338

13191339
#endif
1320-

examples/server/server.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ static void Usage(void)
200200
DEFAULT_MIN_DHKEY_BITS);
201201
#endif
202202
#ifdef HAVE_ALPN
203-
printf("-L <str> Application-Layer Protocole Name ({C,F}:<list>)\n");
203+
printf("-L <str> Application-Layer Protocol Negotiation ({C,F}:<list>)\n");
204204
#endif
205205
printf("-d Disable client cert check\n");
206206
printf("-b Bind to any interface instead of localhost only\n");

pull_to_vagrant.sh

+1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ rsync -rvt /$SRC/.git ~/$DST/
1010
rsync -rvt /$SRC/IDE ~/$DST/
1111
rsync -rvt /$SRC/mcapi ~/$DST/
1212
rsync -rvt /$SRC/mplabx ~/$DST/
13+
rsync -rvt /$SRC/certs ~/$DST/
1314
rsync -rvt /$SRC/configure.ac ~/$DST/

0 commit comments

Comments
 (0)