Compare commits

...

986 Commits

Author SHA1 Message Date
David Garske
37884f864d Merge pull request #6926 from JacobBarthelmeh/release
prepare for release 5.6.4
2023-10-30 08:28:37 -07:00
JacobBarthelmeh
6cf75a7d42 prepare for release 5.6.4 2023-10-30 07:59:00 -06:00
David Garske
2c91ecb466 Merge pull request #6924 from JacobBarthelmeh/srtp
sanity check on length before ato16 with SRTP
2023-10-28 16:13:06 -07:00
JacobBarthelmeh
07c8c5c8ca sanity check on length before ato16 with SRTP 2023-10-28 16:13:45 -06:00
David Garske
cc45b31470 Merge pull request #6922 from JacobBarthelmeh/coverity
clean up some coverity reports
2023-10-27 18:40:02 -07:00
JacobBarthelmeh
c3ed45d331 additional case for CID 330392 and 330401 2023-10-27 16:34:04 -06:00
JacobBarthelmeh
688b94cad2 fix typo and missing brackets 2023-10-27 16:11:18 -06:00
JacobBarthelmeh
7d5491994e Fix for CID 299649 checking on if ctx is null 2023-10-27 15:28:42 -06:00
JacobBarthelmeh
29782449ec Fix for CID 299637 make sure after free'ing pointer it is not re-used 2023-10-27 15:14:02 -06:00
JacobBarthelmeh
247bc151d9 Fix for CID 299627 memory leak on error case 2023-10-27 15:10:32 -06:00
JacobBarthelmeh
0ba406a52c Fix for CID 299536 possible null dereference 2023-10-27 15:02:10 -06:00
JacobBarthelmeh
a2032dfb36 touch up negative value sanity check, fix CID 210741 sanity check 2023-10-27 14:50:13 -06:00
JacobBarthelmeh
33c4054cbb Fix for CID 299748 memory leak in error case 2023-10-27 14:36:51 -06:00
JacobBarthelmeh
ef50cb3f02 Fix for CID 299759 be explicit on compare 2023-10-27 14:33:33 -06:00
JacobBarthelmeh
271fa83a15 Fix for CID 299778 memory leak on error case 2023-10-27 14:28:47 -06:00
JacobBarthelmeh
8760ad9473 Fix for CID 299847 memory leak on error case 2023-10-27 14:17:31 -06:00
JacobBarthelmeh
7b20a5597c Fix for CID 330399 memory leak on error case 2023-10-27 14:11:21 -06:00
JacobBarthelmeh
c11176c276 Fixes CID 330401 and 330392 memory leak 2023-10-27 14:04:46 -06:00
JacobBarthelmeh
8add411d9a fix for CID 330412 wrong sizeof argument 2023-10-27 13:35:08 -06:00
JacobBarthelmeh
16b842992d fix for CID 330416 memory leak 2023-10-27 13:27:30 -06:00
JacobBarthelmeh
449fb9c581 Fix for report CID 330424 wrong sizeof argument 2023-10-27 13:20:50 -06:00
JacobBarthelmeh
1dd6888288 Merge pull request #6920 from embhorn/zd16909
Fix mem leak in TLSX_CA_Names_Parse
2023-10-27 10:45:54 -06:00
Eric Blankenhorn
6b0e28f840 Fix mem leak in TLSX_CA_Names_Parse 2023-10-27 07:58:50 -05:00
David Garske
a17d6ef751 Merge pull request #6918 from JacobBarthelmeh/readme
remove packaging status badge
2023-10-26 16:19:06 -07:00
JacobBarthelmeh
85fab2b4f7 remove packaging status badge 2023-10-26 15:15:36 -07:00
JacobBarthelmeh
45ba778692 Merge pull request #6911 from douzzer/20231025-sp_to_unsigned_bin_len_ct-Wconversion-cast
20231025-sp_to_unsigned_bin_len_ct-Wconversion-cast
2023-10-26 10:33:50 -06:00
Daniel Pouzzner
7821c48e65 wolfcrypt/src/sp_int.c: add cast in sp_to_unsigned_bin_len_ct() to mollify -Wconversion. 2023-10-25 23:40:21 -05:00
David Garske
fc858ec33b Merge pull request #6908 from JacobBarthelmeh/static-analysis
minor warning fixes from static analysis tests
2023-10-25 17:28:54 -07:00
JacobBarthelmeh
6538ed1c39 coverity fix for CID 327268 2023-10-25 09:52:35 -06:00
JacobBarthelmeh
b46545315c fix for possible null dereference warning 2023-10-25 08:44:11 -06:00
JacobBarthelmeh
d801dc1c85 Merge pull request #6906 from SparkiDev/pkcs8_info_free_fix
ProcessBuffer: fix free call
2023-10-25 08:38:56 -06:00
JacobBarthelmeh
6d8136c63e Merge pull request #6896 from SparkiDev/rsa_to_bin_len_ct
RSA: convert to bin with length in constant time
2023-10-25 08:34:37 -06:00
Sean Parkinson
d87cd2cc05 ProcessBuffer: fix free call
'info' was freed before use when OPENSSL_EXTRA is defined.
2023-10-25 17:23:04 +10:00
András Fekete
5da7efacc9 Merge pull request #6894 from julek-wolfssl/fix-possible-hang
Fix static analyzer possible leak
2023-10-24 09:13:58 -04:00
András Fekete
a74228b5b0 Merge pull request #6904 from julek-wolfssl/suites-allocation
Don't try to allocate 0 size suites copy. Fixes `--enable-trackmemory --enable-smallstack CFLAGS="-DALT_ECC_SIZE" --enable-opensslextra` errors.
2023-10-24 09:07:42 -04:00
Juliusz Sosinowicz
dc5a246fdd Do NULL check in FreeCRL 2023-10-24 10:31:17 +02:00
Juliusz Sosinowicz
4aad7589d6 Don't try to allocate 0 size suites copy 2023-10-24 10:10:08 +02:00
Sean Parkinson
13cadbbe55 Merge pull request #6903 from douzzer/20231021-fix-null-derefs
20231021-fix-null-derefs
2023-10-24 13:12:09 +10:00
JacobBarthelmeh
1de048826e Merge pull request #6895 from bigbrett/ios-ca-api
Fix WOLFSSL_SYS_CA_CERTS bug on Apple devices
2023-10-23 07:57:08 -06:00
Juliusz Sosinowicz
3c5d3c0fa9 bwrap ocsp renew script 2023-10-23 15:53:42 +02:00
Daniel Pouzzner
501299bc31 fix null pointer derefs in examples/pem/pem.c:pemApp_ReadFile() and tests/api.c:LoadPKCS7SignedDataCerts() detected by clang-tidy. 2023-10-21 13:34:04 -05:00
JacobBarthelmeh
9db828a099 Merge pull request #6898 from SparkiDev/ed25519_g++
Ed25519: add missing C++ directives for C functions
2023-10-20 15:52:12 -06:00
JacobBarthelmeh
5018d6c2bb Merge pull request #6897 from SparkiDev/tls13_psk_one_id_var_decl
TLS 1.3: compiling with WOLFSSL_PSK_ONE_ID fix
2023-10-20 15:48:59 -06:00
JacobBarthelmeh
ca2a6d7daa Merge pull request #6878 from SparkiDev/sha256_armv7a_vmov_fix
ARMv7a SHA256: explicit size on vmov
2023-10-20 15:46:58 -06:00
Brett
2387579880 added FIPS warning for Apple native cert validation 2023-10-20 15:40:49 -06:00
Brett
dd12e5a39e Fix WOLFSSL_SYS_CA_CERTS bug that accepted intermediate CA certs with invalid
signatures. Also adds --sys-ca-certs to client in unit.test to detect
regressions
2023-10-20 15:40:44 -06:00
Sean Parkinson
fcf1406675 RSA: convert to bin with length in constant time
Add mp_to_unsigned_bin_len_ct() which puts a number into a buffer with
padding in constant time.
Call mp_to_unsigned_bin_len_ct() in RSA when encoding result of
exponentiation.
2023-10-20 14:04:36 +10:00
Sean Parkinson
c88dcac80e Ed25519: add missing C++ directives for C functions
Assembly code has C function names.
Need to tell C++ that these are C function and not to mangle names.
2023-10-20 12:02:51 +10:00
Sean Parkinson
ce1e44d5e8 TLS 1.3: compiling with WOLFSSL_PSK_ONE_ID fix
Move use of 'suites' into non-WOLFSSL_PSK_ONE_ID path as variable
declared and used only in that case.
2023-10-20 10:32:45 +10:00
Sean Parkinson
4ac795961b ARMv7a SHA256: explicit size on vmov
For SHA256 using NEON on ARM32, change vmov instruction that is moving
from scalar to general-purpose register to have explicit size (32 bits).
May be needed by some compilers.
2023-10-20 10:21:57 +10:00
JacobBarthelmeh
1abaa94120 Merge pull request #6889 from SparkiDev/sm2_priv_import_range
ECC SM2 import private key: check less than order-1
2023-10-19 17:12:07 -06:00
JacobBarthelmeh
22be42a161 Merge pull request #6885 from bigbrett/aes-eax
Move AesEax definition to aes.h
2023-10-19 16:49:10 -06:00
Juliusz Sosinowicz
cecc5f6b19 Call wc_UnLockRwLock only once 2023-10-19 17:04:41 +02:00
Juliusz Sosinowicz
8a8acbd55f Add log about allocation failure 2023-10-19 17:00:49 +02:00
Juliusz Sosinowicz
2dd8e713f2 Fix static analyzer possible leak
crl would never be null there but clean up code to make sure newcrl->crlLock gets free'd
2023-10-19 16:58:28 +02:00
Sean Parkinson
abd7bb3ac3 ECC SM2 import private key: check less than order-1
SM2 curves must have private key less than order-1 instead of order.
2023-10-19 17:29:25 +10:00
JacobBarthelmeh
a3bf7a66a4 Merge pull request #6886 from julek-wolfssl/openvpn-master-fix
Define SSL_get_peer_tmp_key
2023-10-18 13:17:15 -06:00
David Garske
22ab21749c Merge pull request #6869 from bigbrett/ios-ca-api
Add support for new Apple trust APIs with WOLFSSL_SYS_CA_CERTS
2023-10-18 10:29:41 -07:00
Juliusz Sosinowicz
f99c7cbb21 Define SSL_get_peer_tmp_key 2023-10-18 19:24:11 +02:00
JacobBarthelmeh
269090353e Merge pull request #6884 from kareem-wolfssl/zd16824
Add explicit break to switch statement in GetHmacLength
2023-10-18 11:20:55 -06:00
JacobBarthelmeh
b4724b515d Merge pull request #6880 from SparkiDev/sm2_named_group_val_fix
SM2 named curve disabled: value outside of supported values
2023-10-18 10:51:02 -06:00
Brett
d805e06469 add AesEax struct to header for public use 2023-10-18 09:23:39 -06:00
Sean Parkinson
1e84d24c20 SM2 named curve disabled: value outside of supported values
SM2 named curve value is specified in specification.
Values 0-14 aren't used, so, those bits in disabledCurves are used for
values over 31.
Add range checks.
2023-10-18 10:51:37 +10:00
JacobBarthelmeh
3943852b79 Merge pull request #6882 from douzzer/20231017-wolfsentry-wolfssl_test-h
20231017-wolfsentry-wolfssl_test-h
2023-10-17 16:03:41 -06:00
David Garske
bc0643803d Merge pull request #6873 from JacobBarthelmeh/coverity
Coverity scan touch up
2023-10-17 14:44:33 -07:00
JacobBarthelmeh
19870b2378 Merge pull request #6883 from bigbrett/cmake-aarch64-build-macro-fix
cmake aarch64 fix
2023-10-17 15:31:23 -06:00
Kareem
f59b22d3a0 Add explicit break to switch statement in GetHmacLength 2023-10-17 14:14:05 -07:00
JacobBarthelmeh
4f1b3fff73 Merge pull request #6879 from jpbland1/cmac-invalid-devId
correctly set invalid devId for when cryptoCb is on
2023-10-17 13:23:17 -06:00
Brett
a1d76849e6 added CMake support for new Apple native certificate verification 2023-10-17 13:17:42 -06:00
JacobBarthelmeh
dc7e044157 Merge pull request #6881 from lealem47/mingw_pthreads
Fix for pthreads on MSYS2 & MINGW
2023-10-17 13:10:05 -06:00
Brett
e976a7faeb added CMake host processor check to appropriately set WOLFSSL_AARCH64_BUILD on M1 macs 2023-10-17 12:51:36 -06:00
Daniel Pouzzner
f0db681550 wolfssl/test.h: move wolfsentry logic out of wolfssl project and into header file in wolfsentry project. 2023-10-17 13:05:23 -05:00
Lealem Amedie
a810514f86 Get multi-test passing 2023-10-17 11:36:19 -06:00
John Bland
76b770d4ee update comment based on PR advise 2023-10-17 13:01:00 -04:00
Lealem Amedie
286d551ad0 Use same mingw macro in codebase for consistency 2023-10-17 10:22:17 -06:00
JacobBarthelmeh
603b5bb573 Merge pull request #6875 from douzzer/20231016-sp-math-fix-redux
20231016-sp-math-fix-redux
2023-10-17 10:08:43 -06:00
Lealem Amedie
5bc2edd5ad Allow override of XSNPRINTF for Windows 2023-10-17 09:37:50 -06:00
Lealem Amedie
b73a440205 Fix for pthreads on MSYS2 & MINGW 2023-10-17 09:16:41 -06:00
John Bland
92382602dd fix bad placement 2023-10-17 01:39:34 -04:00
John Bland
53d80c0b7f correctly set invalid devId for when cryptoCb is on
but the user has opted to use software, or cmac is not available on for their
device. currently a devId of 0 is set which causes CRYPTOCB_UNAVAILABLE
2023-10-17 01:33:06 -04:00
Daniel Pouzzner
f1725b4962 fix to 3e9f8bc649: (void)h was a typo for correct (void)n. 2023-10-16 18:23:45 -05:00
JacobBarthelmeh
b7b0316ac9 free buffer on error case 2023-10-16 15:04:57 -06:00
Brett
0244c2a254 Add support for new Apple trust APIs with WOLFSSL_SYS_CA_CERTS 2023-10-16 14:37:21 -06:00
JacobBarthelmeh
ae3fdbec47 add free in error case CID 327286 2023-10-16 13:59:05 -06:00
JacobBarthelmeh
74b63b6409 fix for derefernce warning on debug message 2023-10-16 13:52:42 -06:00
JacobBarthelmeh
8be0e14bd2 add unlock in error case CID 327294 2023-10-16 13:46:18 -06:00
JacobBarthelmeh
bab01ca313 Merge pull request #6872 from douzzer/20231016-sp-math-aes-eax-fips-fixes
20231016-sp-math-aes-eax-fips-fixes
2023-10-16 13:43:26 -06:00
JacobBarthelmeh
99d46d9a6d fix for derefernce warning CID 327296 & CID 327298 2023-10-16 13:36:24 -06:00
JacobBarthelmeh
3c23f39437 fix for out of bounds edge case CID 327299 2023-10-16 13:34:05 -06:00
JacobBarthelmeh
ed001829df Fix for dereference CID 327300 & CID 327301 2023-10-16 13:33:15 -06:00
Daniel Pouzzner
3e9f8bc649 tests/api.c: gate test_wc_AesEaxVectors(), test_wc_AesEaxEncryptAuth(), and test_wc_AesEaxDecryptAuth(), on !FIPS || FIPS>=5.3.
wolfcrypt/src/eccsi.c: remove incorrect `(void)h` from eccsi_mulmod_base_add() in newly exposed WOLFSSL_SP_MATH code path.
2023-10-16 13:30:16 -05:00
JacobBarthelmeh
d35112064b Merge pull request #6840 from philljj/xmss_hooks_support
Add XMSS/XMSSMT wolfCrypt hooks.
2023-10-16 10:58:12 -06:00
jordan
46b1a030a7 XMSS/XMSSMT hooks support: fix g++ warnings, and small cleanup for review. 2023-10-13 18:01:07 -05:00
JacobBarthelmeh
c23559a91c Merge pull request #6866 from bigbrett/aes-eax
Add more extensive AES EAX tests to api.c
2023-10-13 16:09:30 -06:00
JacobBarthelmeh
7afd9810de Merge pull request #6867 from cconlon/jniConfigExpand
Update "--enable-jni" to include additional defines
2023-10-13 15:13:32 -06:00
Brett
87cffc8229 Added more extensive AES EAX tests to api.c 2023-10-13 11:38:16 -06:00
JacobBarthelmeh
79a6e1eb04 Merge pull request #6808 from SparkiDev/sp_sm2
SP updates for SM2
2023-10-13 10:17:17 -06:00
Chris Conlon
8cd89884ce update --enable-jni with KEEP_PEER_CERT, WOLFSSL_ALT_CERT_CHAINS, WOLFSSL_KEY_GEN 2023-10-13 10:07:04 -06:00
JacobBarthelmeh
f247e6b6f0 Merge pull request #6865 from per-allansson/wolfio-getaddrinfo-hints-a
wolfio: request only IPv4 addresses unless IPv6 support is enabled
2023-10-13 09:53:38 -06:00
JacobBarthelmeh
95137f91fa Merge pull request #6856 from dgarske/fips_win32
Fixes for wolfCrypt FIPS DLL win32
2023-10-13 09:49:26 -06:00
JacobBarthelmeh
dd1459ec8e Merge pull request #6859 from julek-wolfssl/curl-releases
Test curl releases
2023-10-13 08:57:11 -06:00
JacobBarthelmeh
4001734421 Merge pull request #6863 from lealem47/xcode_cyassl
Remove cyaSSL from XCODE proj and small fix in chacha.c
2023-10-13 08:54:11 -06:00
Per Allansson
5f20f1171d wolfio: request only IPv4 addresses unless IPv6 support is enabled 2023-10-13 15:25:16 +02:00
Juliusz Sosinowicz
962c315447 Test curl releases too 2023-10-13 11:52:02 +02:00
JacobBarthelmeh
26cc785fbc Merge pull request #6861 from douzzer/20231012-keylog-export-warning-fix
20231012-keylog-export-warning-fix
2023-10-12 17:04:39 -06:00
Sean Parkinson
0cc21a42f3 SP updates for SM2
Allow wolfSSL to build with SP implementations of SM2.
Updates to SP implementation of other code.
2023-10-13 08:14:15 +10:00
JacobBarthelmeh
38df4e2bd5 Merge pull request #6857 from kareem-wolfssl/zd16815
Update documentation for wc_Shake256_Final to match function signature.
2023-10-12 15:08:58 -06:00
JacobBarthelmeh
26ab3b109a Merge pull request #6858 from anhu/FASCN_OID
Support FASCN OID in wolfssl_dns_entry_othername_to_gn()
2023-10-12 14:47:09 -06:00
JacobBarthelmeh
883fcfc11e Merge pull request #6860 from douzzer/20231012-aes-xts-fixes
20231012-aes-xts-fixes
2023-10-12 14:41:17 -06:00
Lealem Amedie
0d53796284 Apply the same changes to FIPS project 2023-10-12 14:07:32 -06:00
Lealem Amedie
20cab7afe3 Remove cyaSSL from XCODE proj and small fix in chacha.c 2023-10-12 13:58:43 -06:00
David Garske
c05aea7c5a Improvements to the wolfCrypt FIPS Visual Studio project link settings to resolve ASLR (Randomized Base Address) issue on some platforms. ZD 16615 2023-10-12 12:05:14 -07:00
David Garske
3cebf35b1b Cleanups for IDE/WIN10 user_settings.h to allow for FIPS 140-2 3389 cert. Fixed compiler warning with possible use of uninitialized data. 2023-10-12 12:04:51 -07:00
Daniel Pouzzner
0549dba3db configure.ac and src/tls.c: fix --enable-keylog-export to warn at configure time, then build cleanly. 2023-10-12 13:09:43 -05:00
Daniel Pouzzner
3a195563f7 wolfcrypt/src/aes.c: fix zerodivcond and -Wconversion in wc_AesXtsEncryptConsecutiveSectors() and wc_AesXtsDecryptConsecutiveSectors().
wolfcrypt/test/test.c: add missing FIPS gating around AES-XTS testing.
2023-10-12 12:08:16 -05:00
jordan
60fea5ee5c XMSS/XMSSMT hooks support: small update for requested changes. 2023-10-11 21:29:45 -05:00
Anthony Hu
f332995131 Support FASCN OID in wolfssl_dns_entry_othername_to_gn() 2023-10-11 20:33:13 -04:00
Kareem
66f4101569 Update documentation for wc_Shake256_Final to match function signature. 2023-10-11 16:12:34 -07:00
JacobBarthelmeh
0e35e9cbbe Merge pull request #6806 from lealem47/XTS
Add XTS API's required for VeraCrypt
2023-10-11 13:35:45 -06:00
JacobBarthelmeh
653e5b01b1 Merge pull request #6646 from embhorn/gh5636_5637
Fix RFC references and add WOLFSSL_ALLOW_CRIT_AIA
2023-10-11 13:30:42 -06:00
Lealem Amedie
e7eec645b0 Sanity checks and correct comment 2023-10-11 12:03:02 -06:00
JacobBarthelmeh
f0bfcc50d7 Merge pull request #6748 from julek-wolfssl/dtls13-frag-ch2
DTLS 1.3: allow fragmenting the second ClientHello message
2023-10-11 11:13:57 -06:00
JacobBarthelmeh
5e4baf898c Merge pull request #6786 from SparkiDev/aes_gcm_align_arm_fix
AES GCM ARM32 alignment fix
2023-10-11 10:18:11 -06:00
Chris Conlon
7f562f8259 Merge pull request #6851 from miyazakh/rnd_gen_updates_rx
Update random generation on RX TSIP
2023-10-11 09:10:34 -06:00
TakayukiMatsuo
a4f9ae90d0 Merge pull request #6845 from kojo1/jp-doc
fix jp doc translations
2023-10-11 07:00:16 +09:00
Hideki Miyazaki
f8604da8e3 change to use a cutom random generation func for PRNG 2023-10-11 06:50:26 +09:00
Lealem Amedie
a27b49882d Add XTS API's required for VeraCrypt 2023-10-10 15:09:35 -06:00
Juliusz Sosinowicz
ca73a311cf Don't use /dev/null 2023-10-10 17:31:45 +02:00
Juliusz Sosinowicz
5372cd5026 Update openwrt script 2023-10-10 17:08:58 +02:00
Chris Conlon
210fff5569 Merge pull request #6849 from miyazakh/rnd_gen_updates
Update random generation on RZ RSIP
2023-10-10 08:52:22 -06:00
Juliusz Sosinowicz
53f14206d1 Increase curl timeout 2023-10-10 14:36:00 +02:00
Juliusz Sosinowicz
cb912219e4 Run only stable curl tests 2023-10-10 14:19:03 +02:00
Juliusz Sosinowicz
365fae8ac0 Add curl test dep 2023-10-10 11:37:48 +02:00
jordan
f32c6a0d25 XMSS/XMSSMT hooks support: fix build. 2023-10-09 10:13:32 -05:00
JacobBarthelmeh
d83f2fa126 Merge pull request #6850 from douzzer/20231008-Wconversion-and-Aes-Eax-FIPS-fixes
20231008-Wconversion-and-Aes-Eax-FIPS-fixes
2023-10-09 09:06:17 -06:00
Juliusz Sosinowicz
64ed7d57eb Add comment 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
275c0a0838 Update window in one place only when stateful 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
8ac72750bc Fix linting issues 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
948d7ae761 keyLog_callback: flush the descriptor to make sure it is written out 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
c1a49fef99 Fix unreachable code error 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
bec87e525f PQC TLS 1.3: test setting pqc with wolfSSL_CTX_set_groups 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
3a881079d3 Fix async 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
2c6c52078a test_dtls13_frag_ch_pq: make sure kyber5 is used 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
37c0d52fa8 Dump manual memio stream with WOLFSSL_DUMP_MEMIO_STREAM 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
c802193119 Simplify the pqc keyshare handling 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
0dbf97c867 fixup! Clear the keyshare instead of storing it 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
230f81712c fixup! Clear the keyshare instead of storing it 2023-10-09 12:54:11 +02:00
Anthony Hu
f640fdf91f Adding a post-quantum DTLS 1.3 test.
This exercises the fragmenting of ClientHello via large post-quantum key share.

./configure --enable-dtls-mtu --enable-dtls-frag-ch --enable-dtls \
            --enable-dtls13 --with-liboqs
2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
ada785e115 Address code review 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
8da863184c Force DTLS 1.3 when accepting fragmented CH 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
df8ee69075 Clear the keyshare instead of storing it 2023-10-09 12:54:11 +02:00
Juliusz Sosinowicz
85a596e54a DTLS 1.3: allow fragmenting the second ClientHello message
- DTLS 1.3 pqc support
- Add --enable-dtls-frag-ch option to enable CH fragmenting
- Send an alert when we get an empty keyshare with a cookie present to not allow for multiple HRR in one connection
- Only update the DTLS window when we have successfully processed or stored a message
- Call ssl->chGoodCb as soon as we have processed a verified full or fragmented ClientHello cookie
2023-10-09 12:54:11 +02:00
Daniel Pouzzner
61371d403a minor fixes for AES-EAX implementation and test routines. 2023-10-08 18:02:52 -05:00
Sean Parkinson
832e0f3726 Merge pull request #6842 from kaleb-himes/fix-err-introduce-with-cm-move
Fix -4 return code when expected BAD_FUNC_ARG(-173)
2023-10-09 07:04:24 +10:00
Hideki Miyazaki
8d5df6fec2 change to use custom random generation func 2023-10-08 16:42:36 +09:00
JacobBarthelmeh
c082216661 Merge pull request #6836 from anhu/iar_ewarm_gitignore
Changes to what gets ignored by git for the IAR-EWARM IDE
2023-10-06 20:57:25 -06:00
JacobBarthelmeh
5cb80ea898 Merge pull request #6847 from embhorn/zd16767
Fix wolfSSL_set_verify_result to use correct value
2023-10-06 16:52:32 -06:00
Eric Blankenhorn
b329c0d5f4 Fix wolfSSL_set_verify_result to use correct value 2023-10-06 16:34:31 -05:00
Anthony Hu
52a9730f56 Changes to gitignore for IAR-EWARM IDE. 2023-10-06 17:02:22 -04:00
JacobBarthelmeh
fd2d098566 Merge pull request #6821 from bigbrett/aes-eax
AES EAX mode
2023-10-06 14:14:28 -06:00
Brett Nicholas
fafb9e81c0 Add support for AES EAX mode, as described in https://eprint.iacr.org/2003/069 2023-10-06 11:10:06 -06:00
JacobBarthelmeh
a7950a3739 Merge pull request #6846 from SparkiDev/aes_xts_arm_hw_crypto
Aarch64 and ARM32 AES XTS with crypto instructions
2023-10-06 09:58:38 -06:00
JacobBarthelmeh
a24d66939f Merge pull request #6843 from embhorn/gh6760_take2
Fix RNG with writedup
2023-10-06 09:11:33 -06:00
Sean Parkinson
862a98abe0 Aarch64 and ARM32 AES XTS with crypto instructions
Optimised assembly of AES-XTS for Aarch64 and ARM32 using hardware
crypto instructions.
Aarch64 has loop unrolling.
Update aes.c to not have AES-XTS implementation when assembly
compilable.
Update test of AES-XTS to check expected cipher text of partial block
encryption.
2023-10-06 12:39:31 +10:00
Takashi Kojo
5fdc3d8dd5 fix jp doc translations 2023-10-06 09:16:41 +09:00
Takashi Kojo
97b6b00226 Merge branch 'master' of https://github.com/wolfssl/wolfssl 2023-10-06 09:15:10 +09:00
kaleb-himes
e51399ca0f Do the success checkout out front 2023-10-05 17:05:36 -06:00
JacobBarthelmeh
5a5a8c9b47 Merge pull request #6841 from julek-wolfssl/fix-all-scr
Fixes for bugs exposed with SCR
2023-10-05 16:55:01 -06:00
JacobBarthelmeh
c26ad8d19a Merge pull request #6828 from SparkiDev/mp_sqrtmod_prime_cust_curve
mp_sqrtmod_prime: bail early on the check for small values
2023-10-05 16:32:01 -06:00
JacobBarthelmeh
22b838c22b Merge pull request #6799 from kojo1/no_malloc
fix NO_MALLOC guard in an error case
2023-10-05 16:23:54 -06:00
Eric Blankenhorn
a494d04f10 Fix RNG with writedup 2023-10-05 16:03:42 -05:00
kaleb-himes
4bb6c51d2d Fix -4 return code when expected BAD_FUNC_ARG(-173) 2023-10-05 14:20:37 -06:00
JacobBarthelmeh
2c4556c797 Merge pull request #6835 from julek-wolfssl/no-ossl-defs-in-release
Add option to disable OPENSSL_COMPATIBLE_DEFAULTS
2023-10-05 10:47:50 -06:00
JacobBarthelmeh
1b4435d134 Merge pull request #6839 from julek-wolfssl/eol-repos
Remove unsupported distros from readme badge
2023-10-05 10:46:49 -06:00
JacobBarthelmeh
a333e775c7 Merge pull request #6837 from anhu/doc_corr
Minor correction to documentation
2023-10-05 10:46:12 -06:00
Chris Conlon
6968105984 Merge pull request #6831 from miyazakh/renesas_tsip_fix
fix compile error due to rz port change
2023-10-05 09:43:34 -06:00
Juliusz Sosinowicz
858c66de3c Add configs that exposed this bug 2023-10-05 16:58:45 +02:00
Juliusz Sosinowicz
89946126f2 Remove dtls_expected_rx and use expected values directly
We should always read MTU + EXTRA so that we capture the entire message and are able to correctly decrypt the entire datagram. A smaller MTU also breaks larger handshake messages sent during a connection like secure renegotiation in DTLS 1.2 (confirmed) and post-handshake messages in DTLS 1.3 (suspected).
2023-10-05 16:58:45 +02:00
Juliusz Sosinowicz
80c8c62fb2 Proper initial_ctx clean up
- Call wolfSSL_CTX_free on ssl->initial_ctx so that it decrements the counter and free's the object
- Clean up where ssl->initial_ctx is free'd. It only needs to be free'd when the ssl object is being free'd
2023-10-05 16:58:45 +02:00
jordan
33d4b331fb Add XMSS/XMSSMT wolfCrypt hooks. 2023-10-05 09:18:50 -05:00
Juliusz Sosinowicz
9abc611550 Update dtls in readme 2023-10-05 13:32:58 +02:00
Juliusz Sosinowicz
6b28a68e42 Add DTLS 1.3 to README 2023-10-05 13:26:35 +02:00
Juliusz Sosinowicz
c88fec1534 Remove unsupported distros from readme badge 2023-10-05 13:22:34 +02:00
Juliusz Sosinowicz
8ce8359bd7 Add option to disable OPENSSL_COMPATIBLE_DEFAULTS 2023-10-05 10:30:44 +02:00
Anthony Hu
630d75153f Minor correction to documentation 2023-10-04 16:51:55 -04:00
JacobBarthelmeh
96205fc80d Merge pull request #6820 from julek-wolfssl/zd/16550-int-crl
CRL verify the entire chain including loaded CA's
2023-10-04 14:37:50 -06:00
David Garske
4d81725438 Merge pull request #6832 from jpbland1/cryptocb-key-context
add devCtx to all keys for use in cryptoCb
2023-10-04 09:34:06 -07:00
JacobBarthelmeh
94043723c9 Merge pull request #6833 from douzzer/20231003-options-h-flag-order-etc
20231003-options-h-flag-order-etc
2023-10-04 09:01:58 -06:00
Daniel Pouzzner
45b613ee55 wolfcrypt/test/test.c: fix error codes in hpke_test_single(), hpke_test(), and ecc521_test_deterministic_k(). 2023-10-03 22:44:11 -05:00
Daniel Pouzzner
71649388a0 configure.ac: in options.h generation, fix order of flags to match Makefile order. 2023-10-03 21:11:59 -05:00
John Bland
f4acc8f33d add devCtx to all keys for use in cryptoCb 2023-10-03 19:29:36 -04:00
Hideki Miyazaki
f9fb966bb4 fix compile error due to rz port change 2023-10-04 06:47:12 +09:00
JacobBarthelmeh
88d25036a0 Merge pull request #6823 from rizlik/stale_suites_fix
fix: tls13: don't use stale suites pointers in CheckPreSharedKeys
2023-10-03 11:41:53 -06:00
Juliusz Sosinowicz
7baf151c37 CRL verify the entire chain including loaded CA's
- Regen CRL's as most of them are expired
- certs/crl/extra-crls/ca-int-cert-revoked.pem: CRL that revokes certs/intermediate/ca-int-cert.pem signed by certs/ca-cert.pem
- Add CheckCertCRL_ex API to not depend on DecodedCert
- CheckCertCRLList: accept raw serial or hashed version to work with Signers
- Add XELEM_CNT to simplify pre-proc element counting
2023-10-03 11:45:43 +02:00
Sean Parkinson
e55e6790dd mp_sqrtmod_prime: bail early on the check for small values
When using custom curves, only use the first 22 values with the prime to
calculate Legendre symbol. The known curves work and defeats long running
times when non-prime values are passed in.
2023-10-03 16:48:34 +10:00
Daniel Pouzzner
5066771f10 Merge pull request #6824 from bandi13/PRB-fips-ready-config-issues
Fix issue created by 62c14e4d5b
2023-10-03 00:47:14 -04:00
JacobBarthelmeh
1a3bf5e932 Merge pull request #6822 from douzzer/20230930-aes-xts-test-gate
20230930-aes-xts-test-gate
2023-10-02 17:57:17 -06:00
Andras Fekete
47f0d5a5d0 Fix issue created by 62c14e4d5b 2023-10-02 12:34:33 -04:00
Chris Conlon
ecf666a121 Merge pull request #6819 from miyazakh/renesas_rz_opt
Update usage of sha acceleration on RSIP
2023-10-02 09:22:06 -06:00
Marco Oliverio
c70b3f297e fix: tls13: don't use stale suites pointers in CheckPreSharedKeys 2023-10-02 15:03:55 +00:00
Daniel Pouzzner
3e7f4c5f2d wolfcrypt/test/test.c: in aes_xts_128_test(), fix gate on LARGE_XTS_SZ test added in 3ea0fb30dd (disable for AF_ALG and pre-5.3 FIPS). 2023-09-30 12:07:56 -05:00
JacobBarthelmeh
369db531d2 Merge pull request #6817 from anhu/tls13_server_suppgroups
Allow the server to send supported groups extension in TLS 1.3
2023-09-29 13:53:37 -06:00
Anthony Hu
7c1cc5e8f9 Allow the server to send supported groups extension in TLS 1.3 2023-09-29 12:42:44 -04:00
JacobBarthelmeh
8a57936d7e Merge pull request #6801 from julek-wolfssl/zephyr-fixes
Misc zephyr fixes
2023-09-29 09:50:19 -06:00
JacobBarthelmeh
53f729f959 Merge pull request #6815 from SparkiDev/aes_xts_x64
AES XTS x64 ASM: add AVX1 and AESNI implementations
2023-09-29 09:42:58 -06:00
Hideki Miyazaki
e092c57675 change sha h/w acceleration implementation 2023-09-29 16:22:16 +09:00
JacobBarthelmeh
aedebac649 Merge pull request #6818 from bandi13/containerReadme
Container readme
2023-09-28 15:21:23 -06:00
Sean Parkinson
3ea0fb30dd AES XTS x64 ASM: add AVX1 and AESNI implementations
Adding AES-XTS AVX1 and AESNI implementations.
Fix name in comment at top of x64 assembly files.
2023-09-28 14:44:23 -05:00
Andras Fekete
005346d9ec Fix entrypoint 2023-09-28 14:45:51 -04:00
Andras Fekete
93358f1402 Define WOLFSSL_DIR 2023-09-28 13:59:04 -04:00
Andras Fekete
5e1bd8174c Push multi-platform wolfCLU to DockerHub 2023-09-28 13:55:38 -04:00
Andras Fekete
2ef83e142f Update buildAndPush.sh and README.md 2023-09-28 13:27:07 -04:00
JacobBarthelmeh
0571040e36 Merge pull request #6816 from bandi13/fixContainers
Fix containers
2023-09-28 10:37:20 -06:00
Andras Fekete
9fdb3cf17a Appease test scripts 2023-09-28 10:48:03 -04:00
Andras Fekete
b88754bb64 Add in clang-10 and clang-11 tests 2023-09-28 10:29:36 -04:00
Andras Fekete
5e3f00f6f7 Specify the OS version
'ubuntu-latest' doesn't have clang-12 in it anymore
2023-09-28 10:29:20 -04:00
Andras Fekete
0f4f677ea4 Show logs on test failure 2023-09-28 10:17:30 -04:00
JacobBarthelmeh
20f992af5e Merge pull request #6809 from SparkiDev/static_rsa_len_check_fix
Static RSA length check
2023-09-27 15:09:08 -06:00
Andras Fekete
d95ce57eea Fix script errors 2023-09-27 15:31:01 -04:00
JacobBarthelmeh
79a6cbc860 Merge pull request #6813 from anhu/elliptical
Fixup spelling: Elliptic
2023-09-26 17:11:12 -06:00
JacobBarthelmeh
a97e13f823 Merge pull request #6798 from gojimmypi/autogen-update-wsl-pr
no WSL/Windows git hooks from autogen.sh
2023-09-26 16:59:41 -06:00
Sean Parkinson
9acba6ee2d Static RSA length check
Better length check on decrypted pre-master secret length.
2023-09-27 07:55:53 +10:00
Anthony Hu
b22c2971e3 Fixup spelling: Elliptic
Fixes https://github.com/wolfSSL/wolfssl/issues/6767
2023-09-26 16:18:02 -04:00
JacobBarthelmeh
60f30e994d Merge pull request #6811 from gojimmypi/esp32-sha-revert-verbosity
ESP32 debug only: Mode REVERT to ESP32_SHA_SW
2023-09-26 13:34:43 -06:00
JacobBarthelmeh
f042863ddf Merge pull request #6807 from kareem-wolfssl/zd16715
Prevent current handshake counter from underflowing.
2023-09-26 10:55:52 -06:00
gojimmypi
4ece466fca ESP32 debug only: Mode REVERT to ESP32_SHA_SW 2023-09-26 08:32:23 -07:00
JacobBarthelmeh
237d10ab1e Merge pull request #6803 from gojimmypi/esp32-example-time
ESP32 examples: update interim set_time() fixed value
2023-09-25 13:34:22 -06:00
gojimmypi
83117ae33f ESP32 examples: interim set_time() fixed value 2023-09-23 17:16:19 -07:00
Kareem
df6a65e151 Prevent current handshake counter from underflowing. 2023-09-22 14:47:00 -07:00
JacobBarthelmeh
f9082c54e3 Merge pull request #6800 from DimitriPapadopoulos/codespell
More typos found by codespell
2023-09-22 14:12:34 -06:00
Andras Fekete
717249c0cc Trust github.com in container, add in possible Jenkins userIDs 2023-09-22 16:01:54 -04:00
Andras Fekete
f0d0a87822 Add in working cross-compiler container and builder script 2023-09-22 14:55:30 -04:00
Andras Fekete
1141f9bee9 Use wolfssl/wolfssl-builder as the container name 2023-09-22 14:55:01 -04:00
Juliusz Sosinowicz
470e839b26 Misc zephyr fixes
- Need to call fs_file_t_init() before calling fs_open()
- 0 is a valid POSIX socket number
- Include stdio.h when needed to simplify macro logic
- Define Zephyr specific macros in CMakeLists.txt to make for a better user experience
2023-09-22 12:19:06 +02:00
Dimitri Papadopoulos
f7d7006e87 More typos found by codespell 2023-09-22 11:38:24 +02:00
Takashi Kojo
a9548b2f11 fix NO_MALLOC guard in an error case 2023-09-22 10:05:21 +09:00
Takashi Kojo
2fafa722c2 fix NO_MALLOC guard in an error case 2023-09-22 09:13:41 +09:00
gojimmypi
d5b6aa318c no WSL/Windows git hooks copy for autogen.sh 2023-09-21 23:31:11 +02:00
Sean Parkinson
9442ec4b06 Merge pull request #6793 from danielinux/no_umaal_for_cortexm
Enforce WOLFSSL_SP_NO_UMAAL with _CORTEX_M_ASM
2023-09-21 22:29:32 +10:00
TakayukiMatsuo
4b1c29ce0c Merge pull request #6796 from miyazakh/doxygen_j_typo
Fix weird Japanese words in doxygen
2023-09-21 16:59:12 +09:00
Hideki Miyazaki
88254d3709 fix weird Japanese words 2023-09-21 09:12:22 +09:00
David Garske
347394cc6b Detect Cortex M3 (no UMAAL) and define WOLFSSL_SP_NO_UMAAL. 2023-09-20 17:10:27 -07:00
David Garske
16e6a8c150 Merge pull request #6795 from jpbland1/ech-double-free-fix
Fix ECH double free on rejection
2023-09-20 14:25:11 -07:00
David Garske
bc02006def Merge pull request #6794 from res0nance/fix-memory-type
pqc: fix memory type for shared secret storage server side
2023-09-20 14:24:42 -07:00
John Bland
f71423d626 set ssl->hsHashesEch to NULL regardless of acceptance
to avoid double free, clean up style violations
2023-09-20 14:51:40 -04:00
David Garske
f7ca923b4b Merge pull request #6783 from bandi13/more_async_cb
More async cb
2023-09-20 10:16:08 -07:00
Andras Fekete
9ed19cddfa Need to increment state after the async task completes 2023-09-20 12:23:14 -04:00
Chris Conlon
e91b6230a8 Merge pull request #6792 from miyazakh/renesas_ra6m4_r
Fix ra6m4 port
2023-09-20 09:10:10 -06:00
res0nance
0983ea9a80 pqc: fix memory type for shared secret storage server side
This gets copied to preMasterSecret and freed in
TLSX_KeyShare_ProcessPqc with the SECRET type but is allocated
with the TLSX type.
2023-09-20 15:45:26 +08:00
Hideki Miyazaki
8f9c3716ed fix ra6m4 port 2023-09-20 09:00:22 +09:00
Chris Conlon
5bc5b8a99b Merge pull request #6768 from miyazakh/renesas_rz
Renesas RZN2L support
2023-09-19 14:38:03 -06:00
David Garske
1cda8430fd Merge pull request #6709 from embhorn/zd16316
misc.h declarations for user defined functions with NO_INLINE disabled
2023-09-19 11:19:23 -07:00
David Garske
b72d02dd88 Merge pull request #6742 from embhorn/zd16187_2
Fixes for NO_FILESYSTEM and NO_BIO config
2023-09-19 11:19:07 -07:00
gojimmypi
5830f921fa ARIA cipher cmake (#6600)
* ARIA Cipher CMake support
2023-09-19 10:57:02 -07:00
David Garske
de3c9f19ef Merge pull request #6788 from bandi13/addCCacheDocker
Add CCache to the container to decrease compilation time
2023-09-19 10:39:51 -07:00
Andras Fekete
da39f66ff0 Remove accidental comment left in. 2023-09-19 13:10:16 -04:00
Andras Fekete
186d3c2eb4 Fixes to various Async issues 2023-09-19 13:10:16 -04:00
Andras Fekete
ad9779cdc1 Explicitly define code with WOLFCRYPT_ASYNC_CRYPT_SW 2023-09-19 13:10:16 -04:00
David Garske
763de1a685 Merge pull request #6790 from bandi13/codesonar
Clean up memory leaks
2023-09-19 09:48:22 -07:00
David Garske
eca28ea2f6 Merge pull request #6789 from bandi13/renameAsyncEnumPart2
Clean up double enum
2023-09-19 09:08:32 -07:00
David Garske
ba74c83f73 Merge pull request #6785 from embhorn/gh6760
Fix writedup rng leak
2023-09-19 08:23:41 -07:00
gojimmypi
9398fa0736 Espressif HW Improvements (#6624)
* Espressif HW Improvements
* revised AES HW/SW fallback logic for ESP32
2023-09-19 08:21:13 -07:00
Andras Fekete
2af5ae89a2 Rename enum to protect the innocent
WC_NO_PENDING_E indicates that there really isn't any asynchronous task that is pending.
2023-09-19 10:46:11 -04:00
Andras Fekete
c12bf79e56 Clean up double enum
This was necessary to have https://github.com/wolfSSL/wolfAsyncCrypt/pull/70 be able to merge
2023-09-19 10:30:04 -04:00
Andras Fekete
9472dd39e4 Add CCache to the container to decrease compilation time 2023-09-19 10:12:03 -04:00
Sean Parkinson
af6386732c AES GCM ARM32 alignment fix
Don't use xorbufout in GMULT.
Force the table to be aligned.
2023-09-19 09:21:20 +10:00
Eric Blankenhorn
911c4519ef Fix writedup rng leak 2023-09-18 16:19:22 -05:00
Andras Fekete
3bb0643cdd Clean up memory leaks 2023-09-18 16:53:48 -04:00
David Garske
1149522357 Merge pull request #6784 from bandi13/renameAsyncEnum
Allow code to build during rename
2023-09-18 12:41:53 -07:00
Andras Fekete
164fc8c5cb Allow code to build during rename 2023-09-18 14:47:35 -04:00
David Garske
1d7c6c94fe Merge pull request #6780 from SparkiDev/sp_x64_uninit
SP x64 ASM: Initialize pointers in RSA functions
2023-09-18 09:49:22 -07:00
David Garske
623549ce90 Merge pull request #6781 from SparkiDev/sp_arm64_asm_fixup_1
SP ARM64 ASM: fix sp_256_mont_dbl_4
2023-09-18 09:49:06 -07:00
Sean Parkinson
ea8bc82f85 SP ARM64 ASM: fix sp_256_mont_dbl_4
In sp_256_mont_dbl_4, not all used registers were in asm clobber list.
2023-09-18 15:17:39 +10:00
Sean Parkinson
c0edb7b583 SP x64 ASM: Initialize pointers in RSA functions
Windows compiler complains about uninitialized variables in these
functions. Set the pointers to NULL to quiet the compiler.
2023-09-18 14:49:19 +10:00
Hideki Miyazaki
7735ea0ff3 fix rx build failure 2023-09-16 11:48:49 +09:00
JacobBarthelmeh
1f2ddb7554 Merge pull request #6778 from danielinux/writeable_pkcs11_tokens
Add compile-time option WOLFSSL_PKCS11_RW_TOKENS
2023-09-15 11:46:03 -06:00
JacobBarthelmeh
5654691f05 Merge pull request #6775 from kareem-wolfssl/zd16652
Add a build flag ASN_TEMPLATE_SKIP_ISCA_CHECK to optionally skip the isCa != false check.
2023-09-15 11:43:04 -06:00
JacobBarthelmeh
139fd5d208 Merge pull request #6776 from SparkiDev/sp_ecc_x64
SP ECC: x64 minor speed improvement
2023-09-15 08:23:51 -06:00
Daniele Lacamera
ca56b79209 Add compile-time option WOLFSSL_PKCS11_RW_TOKENS
By default, wolfcrypt PKCS11 interface accesses tokens in read-only
mode. In some cases, we might want to build the client with write
permissions, i.e. when initializing tokens via C_InitToken().

The WOLFSSL_PKCS11_RW_TOKENS option, if present, allows write access to
PKCS11 tokens.
2023-09-15 15:18:11 +02:00
Hideki Miyazaki
5e97b9fde8 addressed review comments 2023-09-15 13:22:35 +09:00
Sean Parkinson
e9f1489997 SP ECC: x64 minor speed improvement
ARM32/Thumb2: for safer code, do two reductions in mont triple after doing double part.
2023-09-15 09:48:32 +10:00
Kareem
8e40130003 Add a build flag ASN_TEMPLATE_SKIP_ISCA_CHECK to optionally skip the isCa != false check. 2023-09-14 15:44:47 -07:00
JacobBarthelmeh
7d85e390a9 Merge pull request #6769 from cconlon/pkcs7ContentType
Support PKCS#7 definition for ContentType content ANY
2023-09-14 15:44:35 -06:00
JacobBarthelmeh
6b6c9f9ae0 Merge pull request #6772 from bandi13/zd16449_more_fixes
Zd16449 more fixes
2023-09-14 09:35:01 -06:00
Anthony Hu
6bf716bd26 Merge pull request #6743 from JacobBarthelmeh/unit_tests
add test case for ignoring cert path error
2023-09-14 11:04:35 -04:00
JacobBarthelmeh
f23e2a62e6 Merge pull request #6773 from SparkiDev/sp_arm_arch
SP: WOLFSSL_SP_ARM_ARCH to WOLFSSL_ARM_ARCH
2023-09-14 08:57:02 -06:00
Sean Parkinson
6a25cdeb28 SP: WOLFSSL_SP_ARM_ARCH to WOLFSSL_ARM_ARCH and fix SAKKE on Thumb2/ARM32
WOLFSSL_SP_ARM_ARCH no longer used.
Using WOLFSSL_ARM_ARCH instead.
Change umaal check to only available with WOLFSSL_ARM_ARCH > 6.
SAKKE mont_reduce with umaal not using correct registers at end.
2023-09-14 13:04:49 +10:00
JacobBarthelmeh
3ae23ec926 Merge pull request #6745 from res0nance/windows-test
ci: run windows test
2023-09-13 16:16:13 -06:00
JacobBarthelmeh
3697219244 Merge pull request #6747 from res0nance/multi-arch-ci
ci: Add CI for different archs
2023-09-13 16:12:35 -06:00
JacobBarthelmeh
ba03677569 Merge pull request #6770 from SparkiDev/sp_asm_improvements_1
SP ASM: improve performance
2023-09-13 16:01:03 -06:00
JacobBarthelmeh
624cb5e2bb Merge pull request #6744 from res0nance/windows-benchmark-config
windows: fix x64 benchmark release builds
2023-09-13 15:52:27 -06:00
Sean Parkinson
f5b96e7bde Merge pull request #6735 from anhu/lteq_0
Propose to convert a less than 0 to less than or equal to 0
2023-09-14 07:08:22 +10:00
Andras Fekete
3d332a4fad Remove accidental code change 2023-09-13 14:41:21 -04:00
Andras Fekete
2f63eb070e Fix memory leak if the function is being called again because of a retry 2023-09-13 14:05:57 -04:00
JacobBarthelmeh
f32f220919 Merge pull request #6752 from SparkiDev/aes_gmult_table_align_32bit
AES GMULT: add table implementation using 32-bit types
2023-09-13 11:38:03 -06:00
JacobBarthelmeh
ff233ce3af Merge pull request #6771 from res0nance/pqc-curvename
Fix wolfSSL_get_curve_name() returning NULL when using PQC groups
2023-09-13 10:54:58 -06:00
Sean Parkinson
114c8cc681 SP ASM: improve performance
Thumb2/ARM32: use umaal instruction to speed up mulitplication, squaring
and reduction. umaal not always available so use umlal instead.
Implementations for architectures less than 4 still kept - no umull.
Cleanup point arithmetic to not take shortcuts.
Make masking for constant time faster.
Add alternate asm for different compilers.
Get ARMv4 and ARMv6 compiling.
Remove whitespace at end of lines.
2023-09-13 21:13:53 +10:00
res0nance
825db397d7 Set namedGroup when generating pqc ciphertext
This fixes an issue where wolfSSL_get_curve_name() will
return NULL when using PQC groups.
2023-09-13 13:29:31 +08:00
Sean Parkinson
40c5048e38 AES GMULT: add table implementation using 32-bit types
32-bit ARM didn't load 64-bit pointers without alignment issues.
2023-09-13 13:44:17 +10:00
John Bland
eda3cd6a37 Merge pull request #6762 from jpbland1/ocsp-chain-count-retry
stop DoCertificate from reseting the cert chain
2023-09-12 21:42:09 -04:00
Hideki Miyazaki
1c9afb8b12 initial commit for RZN2L board Support 2023-09-13 09:22:55 +09:00
John Bland
6c8eaf26f5 update based on pr comments 2023-09-12 19:43:28 -04:00
John Bland
6e87fc7f90 switch to using ssl->error to check for previous error 2023-09-12 18:25:10 -04:00
Andras Fekete
971df19c5c Missing fix 2023-09-12 17:06:54 -04:00
John Bland
14017bd67e remove NULL check on non-pointer array 2023-09-12 14:42:33 -04:00
JacobBarthelmeh
86755dc7e4 Merge pull request #6766 from douzzer/20230911-linuxkm-my__show_free_areas-prototype
20230911-linuxkm-my__show_free_areas-prototype
2023-09-12 10:51:15 -06:00
David Garske
e4b211bee9 Merge pull request #6764 from bandi13/zd16449_async
Zd16449 async
2023-09-12 08:38:16 -07:00
Daniel Pouzzner
63e167e974 linuxkm/linuxkm_wc_port.h: add missing prototype for my__show_free_areas(). 2023-09-11 21:27:25 -05:00
John Bland
937aa3415f set last missing lastErr section 2023-09-11 18:24:37 -04:00
JacobBarthelmeh
61f48eb5a1 Merge pull request #6763 from DimitriPapadopoulos/codespell
Fix residual typos found by codespell
2023-09-11 15:55:34 -06:00
John Bland
b99b1d4cfd fix bad error setting and instances where lastErr
wasn't set as it should have been
2023-09-11 17:52:07 -04:00
Andras Fekete
d25f4f06bf clang-tidy is being super picky 2023-09-11 16:30:29 -04:00
Andras Fekete
c7f5043774 Fixes for the sanitizer 2023-09-11 15:57:20 -04:00
Andras Fekete
42985ebdfa Revert "Add in ASYNC_CRYPTO_SW checks"
This reverts commit f5ef7b40db.
2023-09-11 15:10:32 -04:00
Andras Fekete
6cb1aef836 Clean up old comments 2023-09-11 14:54:42 -04:00
Andras Fekete
07e2f90fbb Reorder and add async_* sources 2023-09-11 14:48:17 -04:00
Andras Fekete
b34348680a New format 2023-09-11 14:33:19 -04:00
Andras Fekete
f5ef7b40db Add in ASYNC_CRYPTO_SW checks 2023-09-11 13:12:09 -04:00
Andras Fekete
57e870e0d4 Add Async examples 2023-09-11 12:05:11 -04:00
JacobBarthelmeh
63477bcfdb Merge pull request #6733 from gojimmypi/windows-gettime_secs
implement gettime_secs for Windows (_MSC_VER) in tests/api.c
2023-09-11 09:31:30 -06:00
Dimitri Papadopoulos
d532833af9 Fix residual typos found by codespell 2023-09-11 11:34:28 +02:00
John Bland
d0c2609ebb stop ProcessPeerCerts from reseting the cert chain
count when an async error was returned
2023-09-11 01:56:58 -04:00
Chris Conlon
0bb9b85cd4 PKCS7: support PKCS#7 definition for ContentType eContent ANY, in addition to CMS OCTET_STRING definition 2023-09-08 16:32:15 -06:00
Andras Fekete
23ebace6b1 Fix event handling 2023-09-08 16:34:04 -04:00
JacobBarthelmeh
f9c2a86456 Merge pull request #6759 from kaleb-himes/SP_CACHE_UPDATE
Remove references to WOLFSSL_SP_CACHE_RESISTANT as it is always on
2023-09-08 14:27:38 -06:00
Andras Fekete
f9e5e4d08a Clean up the 'async-check.sh' script
Far too many times I got burned by passing the wrong argument and things getting set up wrong.
2023-09-08 15:05:22 -04:00
JacobBarthelmeh
f8f66191e3 Merge pull request #6750 from SparkiDev/curve25519_thumb2_2
Curve25519/Ed25519: align buffers
2023-09-08 10:36:25 -06:00
Sean Parkinson
90467aa578 Curve25519/Ed25519: align buffers
Make data structures align buffers.
Align buffers in functions.
Add versions that don't use umaal
2023-09-08 15:23:15 +10:00
Sean Parkinson
00a08374df Merge pull request #6707 from JacobBarthelmeh/xilinx
use flush instead of invalidate
2023-09-08 07:07:08 +10:00
Sean Parkinson
0e1706c3c7 Merge pull request #6756 from JacobBarthelmeh/docs
fix parameter typo in dox documentation
2023-09-08 07:03:39 +10:00
kaleb-himes
0fb514fa41 Remove references to WOLFSSL_SP_CACHE_RESISTANT as it is always on 2023-09-07 14:24:51 -06:00
David Garske
7ca6c129e5 Merge pull request #6755 from anhu/GetASNInt
Expose GetASNInt as part of WOLFSSL_ASN_API
2023-09-07 11:30:46 -07:00
gojimmypi
bba9add3a5 Merge branch 'master' of https://github.com/wolfssl/wolfssl into windows-gettime_secs 2023-09-07 08:54:42 -07:00
Anthony Hu
fddda8f582 Expose GetASNHeader in both template and original. 2023-09-07 09:52:27 -04:00
András Fekete
fc4e4f1238 Merge pull request #6757 from julek-wolfssl/zephyr-ci
Tie zephyr tests to a release
2023-09-07 08:49:10 -04:00
Juliusz Sosinowicz
ec7ecba0fe Tie zephyr tests to a release 2023-09-07 13:21:24 +02:00
gojimmypi
e74b3ecdad revert to only original gettime_secs changes per code review 2023-09-06 17:55:15 -07:00
JacobBarthelmeh
6e9c73eb12 fix parameter typo in dox documentation 2023-09-06 15:38:49 -07:00
Anthony Hu
6665f240e0 Expose GetASNInt as part of WOLFSSL_ASN_API 2023-09-06 18:17:42 -04:00
JacobBarthelmeh
755c39b5fc Merge pull request #6751 from ejohnstown/merge-fips-builds
FIPS 140-3 Pilot Program Check-in
2023-09-06 16:07:41 -06:00
Daniel Pouzzner
344e1661e1 wolfcrypt/src/{hmac.c,sha256.c,sha512.c,kdf.c}: ForceZero() smallstack buffers before freeing them, and ForceZero() the Hmac, wc_Sha512, wc_Sha384, wc_Sha256, and wc_Sha224 structures at the end of their respective freeing routines. also, remove superseded ForceZero() calls in wc_HKDF_Expand(), wc_SSH_KDF(), and wc_HKDF_Extract(). 2023-09-06 14:53:19 -05:00
JacobBarthelmeh
51cb80b865 Merge pull request #6753 from bandi13/disableZephyrTests
Temporarily disable until we can figure out the issue
2023-09-06 11:18:01 -06:00
Daniel Pouzzner
5540449315 wolfcrypt/src/port/arm/armv8-aes.c: add missing implementations of wc_AesCtrSetKey(), and add (void)dir in implementation to silence -Wunused. 2023-09-06 08:20:25 -07:00
Andras Fekete
f0743a70b4 Temporarily disable until we can figure out the issue 2023-09-06 09:24:34 -04:00
John Safranek
fb91f1c1fd Update the ARM asm files with a missing initialization for SHA2-256 and
the AesCtrSetKey function for AES-CTR.
2023-09-05 17:07:08 -07:00
John Safranek
d866144fb1 Merge branch 'master' into merge-fips-builds 2023-09-05 16:52:36 -07:00
John Safranek
db858fd052 Merge tag 'v5.2.1-stable' into merge-fips-builds
Check-in FIPS 140-3 PILOT
2023-09-05 13:50:29 -07:00
JacobBarthelmeh
298b488bf1 Merge pull request #6749 from cconlon/jniCertReq
Add WOLFSSL_CERT_EXT to --enable-jni, minor CSR items
2023-09-01 16:15:10 -06:00
JacobBarthelmeh
0352b384a5 Merge pull request #6731 from SparkiDev/aes_arm32_thumb2
AES ARM32 and Thumb2 ASM: fixup ARM32 and add Thumb2
2023-09-01 15:56:12 -06:00
JacobBarthelmeh
cd02d5140f Merge pull request #6738 from philljj/wolfcrypt_lms_verify_only
Wolfcrypt LMS verify-only support
2023-09-01 13:25:31 -06:00
Chris Conlon
a2e2a3e994 add --enable-certreq to --enable-jni, support extKeyUsage in X509_REQ_sign, add missing X509_REQ_print fields 2023-09-01 11:59:21 -06:00
Daniel Pouzzner
196f154c51 wolfcrypt/src/curve25519.c: use endian-conditional initializer for kCurve25519BasePoint. 2023-09-01 11:36:18 -05:00
res0nance
cf32bc362b ci: Add CI for different archs 2023-09-01 16:40:37 +08:00
jordan
b36c312ef3 LMS verify-only support: fix clang warning, rename define. 2023-08-31 21:46:00 -05:00
David Garske
136cb98412 Force 32-bit alignment on kCurve25519BasePoint 2023-09-01 12:14:55 +10:00
JacobBarthelmeh
efd08eadb8 Merge pull request #6746 from douzzer/20230831-ge_p3_dbl
20230831-ge_p3_dbl
2023-08-31 15:06:17 -06:00
Daniel Pouzzner
dc2905ce80 wolfssl/wolfcrypt/ge_operations.h: fix for bugprone-macro-parentheses in ge_p3_dbl() found by multi-test clang-tidy-all-intelasm. 2023-08-31 13:22:53 -05:00
JacobBarthelmeh
ffd6c2b859 Merge pull request #6625 from TakayukiMatsuo/jp6352
Update Japanese API comments
2023-08-31 10:03:09 -06:00
res0nance
3dec8279a0 windows: fix x64 benchmark release builds
The linker should use the x64 option for 64-bit builds
2023-08-31 20:02:37 +08:00
res0nance
a99139574a ci: run windows test 2023-08-31 19:59:05 +08:00
jordan
03088b2946 LMS verify-only support: tiny correction to INSTALL. 2023-08-30 21:02:50 -05:00
JacobBarthelmeh
927930c86e Merge pull request #6740 from SparkiDev/ecies_kdf
ECIES: add support for other KDFs
2023-08-30 16:27:39 -06:00
Sean Parkinson
b546473495 Merge pull request #6739 from JacobBarthelmeh/fuzzing
additional sanity check with GetIntPositive
2023-08-31 07:11:05 +10:00
JacobBarthelmeh
e748e1be32 add test case for ignoring cert path error 2023-08-30 12:45:29 -07:00
JacobBarthelmeh
2aefdfe9d5 Merge pull request #6737 from anhu/ignoreBadPath
Add new feature macro WOLFSSL_IGNORE_BAD_CERT_PATH.
2023-08-30 13:37:56 -06:00
Eric Blankenhorn
7262a30074 Fixes for NO_FILESYSTEM config 2023-08-30 13:54:49 -05:00
JacobBarthelmeh
944db2c2e5 Merge pull request #6726 from julek-wolfssl/dropped-ccs
Server should not ignore plaintext packets as long as it has stuff to rtx
2023-08-30 09:40:14 -06:00
Eric Blankenhorn
4e86523624 Fix NO_BIO build error 2023-08-30 10:24:25 -05:00
Sean Parkinson
0638ec234b AES ARM32 and Thumb2 ASM: fixup ARM32 and add Thumb2
Fix which functions and data are compiled in depending on defines.
Better handing of constants.
Also fix Aarch64 ed25519 inline assembly.
2023-08-30 20:34:51 +10:00
Sean Parkinson
41d6afcfa1 ECIES: add support for other KDFs 2023-08-30 10:37:57 +10:00
JacobBarthelmeh
1ada2e6a43 additional sanity check with GetIntPositive 2023-08-29 15:43:01 -07:00
jordan
bbf105f8dc LMS verify-only support: update INSTALL. 2023-08-29 16:37:21 -05:00
jordan
8662312ecf LMS verify only support. 2023-08-29 15:46:18 -05:00
Anthony Hu
d7bb5aa367 Add new feature macro WOLFSSL_IGNORE_BAD_CERT_PATH. 2023-08-29 10:28:02 -04:00
Kaleb Himes
70c362f680 Merge pull request #6736 from ejohnstown/fips-update
FIPS Update
2023-08-29 08:21:47 -06:00
JacobBarthelmeh
c47600c52c update comment 2023-08-29 12:45:45 +02:00
Juliusz Sosinowicz
a0fef66c3b Add test case for dropped ccs 2023-08-29 12:45:45 +02:00
Juliusz Sosinowicz
357c9a68f2 Only drop plaintext msgs when we don't have stuff to rtx 2023-08-29 12:45:13 +02:00
Juliusz Sosinowicz
6e3c3577f5 Refactor the crazy conditional in VerifyForDtlsMsgPoolSend 2023-08-29 12:45:13 +02:00
gojimmypi
d8fe8b9140 gettime_secs() in api.c now uses TimeNowInMilliseconds() 2023-08-28 18:14:29 -07:00
gojimmypi
e303f8709c move TimeNowInMilliseconds from tls13.c to internal,c; now WOLFSSL_API 2023-08-28 18:13:24 -07:00
John Safranek
b13294623b FIPS Update
1. Restore the linuxv5 option of fips-check.
2. Added option linuxv5.2.1 to fips-check.
2023-08-28 16:41:47 -07:00
John Safranek
2380086209 FIPS Update
1. Rename the error code for degraded mode so it matches what's in the
   fips repo.
2. Update the tag used for linuxv5 builds in the fips-check script.
2023-08-28 15:11:13 -07:00
kaleb-himes
3a5e171636 Check-in fips_test.h changes to master as well 2023-08-28 14:22:37 -07:00
Anthony Hu
354b28eea0 Propose to convert a less than 0 to less than or equal to 0 2023-08-28 17:16:34 -04:00
gojimmypi
4058dbec7c Merge branch 'master' of https://github.com/wolfssl/wolfssl into windows-gettime_secs 2023-08-28 11:40:51 -07:00
JacobBarthelmeh
c5c968aae3 Merge pull request #6722 from julek-wolfssl/zd/16550
ZD16550
2023-08-28 10:19:19 -06:00
JacobBarthelmeh
872551a5fc Merge pull request #6734 from julek-wolfssl/curl-action-correct-name
Correct name in curl github action
2023-08-28 09:30:34 -06:00
Juliusz Sosinowicz
9bea33b598 Correct name in curl github action 2023-08-28 11:55:42 +02:00
Juliusz Sosinowicz
b02fe0853f CI fixes 2023-08-28 10:52:36 +02:00
Juliusz Sosinowicz
57ce894393 CRL refactor
- CheckCertCRLList: check all entries in case a single issuer has multiple CRL's loaded
- test_multiple_crls_same_issuer: testing two different certificates forcing the client to check both CRL's from the same issuer
- CRL_Entry
  - use a lock instead of a mutex to allow multiple threads to access the same list simultaneously
  - add a verifyMutex when doing verification so that we don't have to release the crlLock
- Add allocation and free functions for CRL_Entry
- DupCRL_Entry: simplify copying by copying all static fields in one memcpy
2023-08-28 10:52:36 +02:00
Juliusz Sosinowicz
abfcda8750 Decode the key usage extension as LE not BE 2023-08-28 10:52:36 +02:00
Juliusz Sosinowicz
e85901c8e5 Only list supported sigalgs in certreq 2023-08-28 10:52:36 +02:00
gojimmypi
321f74869a implement gettime_secs for Windows (_MSC_VER) in tests/api.c 2023-08-25 18:30:05 -07:00
JacobBarthelmeh
5b5e66b55f Merge pull request #6732 from billphipps/correct_cryptocb_debug
Correct cryptocb cmd debug message
2023-08-25 13:57:32 -06:00
billphipps
7a6e851a82 Corrected print format string. 2023-08-25 13:59:23 -04:00
JacobBarthelmeh
2a5ed11f34 Merge pull request #6730 from gojimmypi/aria-no-openssl
ARIA no longer needs OpenSSL enabled
2023-08-25 11:48:11 -06:00
JacobBarthelmeh
b20c6c54d1 Merge pull request #6729 from ejohnstown/degraded-mode
FIPS Degraded Mode
2023-08-25 10:10:22 -06:00
JacobBarthelmeh
14deb7afda Merge pull request #6700 from julek-wolfssl/dtls13-downgrade-acks
DTLS 1.3: do not send ACKs until we negotiate 1.3 (through SH)
2023-08-25 09:34:53 -06:00
billphipps
d7f8cc55d8 Update wolfcrypt/src/cryptocb.c
Correction
2023-08-25 11:24:47 -04:00
billphipps
27bc7219e5 Correct cryptocb cmd debug message 2023-08-25 11:16:15 -04:00
TakayukiMatsuo
0484f3e0f7 Update Japanese API comments to match PR6352 2023-08-25 10:32:10 +09:00
John Safranek
e48b7ef3d7 FIPS Degraded Mode
1. Add error code for entering FIPS degraded mode.
2. Add string for the error code.
2023-08-24 16:27:23 -07:00
gojimmypi
8803510375 ARIA no longer needs OpenSSL enabled 2023-08-24 15:57:14 -07:00
JacobBarthelmeh
c9e9e0fc72 Merge pull request #6704 from icing/session-copy-on-write
Updating a shared session objects needs to do copy on write
2023-08-24 16:52:17 -06:00
JacobBarthelmeh
2f2dddde25 Merge pull request #6727 from bigbrett/tls13-sniffer-keylogfile
TLS 1.3 sniffer keylog file support
2023-08-24 16:52:00 -06:00
kaleb-himes
c98ce0d18c FIPS 140-3 Pilot Program Check-in 2023-08-24 14:29:32 -07:00
JacobBarthelmeh
a6257ca635 Merge pull request #6724 from julek-wolfssl/zd/16445
ZD16445
2023-08-24 13:46:49 -06:00
Brett Nicholas
f1027464e8 added tls13 keylog test, refactored diff test to only use app data output 2023-08-24 13:05:01 -06:00
Brett Nicholas
15918d8ee6 First pass at TLS1.3 keylog file working 2023-08-24 13:04:59 -06:00
JacobBarthelmeh
5f44a73f8e Merge pull request #6725 from julek-wolfssl/zd/16598
TLSX_CA_Names_Parse: Include header in length check
2023-08-24 10:30:07 -06:00
JacobBarthelmeh
6b09b5c0cf Merge pull request #6690 from julek-wolfssl/packaging
Init deb packaging
2023-08-24 10:28:24 -06:00
David Garske
88ad5ce6b0 Merge pull request #6607 from SparkiDev/curve25519_thumb2
Thumb2 ASM, Curve25519
2023-08-24 08:29:54 -07:00
Juliusz Sosinowicz
82c5170659 TLSX_CA_Names_Parse: Include header in length check 2023-08-24 15:23:37 +02:00
Juliusz Sosinowicz
8ce71cc19c Call HaveUniqueSessionObj when we need to have a unique session object 2023-08-24 15:01:22 +02:00
Juliusz Sosinowicz
06d81f7f8f Add a test case that negotiates tickets during another handshake 2023-08-24 15:01:22 +02:00
Juliusz Sosinowicz
b44d31df02 Jenkins fixes 2023-08-24 10:57:45 +02:00
Juliusz Sosinowicz
b771b6ebf5 ZD16445
- Use unions for type punning in xor API
- Initialise potentially uninitialised variables
- Use `LL` suffix to specify a larger integer type
- Don't use `max` as it can shadow other definitions
2023-08-24 10:53:26 +02:00
Sean Parkinson
36b92a4cef Thumb2 ASM, Curve25519
Add support for compiling ASM for Thumb2
Add Curve25519 ASM for Thumb2
Limit assembly code compiled when Ed25519 not required.
Rework all assembly implementations to replace ge_*() functions instead
of having fe_ge_*() versions that take many parameters.
Get ARM32 inline asm working.
2023-08-24 17:43:03 +10:00
Juliusz Sosinowicz
a99954c0b0 Update dtls_expected_peer_handshake_number when downgrading 2023-08-23 23:20:51 +02:00
Juliusz Sosinowicz
9ca1738b7a Fix newlines in async script 2023-08-23 23:20:51 +02:00
Juliusz Sosinowicz
5624b6e9d2 Update comment 2023-08-23 23:20:51 +02:00
Juliusz Sosinowicz
058dfca809 Use explicit field to signal that we received a unified hdr 2023-08-23 23:20:51 +02:00
Juliusz Sosinowicz
3cc473b1ec Check that HVR and HRR don't appear in the same connection 2023-08-23 22:18:21 +02:00
Juliusz Sosinowicz
9427bea275 DTLS 1.3: do not send ACKs until we negotiate 1.3 (through SH) 2023-08-23 22:18:21 +02:00
Stefan Eissing
7b29362d90 Updating a shared session objects needs to do copy on write 2023-08-23 22:15:25 +02:00
JacobBarthelmeh
32a07a7f5a Merge pull request #6723 from anhu/bench_sphincs_gating
More gating on HAVE_SPHINCS in benchmarks
2023-08-23 14:10:51 -06:00
Juliusz Sosinowicz
24cf794342 Increase timeout as macos build time are very variable (due to homebrew) 2023-08-23 22:01:12 +02:00
Juliusz Sosinowicz
7a12202675 Init deb packaging
- rpm: Simplify script and list wolfSSL as packager
- add packaging github action
2023-08-23 22:01:12 +02:00
Anthony Hu
1608cb8b45 More ating on HAVE_SPHINCS in benchmarks 2023-08-23 14:03:22 -04:00
Hideki Miyazaki
827287000c Merge pull request #6720 from TakayukiMatsuo/jp6506
Apdate Japanese API comments to match them in PR6506
2023-08-23 09:48:05 +09:00
JacobBarthelmeh
3033371abc Merge pull request #6717 from bigbrett/sniffer-keylogfile
sniffer keylog file support
2023-08-22 14:06:27 -06:00
JacobBarthelmeh
fd9c78d93f Merge pull request #6721 from bandi13/udp_proxy-fixes
Udp proxy fixes
2023-08-22 13:13:57 -06:00
Brett Nicholas
66c53b0996 Decoupled keylogfile registration and sniffer server creation APIs
fixed (very old) use-after-free found by ASAN

Updated documentation

review comments (spelling and housekeeping)
2023-08-22 11:29:58 -06:00
Brett Nicholas
2ee6a01d91 Initial sniffer keylog file support for TLS 1.2 2023-08-22 11:23:46 -06:00
JacobBarthelmeh
205cdb1809 Merge pull request #6719 from anhu/MBSTRING_ASC
Support MBSTRING_ASC for cert encoding
2023-08-22 09:29:50 -06:00
Andras Fekete
c4f91cdc8d Revert "Don't run script un-bwrapped"
This reverts commit d321ae2fd5.
2023-08-22 10:00:00 -04:00
Andras Fekete
d54aa0dabd Display test duration 2023-08-22 09:51:42 -04:00
Andras Fekete
d321ae2fd5 Don't run script un-bwrapped 2023-08-22 09:43:59 -04:00
Andras Fekete
c1821e9ed2 Decrease timeout to 1m. Most tests complete in seconds 2023-08-22 09:43:33 -04:00
Andras Fekete
79d831c712 Set customizable PCAP file name 2023-08-22 09:32:51 -04:00
Andras Fekete
88c32a510e Wrap script in a bwrap environment 2023-08-22 09:30:51 -04:00
Andras Fekete
e487b73809 Reduce likelihood of two tests running and saving to the PCAP dump 2023-08-21 13:37:34 -04:00
JacobBarthelmeh
5339fe0d9f Merge pull request #6715 from anhu/WOLFSSL_NO_SPHINCS
Allow easily disabling of SPHINCS+.
2023-08-21 09:26:16 -06:00
Andras Fekete
307ce9d623 Only drop the first Nth packet, not every 2023-08-21 09:55:23 -04:00
Andras Fekete
bf438c85e1 Add in a marker to the PCAP file 2023-08-21 09:55:23 -04:00
TakayukiMatsuo
174f0b2ebc Apdate Japanese API comments to match them in PR6506 2023-08-20 15:25:33 +09:00
JacobBarthelmeh
928dd70213 Merge pull request #6716 from bandi13/dtls_test_cleanup
DTLS test cleanup
2023-08-18 16:48:21 -06:00
JacobBarthelmeh
9cc8cdcc30 Merge pull request #6712 from philljj/spelling_cleanup
Used codespell and fixed obvious typos.
2023-08-18 16:29:36 -06:00
Anthony Hu
7669f966f3 Support MBSTRING_ASC for cert encoding 2023-08-18 17:50:25 -04:00
Andras Fekete
dbd5d713e7 Add in a marker to the PCAP file 2023-08-18 14:10:47 -04:00
Andras Fekete
9a007604e4 Usage documentation 2023-08-18 14:05:07 -04:00
JacobBarthelmeh
65217cbc70 Merge pull request #6713 from ejohnstown/fips-check-exp-ver
FIPS Check Script with Explicit Versioning
2023-08-18 11:20:23 -06:00
Andras Fekete
bea1b6f89b Use unique temp file names 2023-08-18 13:11:31 -04:00
Andras Fekete
3df434930e Add in total test run count 2023-08-18 13:06:13 -04:00
Andras Fekete
883d4dc219 Clean up the script 2023-08-18 13:04:36 -04:00
JacobBarthelmeh
033b0785e3 Merge pull request #6714 from julek-wolfssl/rename-utils.c
Rename utils.c to utils.h
2023-08-18 10:37:00 -06:00
John Safranek
b9dbd86fab FIPS Check Script with Explicit Versioning
1. Remove the case block deciding if to checkout the wolfcrypt files or
   not, it is redundant. Things are set up now where we don't need it.
2. Comment reflow.
Changes due to peer review:
3. Change the check for the temp mytag branches to use a git command
   that provides an exact match, rather than a foulable grep check.
4. Change the fips repo file checkout to work the same way as the
   wolfcrypt files. Each file in the copy list is tagged with its
   revision.
2023-08-18 09:27:53 -07:00
Andras Fekete
62bb434aa6 Remove debugging code 2023-08-18 11:14:50 -04:00
Andras Fekete
dfc4850e75 Add extra flags for DTLS1.3 2023-08-18 11:11:25 -04:00
Andras Fekete
e0b90a0463 Rename the script to be a bit more generic 2023-08-18 11:11:08 -04:00
Andras Fekete
8772d8b868 Able to adjust DTLS version globally 2023-08-18 11:05:36 -04:00
Andras Fekete
bad00ea9f7 Adding in tcpdump capture 2023-08-18 11:04:45 -04:00
Andras Fekete
f089b2c2f6 Clean up code 2023-08-18 10:21:44 -04:00
Andras Fekete
fea48e2505 Drop every i'th packet 2023-08-18 10:05:12 -04:00
Andras Fekete
49dc3a473b Run through all the tests and give a tally for failed 2023-08-18 10:03:58 -04:00
Anthony Hu
a24f99fbf6 Allow easily disabling of SPHINCS+. 2023-08-18 10:00:47 -04:00
Andras Fekete
bc7c8af5de Massively simplified the tests 2023-08-18 09:41:13 -04:00
Juliusz Sosinowicz
b32ff0b0b8 Rename utils.c to utils.h
This better signals that this file is meant to be included directly in testing programs and also plays better with my IDE.
2023-08-18 15:05:23 +02:00
Sean Parkinson
975047bd22 Merge pull request #6710 from JacobBarthelmeh/PKCS7
initialize kari decoded cert
2023-08-18 10:24:48 +10:00
John Safranek
3e93c5e253 FIPS Check Script with Explicit Versioning
1. Move the command line updatable variables to the beginning of the
   script.
2. Reorder the OE names in the usage list.
3. Add the missing asm files.
4. Correct the regex for the fipsv2-OE-ready version name.
2023-08-17 14:37:48 -07:00
John Safranek
6724a3d005 FIPS Check Script with Explicit Versioning
1. Remove the demo OE.
2. Update all OEs with the new file lists.
3. Merge OEs with same files and tags, and add a check for the
   difference to optionally update that. For example, solaris is the
   same file list and tags as linuxv2, but uses gmake instead of make.
2023-08-17 14:35:45 -07:00
John Safranek
87695adc82 FIPS Check Script with Explicit Versioning
1. Remove the demo variable presets. Actually use them in testing.
2. FIPS_REPO can be set to a local file path to speed up testing.
3. Add files missing from the demo OE checkout.
4. Add the fips-read OE files.
5. Add the quiet option to grep.
2023-08-17 14:32:40 -07:00
John Safranek
98c50e05a3 FIPS Check Script with Explicit Versioning
1. Add an optional initialized variable for the KEEP option and default
   it to 'yes' temporarily.
2. Comment out all the descriptions for all the OEs except the test OE.
3. Update the copy FIPS file list format to have the file path and add
   the tag to use for copying as the first item.
4. Merge the branch-creation and file checkout into one function. Remove
   the local path changing.
5. Update and simplify the FIPS file copying function.
6. Remove the old copying code.
7. When updating the fipsv2-OE-ready version string, also check that
   fips.c is non-zero.
8. Use explicit paths for files.
2023-08-17 14:25:48 -07:00
John Safranek
0fd96be7f8 FIPS Check Script with Explicit Versioning
1. Add a test OE for trying out the new methods.
2. Add a temporary way to trigger using the new methods.
3. Add a function to check out different versions of files in the repo,
   and only adding a new branch when needed.
4. Remove the old checkout code.
2023-08-17 14:23:13 -07:00
Sean Parkinson
b156e83990 Merge pull request #6711 from bandi13/mp_sqrtmod_prime-static
Set mp_sqrtmod_prime as static
2023-08-18 07:13:55 +10:00
jordan
d4ba2e50d4 Used codespell and fixed obvious typos. 2023-08-17 15:20:10 -05:00
Andras Fekete
c917eee70e Set mp_sqrtmod_prime as static
This function is not in any header files, and wasn't meant to be exposed.
2023-08-17 13:52:17 -04:00
JacobBarthelmeh
cc4e327316 Merge pull request #6544 from TakayukiMatsuo/rpk
Add support for raw-public-key
2023-08-17 09:23:18 -06:00
JacobBarthelmeh
ba4842aded Merge pull request #6703 from anhu/guard_sphincs
Guard sphincs away properly.
2023-08-16 14:40:11 -06:00
JacobBarthelmeh
d7b2626433 initialize kari decoded cert 2023-08-16 13:20:29 -07:00
Andras Fekete
7023f86e66 Remove unnecessary code
'bc' is not installed in VM images. Don't want to run 'killall' in Jenkins tests
2023-08-16 16:01:47 -04:00
Eric Blankenhorn
a78694e5bf misc.h declarations for user defined functions with NO_INLINE disabled 2023-08-16 12:45:37 -05:00
JacobBarthelmeh
afd0d07d9a Merge pull request #6706 from bandi13/ZD16551
Add in another clamp to prevent infinite loops
2023-08-16 11:03:44 -06:00
Chris Conlon
ac90fa8d60 Merge pull request #6701 from miyazakh/fspsm
generalize Renesas SCE Protected port
2023-08-16 09:38:18 -06:00
JacobBarthelmeh
ec818e5dbd Merge pull request #6682 from gojimmypi/Espressif-template
Add Espressif ESP-IDF template project
2023-08-15 16:37:24 -06:00
JacobBarthelmeh
c3ebfd133b use flush instead of invalidate 2023-08-15 15:05:47 -07:00
Hideki Miyazaki
0d8f68ef03 address review comments 2023-08-16 06:30:13 +09:00
Andras Fekete
437c2020bd Add in another clamp to prevent infinite loops
M = i - 1 would make it 2^0. Anything above that would be negative powers which don't make sense.
2023-08-15 17:05:43 -04:00
JacobBarthelmeh
45bcb65dc0 Merge pull request #6659 from gojimmypi/ESP32_Info_link_change
updated comment links for Espressif examples
2023-08-15 14:58:06 -06:00
JacobBarthelmeh
a71114b4cb Merge pull request #6702 from bandi13/ZD16572
Check the return value
2023-08-15 14:57:26 -06:00
Andras Fekete
f1b4387eca Return a failure if the sizes don't match 2023-08-15 15:00:06 -04:00
Anthony Hu
9bb6c1b70e Guard away properly; don't build sphincs code. 2023-08-14 21:31:28 -04:00
Chris Conlon
24f60cc435 Merge pull request #6699 from JacobBarthelmeh/PKCS7
init mp_int before use
2023-08-14 16:11:33 -06:00
JacobBarthelmeh
bbcd91b59a Merge pull request #6621 from bandi13/addPKIXSSH
Add in PKIXSSH
2023-08-14 16:08:29 -06:00
Andras Fekete
b3a1badecf Check the return value 2023-08-14 17:02:59 -04:00
Andras Fekete
300c183453 Update README 2023-08-14 11:21:12 -04:00
Andras Fekete
5002ef19b1 Give GDB permission to attach to processes as non-root 2023-08-14 11:21:00 -04:00
Hideki Miyazaki
47caa9b06d generalize sce protect impl to fsp sm(secure module) 2023-08-13 09:23:03 +09:00
Hideki Miyazaki
d3d131d08d Merge pull request #6663 from TakayukiMatsuo/jp6417
Update Japanese API comments
2023-08-12 08:05:41 +09:00
JacobBarthelmeh
bd14be8553 init mp_int before use 2023-08-11 10:04:17 -07:00
Andras Fekete
4167a51fe9 Add in 'udp-proxy' 2023-08-11 11:23:09 -04:00
JacobBarthelmeh
8bb8f64373 Merge pull request #6698 from anhu/compat_into_settings_h
Bring compat layer logic from configure.ac into settings.h
2023-08-11 09:23:03 -06:00
JacobBarthelmeh
46229bb167 Merge pull request #6693 from bandi13/ZD16551
Add in clamp for mp_sqrtmod_prime
2023-08-11 09:22:53 -06:00
Andras Fekete
568bf35555 Reduce image size 2023-08-11 11:22:08 -04:00
JacobBarthelmeh
a4152ab341 Merge pull request #6695 from philljj/fix_test_x509_guards
Fix define guards for X509 api tests.
2023-08-11 09:18:00 -06:00
JacobBarthelmeh
61761143e7 Merge pull request #6696 from philljj/small_benchmark_cleanup
Tiny cleanup to benchmark print usage.
2023-08-11 09:16:48 -06:00
JacobBarthelmeh
c29227dcbb Merge pull request #6694 from kareem-wolfssl/gh6689
Change enum ecc_curve_load_mask into defines
2023-08-11 09:13:03 -06:00
Anthony Hu
507ec9f7d2 Bring compat layer logic from configure.ac into settings.h 2023-08-11 00:11:36 -04:00
TakayukiMatsuo
3a5739a8fa Add support for raw-public-key 2023-08-11 11:29:15 +09:00
Andras Fekete
6b1513a769 Clean up garbage characters 2023-08-10 16:41:11 -04:00
Andras Fekete
66c529e610 Add in PKIXSSH 2023-08-10 16:41:11 -04:00
JacobBarthelmeh
65401cfd35 Merge pull request #6697 from julek-wolfssl/refactor-cond-again
Refactor conditional code again
2023-08-10 13:49:46 -06:00
JacobBarthelmeh
26fcdbf348 Merge pull request #6688 from kareem-wolfssl/gh6684
Update set1_groups/_list prototype conditions to match the functions' conditions.  Fixes #6684.
2023-08-10 13:35:49 -06:00
Juliusz Sosinowicz
c3fea8c930 fixup! client: resend data when didn't receive reply after timeout 2023-08-10 20:14:35 +02:00
Juliusz Sosinowicz
e96837aa34 cond: Add start and end API for mutex handling 2023-08-10 18:07:51 +02:00
Juliusz Sosinowicz
1b393199f4 client: resend data when didn't receive reply after timeout 2023-08-10 18:07:35 +02:00
jordan
779b87f03a Tiny cleanup to benchmark print usage. 2023-08-10 09:47:07 -05:00
jordan
5255b02fbb Fix define guards for X509 api tests. 2023-08-10 08:49:25 -05:00
Kareem
1bb0199a2b Change enum ecc_curve_load_mask into defines 2023-08-09 17:35:01 -07:00
JacobBarthelmeh
6ea1e7d824 Merge pull request #6683 from dgarske/tpm_ecc
Enable math API's for wolfTPM
2023-08-09 17:11:33 -06:00
JacobBarthelmeh
12685d7713 Merge pull request #6686 from dgarske/fix_cond
Fixes for wolfSSL conditional porting
2023-08-09 12:08:05 -06:00
JacobBarthelmeh
35f4a1a09d Merge pull request #6672 from anhu/cert_err_message
Add some OpenSSL compat error strings.
2023-08-09 09:28:51 -06:00
Juliusz Sosinowicz
737e12a1bd fixup! Initialize BIO methods at compile time 2023-08-09 17:04:59 +02:00
Juliusz Sosinowicz
b86d2a3bff Fix typo 2023-08-09 16:47:14 +02:00
Juliusz Sosinowicz
bc4c0df315 Update multi-compiler timeout 2023-08-09 16:47:03 +02:00
Andras Fekete
9b81b0b505 Add in clamp for mp_sqrtmod_prime 2023-08-09 10:44:59 -04:00
Juliusz Sosinowicz
d747df2ae4 Make sure no mutexes are held when cond API are called 2023-08-09 16:25:58 +02:00
Juliusz Sosinowicz
7ba00f3b84 Initialize BIO methods at compile time 2023-08-09 16:23:46 +02:00
Juliusz Sosinowicz
6fcdead112 Check error codes from pthread funcs 2023-08-09 14:20:29 +02:00
Juliusz Sosinowicz
27feb9b9e9 Simplify mac cond type 2023-08-09 14:18:32 +02:00
Kareem
9f577dc4d4 Update set1_groups/_list prototype conditions to match the functions' conditions. Fixes #6684. 2023-08-08 17:56:56 -07:00
JacobBarthelmeh
e9e5d70aad Merge pull request #6674 from ejohnstown/fips-check-update
FIPS Check Update
2023-08-08 15:42:28 -06:00
David Garske
c7b6fa2931 Return codes and missed srtp. 2023-08-08 13:58:38 -07:00
Anthony Hu
5daabe0801 Suggestion from Jacob to remove OPENSSL_EXTRA_X509_SMALL 2023-08-08 16:35:55 -04:00
David Garske
39f632d096 Remove lockCount. 2023-08-08 12:51:27 -07:00
David Garske
5b16586483 Fixes for wolfSSL conditional porting. Can cause deadlock in high usage situations. Added better signal support on MacOS. Issue created in PR #6437. 2023-08-08 12:46:42 -07:00
JacobBarthelmeh
0dbc7d0b13 Merge pull request #6685 from anhu/sm4_disabled
SM4 disabled
2023-08-08 13:37:23 -06:00
Anthony Hu
958113c070 Correct configure defaults for SM4-GCM and SM4-CCM (disabled) 2023-08-08 13:06:00 -04:00
TakayukiMatsuo
9f6d48891a Update Japanese API comments 2023-08-08 13:29:46 +09:00
gojimmypi
a957f0e2c3 config.h not needed for Espressif example 2023-08-07 15:09:20 -07:00
David Garske
75f81db084 New TPM ECC encrypt needs access to the mp_ math functions. 2023-08-07 15:06:58 -07:00
gojimmypi
69eeedbac3 Add Espressif ESP-IDF template project 2023-08-07 15:03:21 -07:00
JacobBarthelmeh
33e31ed41c Merge pull request #6675 from douzzer/20230805-clang-18-tidy-fixes
20230805-clang-18-tidy-fixes
2023-08-07 14:55:15 -06:00
Daniel Pouzzner
e51ca7941f fixes for code warned by clang-tidy:18 and cppcheck-2.11:
bugprone-inc-dec-in-conditions: examples/server/server.c:server_test(), src/internal.c:MatchDomainName(), src/x509.c:wolfSSL_X509_set_ext(), wolfcrypt/src/asn.c:MatchBaseName()

missingReturn: wolfcrypt/src/wc_port.c:mystrnstr()

bugprone-unused-return-value: wolfcrypt/src/wc_port.c:wolfSSL_NewThreadNoJoin()

clang-analyzer-deadcode.DeadStores: wolfssl/test.h:udp_accept()
2023-08-05 12:28:41 -05:00
John Safranek
0654ed3549 Fixed style warning from shellcheck re x in comparisons. 2023-08-04 16:41:39 -07:00
John Safranek
f3af4542e7 FIPS Check Update
1. Whitespace changes.
2. Deleted the stm32l4 build. The fips-check-2.0.sh script handles it.
3. Removed the CAVP_SELFTEST_* variables, used the FIPS_OPTIONS for it.
4. Removed the v1 style code checkout. The current method works for all
   available cases.
5. Removed the FIPS_CONFLICTS case rename case.
2023-08-04 13:53:34 -07:00
JacobBarthelmeh
c9b72d7b61 Merge pull request #6673 from anhu/readfile
Change ReadFile instances to app-specific naming.
2023-08-04 13:48:49 -06:00
JacobBarthelmeh
65b515aec8 Merge pull request #6655 from julek-wolfssl/threading-testing
Port testing to wolfSSL threading interface
2023-08-04 13:46:14 -06:00
Anthony Hu
30fda7ad38 Change ReadFile instances to app-specific naming.
ReadFile conflicts with a windows API.
2023-08-04 13:50:46 -04:00
Anthony Hu
cec438a4e4 Add some OpenSSL compat error strings. 2023-08-04 13:26:28 -04:00
John Safranek
aa69b2fd62 Update the header comment. 2023-08-04 07:38:48 -07:00
Juliusz Sosinowicz
90a6a14878 Merge pull request #6446 from JacobBarthelmeh/session 2023-08-04 11:34:59 +02:00
Juliusz Sosinowicz
e04033ae3d Adjust timeout to account for longer brew install 2023-08-04 10:49:39 +02:00
Juliusz Sosinowicz
decee67138 Use random port in crl test 2023-08-04 10:49:39 +02:00
Juliusz Sosinowicz
67d6d438c5 Port testing to wolfSSL threading interface 2023-08-04 10:49:39 +02:00
Hideki Miyazaki
ae90a9b2c0 Merge pull request #6665 from TakayukiMatsuo/jp6472
Update Japanese API comments
2023-08-04 14:37:33 +09:00
John Safranek
4e07ebf279 changes to the script fips-check.sh 2023-08-03 22:22:20 -07:00
JacobBarthelmeh
83de744dcf Merge pull request #6671 from SparkiDev/sm_impl_redirect
SM Ciphers: Reference the GitHub repository to get implementation
2023-08-03 16:41:46 -06:00
JacobBarthelmeh
7f0cfcb27d Merge pull request #6667 from bandi13/byebyeCyaSSL
Byebye cya ssl
2023-08-03 15:43:01 -06:00
Sean Parkinson
e7ae80493b SM Ciphers: Reference the GitHub repository to get implementation
wolfsm is public and we can point people to repository.
2023-08-04 07:28:21 +10:00
Sean Parkinson
71f9162b99 Merge pull request #6668 from julek-wolfssl/zd/16515
DTLS downgrade bug fixes
2023-08-04 07:20:01 +10:00
JacobBarthelmeh
a60810cebe Merge pull request #6664 from joakim-strandberg/ada_windows_support
Ada windows support
2023-08-03 14:40:34 -06:00
JacobBarthelmeh
0c39b8074e Merge pull request #6654 from lealem47/zd16475
Fix of buffer overflow in GenerateDNSEntryRIDString()
2023-08-03 14:12:47 -06:00
JacobBarthelmeh
1da000b244 Merge pull request #6670 from anhu/080
Document that we integrate with liboqs 0.8.0
2023-08-03 13:29:32 -06:00
Andras Fekete
a6c850d7f9 Fix CAVP errors 2023-08-03 12:05:40 -04:00
Anthony Hu
54ab1b1113 Document that we integrate with liboqs 0.8.0 2023-08-03 10:23:12 -04:00
Juliusz Sosinowicz
8a9a363621 DTLS 1.3: move state machine forward when HVR received 2023-08-03 15:00:14 +02:00
Juliusz Sosinowicz
907a0201e7 Require HAVE_SECURE_RENEGOTIATION for API that perform SCR (not just indication) 2023-08-03 11:32:42 +02:00
Juliusz Sosinowicz
5a94dc961d DtlsShouldDrop: don't ignore app data sent before a SCR handshake 2023-08-03 11:32:03 +02:00
Juliusz Sosinowicz
158402ab03 Add logging prefixes to api.c client and server 2023-08-03 11:31:47 +02:00
TakayukiMatsuo
f35173b1a6 Update Japanese API comments 2023-08-03 09:47:19 +09:00
Andras Fekete
b31e485dc9 Remove 'HAVE_FIPS_VERSION < 2' blocks 2023-08-02 17:08:03 -04:00
Andras Fekete
f5164d325b Remove weird control char + copy/paste errors 2023-08-02 16:14:25 -04:00
Andras Fekete
de0048e5b2 Put back netbsd- and marvell-linux-selftest modes 2023-08-02 14:23:29 -04:00
JacobBarthelmeh
05b692d01c Merge pull request #6661 from julek-wolfssl/zd/16477
Recover when the client sends a 0-length session ID when using tickets
2023-08-02 11:37:21 -06:00
Juliusz Sosinowicz
dee32247b9 Code review 2023-08-02 18:02:41 +02:00
Juliusz Sosinowicz
bfe7bc0fcc Recover when the client sends a 0-length session ID when using tickets
Fixes ZD16477
2023-08-02 18:02:30 +02:00
JacobBarthelmeh
fbc6ed4fe4 Merge pull request #6662 from julek-wolfssl/zd/16504
DoHelloVerifyRequest: only do DTLS 1.3 version check
2023-08-02 09:22:05 -06:00
JacobBarthelmeh
a885a94b21 Merge pull request #6669 from douzzer/20230801-fips-nullcipher
20230801-fips-nullcipher
2023-08-02 08:59:46 -06:00
Juliusz Sosinowicz
6f4fabaac9 Adjust DER size 2023-08-02 10:30:12 +02:00
Juliusz Sosinowicz
724fe53379 DoHelloVerifyRequest: only do DTLS 1.3 version check 2023-08-02 10:30:12 +02:00
Andras Fekete
2a6956a954 Missing commit 2023-08-01 17:55:38 -04:00
Joakim Strandberg
8794e3f2f6 Updated the Ada wrapper README.md file and removed mention of the c_tls_client_main.c and c_tls_server_main.c files. 2023-08-01 23:08:52 +02:00
Joakim Strandberg
0e74213692 Fix display of SPARK tool output in README 2023-08-01 22:45:07 +02:00
Andras Fekete
a0668bd9ab Remove FIPS-check for v1 2023-08-01 15:46:40 -04:00
Andras Fekete
25f542adb4 Clean up compile errors 2023-08-01 15:46:18 -04:00
Daniel Pouzzner
d250eb8327 configure.ac: in FIPS builds, remove nullcipher from enable-all and enable-all-crypto, and error on explicit --enable-nullcipher with FIPS unless fips=dev. 2023-08-01 12:24:50 -05:00
Chris Conlon
27a59761b9 Merge pull request #6520 from miyazakh/tsip_cryptonly
Support TSIP crypt only
2023-08-01 10:13:18 -06:00
Andras Fekete
6e33fe3b51 Remove cyassl reference 2023-08-01 10:57:19 -04:00
Andras Fekete
44b634a597 More cleanup 2023-08-01 10:29:03 -04:00
Andras Fekete
9eb339f9fd Remove cyassl from example code 2023-08-01 10:17:38 -04:00
Andras Fekete
70e1ab7f0c Remove cyassl from wolfcrypt 2023-08-01 10:17:11 -04:00
JacobBarthelmeh
1468d77e50 Merge pull request #6644 from julek-wolfssl/zd/16441
TLSX_CA_Names_Parse: Verify the length of the extension
2023-07-31 16:03:23 -06:00
Joakim Strandberg
278f395542 Made sure the relative paths for finding the certificates is correct. 2023-07-31 23:48:44 +02:00
Joakim Strandberg
6893123edf Removed references to the c implementations of the client and server 2023-07-31 21:54:30 +02:00
Andras Fekete
ab953c3141 Update VS project files 2023-07-31 15:37:48 -04:00
Andras Fekete
2b2509c56c Drop code support 2023-07-31 15:36:38 -04:00
Andras Fekete
66f04f8db5 Remove cyassl 2023-07-31 15:17:17 -04:00
Joakim Strandberg
b6a11b8b01 Updated the README.md and updated client.gpr 2023-07-31 17:53:01 +02:00
Joakim Strandberg
c76b0a0237 removed the C examples only keeping Ada code in the Ada wrapper example directory 2023-07-31 17:31:23 +02:00
JacobBarthelmeh
4b80dcf733 Merge pull request #6617 from SparkiDev/aes_gcm_win_asm_fix
AES-GCM x86_64 MSVC ASM: XMM6-15 are non-volatile
2023-07-31 09:15:42 -06:00
Juliusz Sosinowicz
854ae0dcdb Code review 2023-07-31 15:16:59 +02:00
JacobBarthelmeh
106a065a41 Merge pull request #6660 from DimitriPapadopoulos/codespell
Fix residual typos found by codespell
2023-07-28 11:52:47 -06:00
Juliusz Sosinowicz
a495bb4e7f TLSX_CA_Names_Parse: make sure to do cleanup when smallstack is on 2023-07-28 16:34:35 +02:00
Dimitri Papadopoulos
1b10fb5ca7 Fix typos(?) found by codespell
These typos could have been generated by some program, in which case
the program should be fixed instead. Yet the typos are inconcistent,
as if the output had been manually copied. Why is the output poorly
aligned?

Use seconds or s for seconds, consistently.

Use ops for operations, consistently. Unless you want the singular
op for operation, as the value is often < 2.
2023-07-28 10:03:27 +02:00
Dimitri Papadopoulos
52f91e4ab9 Fix residual typos found by codespell 2023-07-28 09:29:28 +02:00
JacobBarthelmeh
5043ecefc1 Merge pull request #6648 from DimitriPapadopoulos/codespell
Fix typos found by codespell
2023-07-27 17:07:30 -06:00
JacobBarthelmeh
a785c39a12 Merge pull request #6657 from kojo1/multibyte
multi-byte code
2023-07-27 16:35:22 -06:00
Dimitri Papadopoulos
6d9c85a762 Fix typos found by codespell 2023-07-27 23:38:44 +02:00
JacobBarthelmeh
3e63589664 Merge pull request #6605 from dgarske/ada
Ada Bindings for wolfSSL
2023-07-27 15:21:52 -06:00
billphipps
10adca1a45 Add CryptoCb features (#6636)
* Update to support invoking cryptocb during un/register.
2023-07-27 13:16:43 -07:00
gojimmypi
f89892a3cd updated comment links 2023-07-27 09:44:57 -07:00
David Garske
c529b2f3aa Merge pull request #6627 from jpbland1/ocsp-nonce-usage-fix
fix bad & statement that was setting ocspSendNonce
2023-07-27 09:22:08 -07:00
JacobBarthelmeh
d0abfd7686 Merge pull request #6658 from julek-wolfssl/krb5-action-update
Point krb5 action to master branch of osp repo
2023-07-27 10:19:06 -06:00
Juliusz Sosinowicz
ee9ecd9591 Point krb5 action to master branch of osp repo 2023-07-27 11:14:41 +02:00
Takashi Kojo
136738fd33 Avoid mult-byte code error 2023-07-27 17:04:41 +09:00
JacobBarthelmeh
daa54f3d31 adjust wait times so that test can happen before timed out 2023-07-26 16:14:24 -07:00
Jacob Barthelmeh
b16e7fd87b use Expect with test
fix for session expire check

better name for test function

rewrite test case

make new session also timeout in 1 second
2023-07-26 15:10:22 -07:00
JacobBarthelmeh
9cd7e59e6a add another session expire test case 2023-07-26 15:10:22 -07:00
David Garske
3510ea4fec Merge pull request #6656 from JacobBarthelmeh/sanitizer
conversion warning flagged on Windows test builds
2023-07-26 14:48:19 -07:00
Sean Parkinson
67913b5800 Merge pull request #6603 from JacobBarthelmeh/xilinx
fix for AES-GCM use with petalinux
2023-07-27 07:38:03 +10:00
Hideki Miyazaki
02ec92a3b9 Support TSIP crypt only
- Aes, sha,
  - rsa
     MakeRsaKey, sign/verify

fix compile error when not enabled TSIP
2023-07-27 06:23:34 +09:00
JacobBarthelmeh
7c11c0f201 conversion warning flagged on Windows test builds 2023-07-26 13:48:33 -07:00
JacobBarthelmeh
8d77090ad9 Merge pull request #6650 from DimitriPapadopoulos/spaces
Fix tab/space inconsistencies
2023-07-26 14:17:31 -06:00
JacobBarthelmeh
3e5e16f1ff Merge pull request #6641 from julek-wolfssl/gh/6555
Dtls13GetRnMask: Correctly get chacha counter on BE systems
2023-07-26 11:29:39 -06:00
JacobBarthelmeh
48434f7814 Merge pull request #6653 from julek-wolfssl/kerberos-update
Updates for Kerberos 5 1.21.1
2023-07-26 11:26:57 -06:00
Juliusz Sosinowicz
4a175ba280 Updates for Kerberos 5 1.21.1
- wolfssl_ec_point_mul: fix parameters being passed into ec_mul2add
- Compile in compressed ecc key parsing for OPENSSLALL
- Improve debugging around compat layer ecc operations
- wolfSSL_BN_div: dv can be NULL
- Add spake like computation test
- Add CI krb5 testing
- Add timeouts to CI
2023-07-26 16:40:38 +02:00
Juliusz Sosinowicz
5947c9ae8c TLSX_CA_Names_Parse: Verify the length of the extension 2023-07-26 13:32:37 +02:00
Juliusz Sosinowicz
5cf42244f0 Add comment back in 2023-07-26 12:04:11 +02:00
JacobBarthelmeh
681a75da24 fix for AES-GCM use with petalinux 2023-07-25 22:08:20 -06:00
Sean Parkinson
d87bb14ac0 Merge pull request #6647 from gojimmypi/SM4_Hash_fix
WOLFSSL_NO_HASH_RAW Hmac_UpdateFinal() properties for SM3
2023-07-26 11:32:35 +10:00
gojimmypi
31dfdf8360 TLS SM2, SM3, SM4-CBC: hash details for SM3 2023-07-25 17:25:11 -07:00
Sean Parkinson
cfac603ee1 AES-GCM x86_64 MSVC ASM: XMM6-15 are non-volatile
Put XMM6-15, when used, on the stack at start of function and restore at
end of function.
2023-07-26 08:22:58 +10:00
JacobBarthelmeh
746802be89 Merge pull request #6652 from douzzer/20230724-cppcheck-2v11
20230724-cppcheck-2v11
2023-07-25 14:59:50 -06:00
Lealem Amedie
9cade8c9a4 Fix of buffer overflow in GenerateDNSEntryRIDString() 2023-07-25 14:33:05 -06:00
Daniel Pouzzner
cebb4da307 fixes and workarounds for cppcheck 2.11 with uninitvar checks reactivated, and legacyUninitvar suppressed globally (as before):
src/internal.c:wolfSSL_DtlsUpdateWindow(): shiftTooManyBitsSigned and integerOverflowCond (true positive, fixed);

src/ssl.c:wolfSSL_GetSessionFromCache(): autoVariables (true positive, intentional and now suppressed);

wolfcrypt/src/asn.c: several uninitvars in EccSpecifiedECDomainDecode(), wc_EccPrivateKeyDecode(), DecodeSingleResponse(), and DecodeResponseData() (false positives due to bug in cppcheck short circuit eval analysis, mitigated by refactoring && expressions to nested-if constructs that are semantically identical);

src/ssl.c:wolfSSL_GetSessionFromCache(): nullPointer (false positive due to bug in cppcheck value flow analysis, workarounded).
2023-07-25 11:31:01 -05:00
David Garske
c0b4cde6df Merge pull request #6632 from jpbland1/ocsp-want-read-error
OCSP_WANT_READ mishandled re-run
2023-07-25 08:23:46 -07:00
John Bland
a9c9662124 fix bad & statement that was setting ocspSendNonce
to 1 when WOLFSSL_OCSP_NO_NONCE was selected
related to but doesn't solve zd 16377
2023-07-24 16:51:10 -04:00
Dimitri Papadopoulos
4ff99a6780 Fix tab/space inconsistencies 2023-07-24 20:10:57 +02:00
JacobBarthelmeh
1285ae7816 Merge pull request #6506 from DimitriPapadopoulos/codespell
Fix typos found by codespell
2023-07-24 10:34:29 -06:00
JacobBarthelmeh
1812d32258 Merge pull request #6635 from julek-wolfssl/zd/16403
Fix ClientHello parsing when no extensions are present
2023-07-24 09:49:28 -06:00
Eric Blankenhorn
a19a0537ee Fix RFC references and add WOLFSSL_ALLOW_CRIT_AIA 2023-07-24 09:20:30 -05:00
Juliusz Sosinowicz
d3aa11bf87 Place manual memio helpers in utils.c and add macro for them 2023-07-24 09:14:21 +02:00
Juliusz Sosinowicz
ab560aa6b8 Fix ClientHello parsing when no extensions are present 2023-07-24 09:14:21 +02:00
Juliusz Sosinowicz
8ec2e23773 Rework curl action to use actions-build-autotools-project 2023-07-24 09:13:10 +02:00
Juliusz Sosinowicz
72d99d0ae0 Add timeouts to action tests 2023-07-24 09:13:10 +02:00
Juliusz Sosinowicz
56fc5bbf87 Dtls13GetRnMask: Correctly get chacha counter on BE systems
The issue was that BIG_ENDIAN is defined in endian.h (on linux). Our define is BIG_ENDIAN_ORDER.
2023-07-24 09:13:10 +02:00
JacobBarthelmeh
d3202600a4 Merge pull request #6525 from lealem47/san
Improve subjectAltName extension parsing and printing
2023-07-22 08:19:54 -06:00
Lealem Amedie
318c95a2c2 Remove leftover declaration in ssl.h 2023-07-21 17:13:28 -06:00
JacobBarthelmeh
2acc4a6dd5 Merge pull request #6561 from lealem47/zd16348
Fix for adding pkcs9 contentType entry name
2023-07-21 17:04:47 -06:00
JacobBarthelmeh
c2a3f5316d Merge pull request #6591 from embhorn/zd16296
Add CRL_REPORT_LOAD_ERRORS option
2023-07-21 17:00:23 -06:00
JacobBarthelmeh
c09138cd3f Merge pull request #6642 from kareem-wolfssl/zd16073
Fix wolfSSL_SMIME_write_PKCS7 not removing NULL characters between sections.
2023-07-21 16:52:38 -06:00
John Bland
2e4b651b87 update tls13 to handle an OCSP_WANT_READ, update
async client test to retry connect on OCSP_WANT_READ instead of timing out
2023-07-21 16:24:59 -04:00
Lealem Amedie
acac3fe479 Add testing and make jenkins happy 2023-07-21 13:57:45 -06:00
Lealem Amedie
0cd5a293ca Fix for parsing pkcs9_contentType 2023-07-21 13:57:45 -06:00
Lealem Amedie
4821859bbc Fix for adding pkcs9 contentType entry name 2023-07-21 13:57:45 -06:00
Kareem
4bb907522b Fix wolfSSL_SMIME_write_PKCS7 not removing NULL characters between sections. 2023-07-21 11:08:15 -07:00
David Garske
1daaabf38a Merge pull request #6640 from SparkiDev/sm3_asm_s_protection
SM3 ASM file: protect with check for WOLFSSL_SM3
2023-07-21 09:20:30 -07:00
Eric Blankenhorn
f9cb9560c4 Add CRL_REPORT_LOAD_ERRORS option 2023-07-21 10:06:35 -05:00
TakayukiMatsuo
477e65e07a Merge pull request #6626 from TakayukiMatsuo/jp6414
Update Japanese API comments
2023-07-21 12:33:29 +09:00
Sean Parkinson
452f6a8898 Merge pull request #6639 from JacobBarthelmeh/vcpkg
add include to wolfio.h and replace cmake NAMESPACE
2023-07-21 10:43:13 +10:00
Sean Parkinson
9b2345dc8e SM3 ASM file: protect with check for WOLFSSL_SM3
Protect sm3_asm.S with check for WOLFSSL_SM3.
Change configure.ac to define WOLFSSL_SM3 in ASM flags when SM3 enabled
and enabling intelasm.
2023-07-21 09:57:53 +10:00
JacobBarthelmeh
9bc6fc64de add include to wolfio.h and replace cmake NAMESPACE 2023-07-20 16:12:56 -07:00
Lealem Amedie
ec49e6b44d Avoid clash b/n two surname entries 2023-07-19 17:10:23 -06:00
Lealem Amedie
ec4527c789 address more feedback 2023-07-19 16:27:03 -06:00
JacobBarthelmeh
b7b4be8822 Merge pull request #6610 from bigbrett/apple-universal-lib
Apple "universal binary framework" build script and project example
2023-07-19 15:39:24 -06:00
Lealem Amedie
16058ce168 Address review comments 2023-07-19 12:01:01 -06:00
JacobBarthelmeh
acd819caa1 Merge pull request #6633 from SparkiDev/sm2_not_with_sp_math
SM2 and SP_MATH: don't enable SM2 with SP_MATH
2023-07-19 10:09:58 -06:00
Sean Parkinson
dceb7c0122 SM2 and SP_MATH: don't enable SM2 with SP_MATH
No implementation of SM2 with SP so can't use SM2 with SP MATH.
2023-07-19 12:39:59 +10:00
JacobBarthelmeh
8065ba18f9 Merge pull request #6620 from douzzer/20230714-WC_DO_NOTHING
20230714-WC_DO_NOTHING
2023-07-18 17:04:02 -06:00
Sean Parkinson
fd13d376a8 Merge pull request #6630 from JacobBarthelmeh/spelling
spelling fixes
2023-07-19 08:48:03 +10:00
John Bland
9ea681030f change conditional compile to use WOLFSSL_NONBLOCK_OCSP
instead of HAVE_OCSP
2023-07-18 17:56:43 -04:00
John Bland
e12f1f44b4 make OCSP error entry conditional to cut down on size 2023-07-18 14:55:16 -04:00
John Bland
7ee38350c0 undo supressing the OCSP_WANT_READ error, instead
add it to the list of non-fatal errors so that a socket close alert wont be sent out but the caller still won't block and will instead get OCSP_WANT_READ as an error back from wolfSSL_connect
2023-07-18 14:05:16 -04:00
John Bland
80bc547853 in the event of a OCSP_WANT_READ, set the ssl->error
so that the re-run of DoHandShakeMsgType knows not to hash the certificate twice and won't send an alert to the server as it was when OCSP_WANT_READ instead of setting ret to 0
2023-07-18 13:00:53 -04:00
JacobBarthelmeh
58318f9528 Merge pull request #6628 from dgarske/stm32_date
Fix for STM32 `HAL_RTC_GetDate` year
2023-07-18 10:28:35 -06:00
JacobBarthelmeh
9f2dd21a91 Merge pull request #6629 from night1rider/wolfssl-documentation-fixes
Wolfssl documentation fixes
2023-07-18 10:14:04 -06:00
Brett
425cd2c6dc added "-c" command line option to allow passing extra configure flags, removed curl and harden default options, updated documentation 2023-07-17 14:47:23 -06:00
JacobBarthelmeh
67d35ea48e Merge pull request #6622 from philljj/zd16426
tfm fp_exptmod_nct: set result to zero when base is zero
2023-07-17 14:29:01 -06:00
JacobBarthelmeh
b74a7f8e87 spelling fixes 2023-07-17 13:21:44 -07:00
dell5060
56a34b0be2 Updated Documentation to Include support OS-dependant CA certfications stores it supports for the api: wolfSSL_CTX_load_system_CA_certs 2023-07-17 13:06:29 -06:00
Joakim Strandberg
58ac57861f Updated the README.md file and made sure that using default.gpr to build the Ada TLS server application does not try to build the Ada TCL client application that makes use of the secondary stack. 2023-07-17 19:50:05 +02:00
David Garske
da9541551d Fix for STM32 HAL_RTC_GetDate year. Fixes #6618. 2023-07-17 10:30:47 -07:00
Brett
d1db78adb2 fixed typos in README 2023-07-17 11:10:02 -06:00
JacobBarthelmeh
31aac92635 Merge pull request #6614 from dgarske/silabs_aes
Fix for SiLabs HW acceleration unused function in aes.c
2023-07-17 10:53:20 -06:00
David Garske
37be7a4800 Merge pull request #6567 from JacobBarthelmeh/vcpkg
fix warning for build with vcpkg
2023-07-17 08:47:15 -07:00
TakayukiMatsuo
c55c1dd0e4 Update Japanese API comments 2023-07-17 18:28:42 +09:00
Joakim Strandberg
00b90adc97 Updated README.md file. Added description of subprograms in the specification file of the WolfSSL package. Made it possible to get error codes through the WolfSSL API. 2023-07-17 01:22:06 +02:00
jordan
df58c4dea7 tfm fp_exptmod_nct: handle special cases better 2023-07-15 10:00:50 -05:00
JacobBarthelmeh
a026d843cf Merge pull request #6564 from philljj/add_lms_hooks
Add LMS/HSS wolfCrypt hooks.
2023-07-14 14:33:25 -06:00
Joakim Strandberg
71b28caa09 Added Initialize and Finalize functions to initialize and cleanup resources of the WolfSSL library. Removed definitions of exceptions. 2023-07-14 22:20:39 +02:00
JacobBarthelmeh
517138806a Merge pull request #6613 from anhu/GENERAL_NAME_set0_value
Adding wolfSSL_GENERAL_NAME_set0_value() compat layer API.
2023-07-14 14:18:58 -06:00
JacobBarthelmeh
1fe8944363 Merge pull request #6545 from bigbrett/serverListening-include-guard
fix pthread macro protection in tls_bench
2023-07-14 14:14:18 -06:00
JacobBarthelmeh
ff38d8f018 revert portion of cmake for vcpkg build 2023-07-14 13:27:38 -06:00
jordan
1afc0df83d tfm fp_exptmod_nct: set result to zero when base is zero 2023-07-14 13:57:29 -05:00
Anthony Hu
933dae393e Make PRBs happy 2023-07-14 14:33:43 -04:00
Joakim Strandberg
f49ffc0353 The implementations of the tls client and server applications can now be formally verified by the SPARK tools. 2023-07-14 20:30:34 +02:00
Brett
707c1a44bc added support for dist bundle 2023-07-14 12:27:10 -06:00
Brett
5d24d5114a removed Preview Assets and disabled swiftUI preview, as it is not required and adds unused files to a make dist install 2023-07-14 12:14:19 -06:00
Anthony Hu
3b773db728 Clean up after myself 2023-07-14 13:43:57 -04:00
jordan
a747e7773c LMS: comments, SMALL_STACK, cleanup, etc. 2023-07-14 11:27:59 -05:00
JacobBarthelmeh
20115f0e23 Merge pull request #6619 from douzzer/20230714-asn-DecodeAuthKeyId-Wconversion-fix
20230714-asn-DecodeAuthKeyId-Wconversion-fix
2023-07-14 10:11:46 -06:00
Anthony Hu
31a02f194e Address review comments. 2023-07-14 12:09:14 -04:00
JacobBarthelmeh
7361332c87 Merge pull request #6616 from SparkiDev/sm2_sp_not_avail
ECC and SM2: SP implementation not available yet
2023-07-14 09:58:43 -06:00
Daniel Pouzzner
e2833f99a3 wolfcrypt/src/asn.c: fix merge conflict between 648f474d83 and 2c9609039d, re -Wconversion in DecodeAuthKeyId(). 2023-07-14 09:53:54 -05:00
Daniel Pouzzner
f6f8d2eda3 add WC_DO_NOTHING macro to wolfssl/wolfcrypt/types.h, with default expansion "do {} while (0)", and globally refactor to use the macro where appropriate, annotating intended-null macros-with-args with "/* null expansion */";
tweak several #includes of settings.h to include types.h instead (all of these are for clarity, as types.h is indirectly included by later #includes), and add #include <wolfssl/wolfcrypt/types.h> where missing;

remove trailing semicolons from PRAGMA*() macro invocations as they are unneeded and can be harmful (inducing frivolous -Wdeclaration-after-statement etc.).
2023-07-14 09:50:01 -05:00
Sean Parkinson
a96983e6d3 Merge pull request #6612 from dgarske/entropy_memuse_win32
Add support for MemUse Entropy on Windows.
2023-07-14 10:54:51 +10:00
Sean Parkinson
40d0a14c09 Merge pull request #6615 from dgarske/various2
Fix for building ED25519 with no client auth
2023-07-14 10:52:24 +10:00
Brett
0d9252de9e review: max line length changes 2023-07-13 16:30:25 -06:00
Brett
698bf7b423 fixed typo and added xcode version to overview 2023-07-13 16:24:30 -06:00
Sean Parkinson
377417e668 ECC and SM2: SP implementation not available yet
ecc.c: Keep code, but don't compile in until implementation for SM2
added to SP.
ssl.c: Fix warning for when ECC_MINSIZE is zero and sz is unsigned.
2023-07-14 08:04:00 +10:00
David Garske
4862b57415 Simplify Windows Entropy_TimeHiRes, which just needs a precision timer to differentiate, not specific time. 2023-07-13 14:30:58 -07:00
David Garske
4fd5d154a4 Merge pull request #6611 from bandi13/addLibLMS_Docker
Add dependency for liblms
2023-07-13 14:15:07 -07:00
Brett Nicholas
9bed65ad57 split up error message
split #if into multiple lines
2023-07-13 15:14:02 -06:00
Brett Nicholas
b02a22b5b3 added error reporting macro for invalid configuration 2023-07-13 15:14:02 -06:00
Brett Nicholas
44faddac6c fix compiler error for targets that don't define HAVE_PTHREAD 2023-07-13 15:14:02 -06:00
David Garske
e3e0b4505c Fix for building ED25519 with WOLFSSL_NO_CLIENT_AUTH or NO_ED25519_CLIENT_AUTH set:
```
/wolfssl/src/ssl.c:6744:33: error: 'Options' has no member named 'cacheMessages'
 6744 |                     ssl->options.cacheMessages = 1;
      |
```
2023-07-13 13:53:04 -07:00
David Garske
00add89deb Fix for unused AesDecrypt in aes.c with SiLabs AES acceleration enabled (WOLFSSL_SILABS_SE_ACCEL). ZD15874 2023-07-13 13:50:15 -07:00
Anthony Hu
4ccd6dfbe1 Adding wolfSSL_GENERAL_NAME_set0_value() compat layer API. 2023-07-13 16:09:47 -04:00
David Garske
761a976d0c Add support for MemUse Entropy on Windows. 2023-07-13 12:56:13 -07:00
JacobBarthelmeh
4bf642283c Merge pull request #6597 from SparkiDev/mp_test_div_fix
test.c: fix protection around calling mp_test_div
2023-07-13 13:37:27 -06:00
JacobBarthelmeh
11d26797d2 Merge pull request #6601 from SparkiDev/type_conversion_fixes_2
Type conversion fixes: make explicit
2023-07-13 13:33:58 -06:00
Brett
9379a8a094 added standard license headers, switched to C-style comments 2023-07-13 12:58:38 -06:00
Andras Fekete
8cd06c64b2 Add dependency for liblms
Usage: './configure --enable-lms=yes --with-liblms=/opt/sources/hash-sigs'
2023-07-13 14:22:55 -04:00
Brett
c8209068c2 added apple univeresal binary framework build script and example 2023-07-13 12:02:12 -06:00
David Garske
90b32d7857 Merge pull request #6596 from bandi13/updateLibOQS
Use liboqs v0.8
2023-07-13 09:37:01 -07:00
Joakim Strandberg
45d8a5b04c Ada version of TLS v1.3 client application implemented 2023-07-13 16:49:22 +02:00
JacobBarthelmeh
8c012b5df5 Merge pull request #6599 from SparkiDev/heapmath_mp_exptmod_fix
Heap Math exptmod: fixes for valid modulus checks
2023-07-12 16:57:51 -06:00
JacobBarthelmeh
cf15789c7f Merge pull request #6598 from SparkiDev/sm_update_3
EVP SM3: fix cast
2023-07-12 16:56:35 -06:00
JacobBarthelmeh
b889b27b8c Merge pull request #6585 from cconlon/x509Ext
Fixes for WOLFSSL_X509 cert gen, WOLFSSL_ALT_NAMES to --enable-jni
2023-07-12 16:55:08 -06:00
Sean Parkinson
2c9609039d Type conversion fixes: make explicit
Changed to types and casting so that there are no implcit conversion
warnings (gcc -Wconversion) in these files.
2023-07-13 08:36:02 +10:00
JacobBarthelmeh
62c14e4d5b Merge pull request #6604 from douzzer/20230711-linuxkm-fixes
20230711-linuxkm-fixes
2023-07-12 16:26:56 -06:00
Chris Conlon
a8ed78e012 define WOLFSSL_ALT_NAMES in --enable-jni build 2023-07-12 14:33:45 -06:00
Chris Conlon
ea7ea356a0 Fixes for WOLFSSL_X509 cert generation with key usage, extended key usage, and basic constraints 2023-07-12 14:33:42 -06:00
David Garske
d20a096ffa Ada Bindings for wolfSSL. Credit Joakim Dahlgren Strandberg <joakimds@kth.se> 2023-07-12 12:37:52 -07:00
Daniel Pouzzner
648f474d83 configure.ac:
if ENABLED_LINUXKM_PIE, add -DWOLFSSL_NO_OCSP_ISSUER_CHECK to gate out backward dependency in asn.c;

  if ENABLE_LINUXKM, don't error on FIPS without thread_ls_on;

  for --enable-curl, set ENABLED_MD4="yes", and move --enable-md4 AC_ARG_ENABLE() clause up to a position adjacent to des3 handling;

scripts/sniffer-gen.sh: fix illegal exit code (SC2242);

src/internal.c: fix clang-analyzer-core.NonNullParamChecker in CreateTicket();

src/ocsp.c: fix readability-redundant-preprocessor;

src/tls.c: fix empty-body in TLSX_PskKeModes_Parse() and clang-diagnostic-unreachable-code-break in ALPN_Select();

tests/api.c: fix several clang-analyzer-core.NullDereference related to Expect*() refactor;

wolfcrypt/src/asn.c:

  fix -Wconversions in DecodeAuthKeyId() and ParseCertRelative();

  fix readability-redundant-declaration re GetCA() and GetCAByName();

  gate inclusion of wolfssl/internal.h on !defined(WOLFCRYPT_ONLY);

wolfssl/internal.h: add macro-detection gating around GetCA() and GetCAByName() prototypes matching gates in wolfcrypt/src/asn.c;

tests/utils.c: in create_tmp_dir(), use one-arg variant of mkdir() if defined(__CYGWIN__) || defined(__MINGW32__).
2023-07-12 13:47:40 -05:00
Sean Parkinson
8e89e31f70 test.c: fix protection around calling mp_test_div
Caller of mp_test_div() had different #ifdef protection declaration.
Made them the same.
2023-07-12 10:55:50 +10:00
David Garske
b8119af455 Merge pull request #6594 from lealem47/curl
Fix for curl build
2023-07-11 17:13:59 -07:00
Sean Parkinson
b18bc86ef8 Heap Math exptmod: fixes for valid modulus checks
mp_exptmod_base_2() uses Montogmery method and does not support even
modulus. Added check.
mp_exptmod_fast() uses Montogmery method when odd not when dr > 0.
Comment updated at call.
Reduce value of zero doesn't work for mp_reduece_2k. Changed setup of
use to check for zero and won't use it. Other methods won't work either.
2023-07-12 09:20:11 +10:00
Sean Parkinson
96f745af6f EVP SM3: fix cast
wc_Sm3Update takes a word32 for the size.
Others cases are using the OpenSSL compatibility API but SM3 APIs don't
exist in OpenSSL.
2023-07-12 08:05:03 +10:00
Sean Parkinson
d6a6cbb83e Merge pull request #6595 from dgarske/various
Fix for no malloc with SP and fix defaultdhparams typo
2023-07-12 07:19:52 +10:00
JacobBarthelmeh
fd72b885b6 Merge pull request #6592 from embhorn/zd16415
Fix Micrium config and new examples with NO_FILESYSTEM
2023-07-11 15:01:18 -06:00
jordan
4c125ece77 LMS: cleanup INSTALL, and cap threads to 4. 2023-07-11 15:04:51 -05:00
Andras Fekete
6fa080642c Use liboqs v0.8 2023-07-11 15:36:44 -04:00
Lealem Amedie
f30364a00d Fix test 2023-07-11 13:27:37 -06:00
Lealem Amedie
e140a83fad Add curl gh actions test 2023-07-11 13:27:37 -06:00
Lealem Amedie
5fbe319ce9 Remove references to config.h from test headers 2023-07-11 13:27:37 -06:00
Lealem Amedie
1329543b62 Other miscellaneous fixes 2023-07-11 13:27:37 -06:00
Lealem Amedie
bcbeef7647 Fix for curl build 2023-07-11 13:27:37 -06:00
Anthony Hu
0b18e250ed Merge pull request #6576 from iyanmv/liboqs-1.8
Rename sphincs algs to follow upstream
2023-07-11 14:56:49 -04:00
David Garske
36c1d20bb2 If malloc is disabled make sure it is also disabled in SP math 2023-07-11 11:51:40 -07:00
David Garske
3e9bdb7671 Fix defaultdhparams typo fix logic. 2023-07-11 10:26:40 -07:00
David Garske
8f36f78e6c Merge pull request #6400 from bandi13/ARIA-cipher
Aria cipher
2023-07-11 09:50:42 -07:00
Iyán Méndez Veiga
fd091a745c Include all post-quantum algorithm files in cmake
GH-5407 already included falcon.c, but now we also add sphincs.c,
dilithium.c and ext_kyber.c to avoid undefined reference errors.
2023-07-11 17:57:00 +02:00
JacobBarthelmeh
ba4c96f727 Merge pull request #6593 from SparkiDev/sm_update_2
SM cipher suite: fix name
2023-07-11 09:28:24 -06:00
Andras Fekete
ecc138fc6e Fixed g++ shortcomings 2023-07-11 09:26:39 -04:00
jordan
d7c3a176e2 LMS cleanup. 2023-07-10 23:43:07 -05:00
Sean Parkinson
9f61cb9f2a Merge pull request #6590 from dgarske/sp_math_only
Fix for SP math only case to ensure fast math and heap math are disabled
2023-07-11 10:33:46 +10:00
David Garske
29edef1645 Fix for SP math only case to ensure fast math and heap math are disabled. Also fix build error for case where WOLFSSL_HAVE_SP_ECC is defined, but HAVE_ECC is not. ZD 16419 2023-07-10 15:12:38 -07:00
Eric Blankenhorn
d84adce608 Fix Micrium config and new examples with NO_FILESYSTEM 2023-07-10 17:12:12 -05:00
Sean Parkinson
f26b8bdf62 Merge pull request #6584 from julek-wolfssl/issue/6554
Always enable tls13MiddleBoxCompat with WOLFSSL_TLS13_MIDDLEBOX_COMPAT
2023-07-11 07:53:56 +10:00
Sean Parkinson
ce02ad7347 SM cipher suite: fix name
Fix name of TLSv1.3 CCM cipher suite.
2023-07-11 07:30:44 +10:00
Andras Fekete
a317ac280c PR comments 2023-07-10 16:50:54 -04:00
Andras Fekete
27a95e7e82 CMake is on a TODO for later 2023-07-10 15:44:30 -04:00
David Garske
2299282fdd Merge pull request #6235 from kareem-wolfssl/hitch
Hitch
2023-07-10 11:46:57 -07:00
David Garske
e4c9a73296 Merge pull request #6587 from gojimmypi/ESP32WROOM-refactor
Espressif refactor WROOM32 ESP32
2023-07-10 11:46:10 -07:00
Iyán Méndez Veiga
d64d73a13f Fix format keys 2023-07-10 19:43:59 +02:00
Kareem
8906ee95fd Hitch code review feedback. 2023-07-10 10:06:12 -07:00
Kareem
2d0cc65381 Fix hitch test make check. 2023-07-10 10:06:12 -07:00
Kareem
56328d845a Hitch code review feedback. 2023-07-10 10:06:12 -07:00
Kareem
3bfa189286 Fix hitch Github action. 2023-07-10 10:06:12 -07:00
Kareem
e871b1c04d Add hitch support to wolfSSL.
Add support for cipher aliases DHE, EDH and EECDH.

Add define SSL_CTRL_GET_CHAIN_CERTS to help hitch and other programs detect SSL_CTX_get0_chain_certs is supported.

Add wolfSSL_get_locking_callback.

Allow using ECDHE+RSA cipher suites when ECDHE alias is used while in OpenSSL compatibility mode.

Add more alerts for hitch.

SSL_CM should use the CTX's x509_store_pt if available.

Add support for SSL_CERT_FILE and SSL_CERT_DIR.  Load default OpenSSL TLS 1.3 ciphers when using OPENSSL_COMPATIBLE_DEFAULTS.

Use wolfSSL_sk_X509_new_null to allocate WOLFSSL_STACK in wolfSSL_CTX_get_extra_chain_certs.  Previous approach of malloc'ing without setting type/memsetting was leading to a segfault.

Add --enable-hitch.

hitch: Add unit tests for new APIs, fix a couple of issues uncovered by unit testing.

Correct behavior of wolfSSL_BIO_set_mem_buf for BIO_CLOSE/NOCLOSE and update unit test accordingly.

Add Github action test for hitch.
2023-07-10 10:06:10 -07:00
JacobBarthelmeh
9d18648dfb Merge pull request #6589 from SparkiDev/aarch64_aes_opensslextra_fix
AES GCM stream: arm asm fix when --enable-opensslextra
2023-07-10 10:55:50 -06:00
Andras Fekete
0a02218ba3 Clean up allocated memory on failure 2023-07-10 12:37:07 -04:00
Iyán Méndez Veiga
7c14ea67ae Rename sphincs algs to follow upstream
This also adds new keys for SPHINCS+. The reason is that SPHINCS+
was updated to 3.1 in liboqs (open-quantum-safe/liboqs/pull/1420),
and old keys are incompatible with the new implementation.

Keys were generated using the oqs-provider for OpenSSL 3

openssl genpkey \
    -provider default -provider oqsprovider \
    -algorithm sphincsshake128fsimple \
    -outform der \
    -out bench_sphincs_fast_level1_key.der

And certs_test.h was updated using xxd

xxd -i -c 10 -u bench_sphincs_fast_level1_key.der

This was repeated for the 6 variants of SPHINCS+ that wolfSSL supports.
2023-07-10 18:31:07 +02:00
Andras Fekete
299b4d8552 Make wc_BuildEccKeyDer non-static 2023-07-10 11:32:17 -04:00
JacobBarthelmeh
2426cf14ca Merge pull request #6583 from SparkiDev/certman_split
Moved CertManager APIs into own file
2023-07-10 09:20:09 -06:00
Andras Fekete
0efdf966d0 addressing PR comments 2023-07-10 11:14:07 -04:00
Juliusz Sosinowicz
86fd570e8c Remove MyKeyLog.txt 2023-07-10 13:23:35 +02:00
Juliusz Sosinowicz
d0b8b919df Always enable tls13MiddleBoxCompat with WOLFSSL_TLS13_MIDDLEBOX_COMPAT 2023-07-10 11:40:51 +02:00
Sean Parkinson
9f6ef65e8f Merge pull request #6557 from julek-wolfssl/zd/16332
Don't allow a resumption handshake inside of a SCR
2023-07-10 13:51:29 +10:00
Sean Parkinson
fa053be533 Merge pull request #6496 from JacobBarthelmeh/PKCS7
parse ASN1 only with SMIME_read_PKCS7
2023-07-10 10:16:20 +10:00
Sean Parkinson
360b61aff2 AES GCM stream: arm asm fix when --enable-opensslextra
aadLen is now in gcm field of Aes.
2023-07-10 10:13:26 +10:00
Sean Parkinson
52a3d591b5 Fix check of date to respect VERIFY_SKIP_DATE in ASN.1 template
DecodeCertInternal was not recognizing VERIFY_SKIP_DATE.
2023-07-10 10:05:59 +10:00
JacobBarthelmeh
9d3a95a287 account for error return in test case when building without pkcs7 streaming 2023-07-09 12:42:29 -07:00
JacobBarthelmeh
0e2749eeb4 adjust test case for asn=original 2023-07-08 07:37:26 -07:00
JacobBarthelmeh
7866a40d06 resolve kari decode without recipient certificate 2023-07-08 07:37:26 -07:00
JacobBarthelmeh
f0354b4cbe parse ASN1 only with SMIME_read_PKCS7 2023-07-08 07:36:10 -07:00
gojimmypi
57546405c0 refactor WROOM32 ESP32 2023-07-07 15:47:00 -07:00
David Garske
770590a3be Rebase fix to add back set_verify call in CertManagerLoadCA. Fix API tests for bad date check. Various spelling fixes. 2023-07-07 15:08:08 -07:00
Sean Parkinson
3af87f6f93 Moved CertManager APIs into own file
Split out certificate manager APIs into ssl_certman.c.
ssl.c includes ssl_certman.c
Better test coverage.
Minor fixes.
wolfSSL_X509_chain_up_ref calls XFREE with name->heap but name may be
NULL. Check for NULL first.
2023-07-07 15:08:08 -07:00
David Garske
f2809c5a24 Merge pull request #6586 from julek-wolfssl/zephyr-action
Add zephyr testing github action
2023-07-07 14:54:07 -07:00
jordan
55bbd5865c LMS/HSS: cleanup, and safer write/read callbacks 2023-07-07 15:30:50 -05:00
Juliusz Sosinowicz
c4cbf0508b Add zephyr action 2023-07-07 20:18:19 +02:00
JacobBarthelmeh
7213cb3cfb Merge pull request #6463 from dgarske/silabs_erf32
Updated support for Silicon Labs Simplicity Studio and the ERF32 Gecko SDK
2023-07-07 11:42:00 -06:00
David Garske
91fb24161b Merge pull request #6515 from julek-wolfssl/nginx-1.25.0
Add support for nginx-1.25.0
2023-07-07 09:29:23 -07:00
David Garske
9599ddd80a Merge pull request #6575 from julek-wolfssl/zd/15258
Properly enforce the pathLenConstraint of the BasicConstraints extension
2023-07-07 08:58:28 -07:00
David Garske
abe1bce914 Fix silabs_ecc_export_public to set the signing only flag. Added tests cases for import of private and public only verify in the SiLabs example. 2023-07-07 08:25:46 -07:00
Juliusz Sosinowicz
0abaa89787 Add support for nginx-1.25.0
- nginx: add necessary defines and function
- Implement Certificate Authorities for TLS 1.3
- Implement secret logging for TLS 1.3. Can be used for example with:
  ./configure CPPFLAGS="-DWOLFSSL_SSLKEYLOGFILE -DSHOW_SECRETS -DHAVE_SECRET_CALLBACK -DWOLFSSL_SSLKEYLOGFILE_OUTPUT='\"/tmp/secrets\"'"
- Implement session context checking for tickets
- Check for authorized responder in OCSP basic response
- Fix handling call to ocsp->statusCb
- compat: Translate SOCKET_PEER_CLOSED_E to WOLFSSL_ERROR_SYSCALL
- Fix wolfSSL_CTX_set_session_cache_mode
  - WOLFSSL_SESS_CACHE_OFF means nothing should be on
  - WOLFSSL_SESS_CACHE_NO_INTERNAL turns off only the internal cache
- Respect ssl->options.internalCacheOff
- Implement SSL_SESSION_set_time
- wolfSSL_SSL_in_init: fix detection for TLS 1.3
- Fix handling call to ssl->alpnSelect
- SendTls13NewSessionTicket: always generate new ID
  - When we send a new ticket for the same session (for example we resumed a connection and are sending a new ticket so that the client can resume in the future), we need to generate a new ID so that we don't overwrite the old session in the cache. Overwriting the session results in the `diff` calculation in `DoClientTicketCheck()` producing the wrong value and failing to resume.
Add nginx github action test
- Fix memory leaks
- wolfSSL_OCSP_basic_verify: implement OCSP_TRUSTOTHER flag
- AKID: implement matching on issuer name and serial number
- ocsp: check for a chain match for OCSP responder
- Split CreateTicket into CreateTicket and SetupTicket
- SendCertificateStatus: free response.buffer
- Use heap hint when allocating responseBuffer
- Remove responseBuffer from internal API's that don't use it anywhere
2023-07-07 11:22:58 +02:00
Sean Parkinson
52b5adb54a Merge pull request #6581 from kareem-wolfssl/eccNullKCheck
Fixed crash in wc_ecc_free.
2023-07-07 10:54:18 +10:00
David Garske
4d25faafe2 Merge pull request #6582 from SparkiDev/aes_gcm_arm_fix
AES-GCM ARM asm: fixes from GCM changes
2023-07-06 17:12:08 -07:00
Sean Parkinson
f3bae3192a Merge pull request #6580 from dgarske/sig_verify
Fix for `wc_SignatureGenerate_ex` calling verify twice
2023-07-07 08:40:39 +10:00
Sean Parkinson
af5b3b551a AES-GCM ARM asm: fixes from GCM changes
GCM is now its own structure.
GMULT, GHASH, GenerateM0 made public and fixed here too.
2023-07-07 08:35:14 +10:00
Juliusz Sosinowicz
2248140bf3 Clear ssl->arrays->sessionIDSz at start of function 2023-07-06 15:13:56 -07:00
Juliusz Sosinowicz
57e53d1a43 Don't allow a resumption handshake inside of a SCR 2023-07-06 15:13:56 -07:00
Kareem
fb9e036d5b Add NULL check in TFM's fp_forcezero. 2023-07-06 14:47:18 -07:00
Kareem
657679efda Only check for ALT_ECC_SIZE case, otherwise key->k is an array which will never be NULL. 2023-07-06 21:15:37 -07:00
Kareem
e995568626 Fixed crash in wc_ecc_free. 2023-07-06 21:10:32 -07:00
Andras Fekete
4f9b5de802 File gating 2023-07-06 17:03:57 -04:00
Andras Fekete
8421b384fb Settable 'keyAsn1' max length 2023-07-06 17:02:44 -04:00
Andras Fekete
ef9206f73f Addressing PR comments 2023-07-06 16:42:12 -04:00
Andras Fekete
266307da6c Add in ARIA wrappers
Address PR comments + other cleanup


Addressing PR comments


Minor change


Make sure the last line gets output as well


Add in ARIA SHA256 session to internal structure


Add in ARIA SHA384 session to internal structure


Add necessary function for ARIA to extract key


Fix unit tests


Rename HAVE_ARIAGCM to HAVE_ARIA


Move aria.* to wolfcrypt/port/aria


Separate out aria-crypt init functions


Adding in ECC+SHA callbacks


Avoid using AC_CHECK_FILE


Rename Aria to wc_Aria


Don't need special cases


Addressing PR comments


Code cleanup


C89 support


Remove TODO


Add documentation about buffer size


Clean up header files


Use ARIA_DEVID by default if available


Dummy update call to make MagicCrypto happy


Fix for detecting what algo type to use


Documentation


Use the appropriate sign/verify


Collect MagicCrypto functions together (and avoid leaks)


Fall back on other implementations on failure


Fix issue when compiling without CRYPTOCB


Addressing PR comments


Better cleanup


Addressing PR comments


Cleaner exit in case of error
2023-07-06 16:09:23 -04:00
Juliusz Sosinowicz
2cf916581d Jenkins fixes 2023-07-06 19:55:54 +02:00
Juliusz Sosinowicz
c041863aaa Code review 2023-07-06 19:00:11 +02:00
Juliusz Sosinowicz
d2642e329d Properly enforce the pathLenConstraint of the BasicConstraints extension
- move the testsuite file helps into a new tests/utils.c file so that they can be used across all tests
- dump the raw TLS stream when WOLFSSL_DUMP_MEMIO_STREAM is defined so that it can be examined in Wireshark
2023-07-06 19:00:11 +02:00
David Garske
9ca53ac7f7 Fix for wc_SignatureGenerate_ex calling verify twice. 2023-07-06 09:34:03 -07:00
David Garske
fb0c769d6c Merge pull request #6578 from douzzer/20230705-analyzer-fixes
20230705-analyzer-fixes
2023-07-06 09:04:39 -07:00
David Garske
e8f3afc85b Merge pull request #6579 from julek-wolfssl/getsockopt-endianness
getsockopt needs to take in an int
2023-07-06 09:04:13 -07:00
David Garske
caa0e5aabf Fix for silabs_ecc_export_public to set the type (curve). 2023-07-06 08:57:02 -07:00
jordan
67bef21185 Add LMS/HSS wolfCrypt hooks. 2023-07-06 10:55:53 -05:00
David Garske
794425c431 Merge pull request #6577 from SparkiDev/sm_update_1
SM tests: void in function declaration that is its prototype
2023-07-06 06:04:14 -07:00
Juliusz Sosinowicz
0b4e4287c9 getsockopt needs to take in an int
This caused an issue on big endian platforms

From the getsockopt man page:
       Most socket-level options utilize an int argument for optval.  For setsockopt(), the argument should be non‐
       zero to enable a boolean option, or zero if the option is to be disabled.
2023-07-06 11:40:36 +02:00
Daniel Pouzzner
1912f1bc2a fixes for clang-analyzer-core.NullDereference, clang-analyzer-core.NonNullParamChecker, clang-analyzer-deadcode.DeadStores, readability-redundant-preprocessor, clang-diagnostic-unreachable-code-break, -Werror=sign-conversion, bugprone-macro-parentheses, "Call to 'malloc' has an allocation size of 0 bytes", clang-diagnostic-declaration-after-statement re tests/unit.h:ExpectPtr() pragmas. 2023-07-06 00:53:37 -05:00
Sean Parkinson
7a73c9aac7 SM tests: void in function declaration that is its prototype
Need to have void in prototype of funtion.
2023-07-06 08:57:30 +10:00
David Garske
652c5491fe Merge pull request #6571 from julek-wolfssl/dtls-mtu-interop
Always add DTLS_MTU_ADDITIONAL_READ_BUFFER for better MTU interop
2023-07-05 13:03:10 -07:00
Juliusz Sosinowicz
b0c2e29a2e Always add DTLS_MTU_ADDITIONAL_READ_BUFFER for better MTU interop 2023-07-05 10:19:19 -07:00
David Garske
856b5c3f1b Merge pull request #6566 from JacobBarthelmeh/soname
update soname to 40
2023-07-05 09:21:10 -07:00
David Garske
f00b5c3a1e Merge pull request #6537 from SparkiDev/sm
SM2/SM3/SM4: Chinese cipher support
2023-07-04 10:03:37 -07:00
David Garske
b682c2c4bb Merge pull request #6437 from julek-wolfssl/windows-crl-monitor
Implement CRL monitor for Windows
2023-07-04 10:03:14 -07:00
Juliusz Sosinowicz
7af1f0cf05 Add additional windows logging for DoMonitor 2023-07-04 14:12:38 +02:00
Juliusz Sosinowicz
f58539581d Fix DoMonitor for Mac/BSD 2023-07-04 13:24:00 +02:00
Juliusz Sosinowicz
2feec88702 Add comment explaining threading usage 2023-07-04 11:18:44 +02:00
Juliusz Sosinowicz
713670dcc7 Use smaller buffer for copying 2023-07-04 11:18:44 +02:00
Juliusz Sosinowicz
3d2db844c1 Speed up waiting for file removal 2023-07-04 11:18:44 +02:00
Dimitri Papadopoulos
50752f5a2b Fix typos found by codespell 2023-07-04 07:21:27 +02:00
Sean Parkinson
e2424e6744 SM2/SM3/SM4: Chinese cipher support
Add support for:
 - SM2 elliptic curve and SM2 sign/verify
 - SM3 digest
 - SM4 cipher with modes ECB/CBC/CTR/GCM/CCM

Add APIs for SM3 and SM4.
Add SM2 sign and verify APIs.
Add support for SM3 in wc_Hash and wc_Hmac API.
Add support for SM3 and SM4 through EVP layer.
Add support for SM2-SM3 certificates. Support key ID and name hash being
with SHA-1/256 or SM3.
Add support for TLS 1.3 cipher suites: TLS-SM4-GCM-SM3, TLS-SM4-CCM-SM3
Add support for TLS 1.2 SM cipher suite: ECDHE-ECDSA-SM4-CBC-SM3
Add support for SM3 in wc_PRF_TLS.
Add SM2-SM3 certificates and keys. Generated with GmSSL-3.0.0 and
OpenSSL.
2023-07-04 13:36:28 +10:00
David Garske
6028dfd394 Merge pull request #6523 from gojimmypi/wc-memory-test
Add wolfcrypt test: R/O filesystem const memory pointer
2023-07-03 11:58:13 -07:00
David Garske
a921ab754d Merge pull request #6569 from SparkiDev/pem_der_example
PEM example: new example for convert between PEM and DER
2023-07-03 11:31:36 -07:00
gojimmypi
573fedae2f add const_byte_ptr_test for Xtensa -mforce-l32 check 2023-07-03 10:44:01 -07:00
David Garske
ad2621a7a0 Merge pull request #6572 from douzzer/20230703-clang-tidy-fixes
20230703-clang-tidy-fixes
2023-07-03 10:43:45 -07:00
David Garske
f72a6b705f Minor spelling fixes. 2023-07-03 10:23:55 -07:00
Daniel Pouzzner
214f9f55c4 fixes for bugprone-suspicious-missing-comma, clang-analyzer-core.NullDereference, and readability-redundant-preprocessor. 2023-07-03 11:30:08 -05:00
David Garske
678a65822f Merge pull request #6556 from StMartin81/Fix_compilation_of_wc_RsaFunctionNonBlock_if_WOLFSSL_RSA_PUBLIC_ONLY_is_defined
Fix compilation of wc_RsaFunctionNonBlock if WOLFSSL_RSA_PUBLIC_ONLY …
2023-07-03 08:55:36 -07:00
David Garske
732ef09da6 Merge pull request #6551 from SparkiDev/asn_no_certs
ASN: fix so that NO_CERTS configurations work
2023-07-03 08:55:14 -07:00
Juliusz Sosinowicz
3d68bcd6f7 Jenkins fixes 2023-07-03 14:02:51 +02:00
Juliusz Sosinowicz
ca77da92e5 Implement pthreads threading 2023-07-03 14:02:51 +02:00
Juliusz Sosinowicz
bff2cf5690 Add crl monitor unit testing 2023-07-03 14:02:51 +02:00
Juliusz Sosinowicz
8ab0050801 Init windows CRL monitor 2023-07-03 14:02:51 +02:00
Sean Parkinson
a39a04fc88 PEM example: new example for convert between PEM and DER
PEM example converts PEM to DER and DER to PEM.
Supports encrypting DER and writing out as PEM.

Added better support for 40-bit RC2-CBC PBE.
Added AES-128-CBC encryption support with PKCS#5v2.
Fixed handling of iterations to support writing 24-bit values.
Declared enum types for pass to PKCS#8 encryption APIs.

Add more DER and PEM files to certs directory.
Add testing of 'pem' with pem.test script.
2023-07-03 17:20:35 +10:00
Sean Parkinson
5be883a995 ASN: fix so that NO_CERTS configurations work
Moved code around and update #ifdefs so that --enable-cryptonly
CFLAGS=-DNO_CERTS compiles.
2023-07-03 09:16:44 +10:00
Sean Parkinson
da4424cd0c Merge pull request #6559 from dgarske/sni_defaults
Turn on SNI by default on hosts with resources
2023-07-03 08:07:45 +10:00
JacobBarthelmeh
e2a1bc6e6a fix warning for build with vcpkg 2023-06-30 15:53:46 -07:00
JacobBarthelmeh
a4c058649b Merge pull request #6560 from dgarske/stm32_nuttx
Support for using the Nuttx STM RNG register definitions
2023-06-30 16:15:49 -06:00
JacobBarthelmeh
877979c5c2 update soname to 40 2023-06-30 14:40:26 -07:00
David Garske
052fba887c Merge pull request #6563 from SKlimaRA/SKlimaRA/fix-funky-ifdef
fixed bug in ifdef logic caused in pull req 6277
2023-06-30 14:30:47 -07:00
Chris Conlon
e1cb74f24a Merge pull request #6492 from night1rider/wolfssl-wolfcrypttest-statickeys
Added to cert buffer keys and updated testwolfcrypt
2023-06-30 14:21:40 -06:00
Lealem Amedie
5ba579397d Make public wc_ api for EncodeObjectId 2023-06-30 14:14:27 -06:00
Stanislav Klima
c2726b4cbe fixed bug in ifdef logic caused in pull req 6277 2023-06-30 13:08:07 -07:00
Martin Stolpe
81484ef74b Fix compilation of wc_RsaFunctionNonBlock if WOLFSSL_RSA_PUBLIC_ONLY is defined 2023-06-30 13:05:21 -07:00
David Garske
6052e01879 Fixes for SNI test with static memory enabled. Fixes for other minor static memory build combinations. 2023-06-30 13:04:05 -07:00
David Garske
79a7d21932 Turn on SNI by default on hosts with resources. 2023-06-30 13:04:05 -07:00
David Garske
53c30f44a0 Support for using the Nuttx STM RNG register definitions, enabled with STM32_NUTTX_RNG. ZD 16315 2023-06-30 13:00:52 -07:00
David Garske
95675c7e34 Merge pull request #6455 from lealem47/INIT_SSL_NO_CTX_KEY
Allow option to create SSL without key/cert in ctx
2023-06-30 10:35:52 -07:00
David Garske
9fc68f4a80 Merge pull request #6558 from anhu/wolfSSL_X509_NAME_heap
Allocate WOLFSSL_X509_NAME with heap hint.
2023-06-30 10:35:08 -07:00
David Garske
1c33cefff7 Merge pull request #6562 from SparkiDev/wolfbot_fixes_1
wolfBot fixes
2023-06-29 19:13:17 -07:00
Sean Parkinson
a1939d22b9 wolfBot fixes
Importing an EC point ordinate with one being zero will result in
different errors based on different implementations. Check both known
error codes.

Benchmark usage fixed.
2023-06-30 09:07:46 +10:00
Lealem Amedie
7720dac545 Allow option to create SSL without key/cert in ctx 2023-06-29 13:57:40 -06:00
Anthony Hu
ed4774f606 Allocate WOLFSSL_X509_NAME with heap hint. 2023-06-29 12:04:32 -04:00
David Garske
048083cfe3 Merge pull request #6329 from tmael/crl_off
Add support for enabling and disabling CRLs.
2023-06-28 16:03:25 -07:00
Sean Parkinson
d029ba4d46 Merge pull request #6415 from julek-wolfssl/issue/6408
Ignore session ID's shorter than 32 bytes instead of erroring out
2023-06-29 08:20:48 +10:00
Lealem Amedie
c45f7c87b0 Make DecodeObjectId available for OPENSSL_ALL 2023-06-28 13:46:45 -06:00
Lealem Amedie
7251d564eb Use new RID function in asn=original 2023-06-28 13:04:47 -06:00
Lealem Amedie
47350fa95c Remove manual encoding of OID in txt2oidBuf 2023-06-28 12:53:34 -06:00
Lealem Amedie
ee63d73299 Restore nid2oid functionality to preserve expected behaviour 2023-06-28 12:53:34 -06:00
Lealem Amedie
1d83448df7 memcpy instead of strcpy 2023-06-28 12:53:34 -06:00
Lealem Amedie
48de458017 Add Obj_txt2oidBuf function 2023-06-28 12:53:34 -06:00
Lealem Amedie
2a539fe028 Cleanup 2023-06-28 12:53:34 -06:00
Lealem Amedie
fdc95f9ba6 Handle registeredID correctly 2023-06-28 12:53:34 -06:00
Lealem Amedie
90f5665318 Improve subjectAltName extension parsing and printing 2023-06-28 12:53:34 -06:00
David Garske
dcfa410540 Merge pull request #6289 from jpbland1/nuttx-hw-acel
Nuttx hw acel benchmark with STM32_HW_CLOCK_AUTO
2023-06-28 09:32:48 -07:00
Hideki Miyazaki
e0651e4eb3 Merge pull request #6434 from TakayukiMatsuo/fixtypo
Fixed some typos in Japanese help in examples/client
2023-06-28 11:20:42 +09:00
David Garske
8e3afbd6e3 Merge pull request #6547 from philljj/fix_cut_call
fix detection of cut tool in configure.ac
2023-06-27 16:19:52 -07:00
JacobBarthelmeh
78107b0f88 Merge pull request #6540 from dgarske/bench_fix
Fix for benchmark always using 4KB of memory for `gStats`
2023-06-27 16:18:29 -06:00
John Bland
c72d008a5c add STM32_HW_CLOCK_AUTO which turns the stm32 hw
accleration clock on and off automatically
2023-06-27 17:16:46 -04:00
John Bland
fbadcf67da add the STM32 peripheral clock enable and disable
calls to the benchmark program so the benchmark program can use hardware accleration
2023-06-27 17:16:46 -04:00
David Garske
d9d9c5cd3d Merge pull request #6549 from gojimmypi/pthread_gate
Revert #6536 types.h one line HAVE_PTHREAD
2023-06-27 13:42:16 -07:00
David Garske
6b26b071e4 Merge pull request #6532 from embhorn/forum_topic2018
Fix WinCE XSEEK_SET
2023-06-27 13:26:18 -07:00
David Garske
0d0d2cf50c Merge pull request #6531 from bandi13/extraCMakeOptions
Extra c make options
2023-06-27 13:26:03 -07:00
David Garske
b1fe15dc70 Further refactor of the benchmark stats tracking. Always use the allocated list (avoids using a stack pointer for ECC descriptions). 2023-06-27 13:05:04 -07:00
David Garske
e0fa25eedc Merge pull request #6548 from lealem47/gplusplus
Fix for g++ builds
2023-06-27 13:02:50 -07:00
gojimmypi
8867f484e5 Revert #6536 types.h one line HAVE_PTHREAD 2023-06-27 12:36:53 -07:00
Lealem Amedie
91962a1a78 Fix for g++ builds 2023-06-27 12:50:56 -06:00
jordan
41d248461b fix detection of cut tool in configure.ac 2023-06-27 13:18:25 -05:00
David Garske
51ca7bb8e3 Fix to support using -print with WC_BENCH_TRACK_STATS. 2023-06-27 10:25:48 -07:00
JacobBarthelmeh
9a4237ee88 Merge pull request #6457 from lealem47/gcc-arm-user-settings
Improve GCC-ARM user-settings.h FIPS configurability
2023-06-27 11:17:56 -06:00
David Garske
145ca4ae9d Merge pull request #6542 from SparkiDev/api_fixes_1
Tests api.c: fixes
2023-06-27 10:00:07 -07:00
David Garske
500b66eb36 Add API for exporting a SiLabs SE ECC key to a wolf ECC key (silabs_ecc_export_public). Add API for supporting export of a vault's public key. Add an ECC signature example for SiLabs. 2023-06-27 09:36:41 -07:00
Tesfa Mael
26e6fd9a6f update wolfSSL_X509_STORE_set_flags 2023-06-27 08:29:13 -07:00
Tesfa Mael
cb0e2c8b0f Maintain existing behavor when not using OPENSSL_COMPATIBLE_DEFAULTS 2023-06-27 08:29:13 -07:00
Tesfa Mael
03e5d109c7 Add test_wolfSSL_dup_CA_list 2023-06-27 08:29:13 -07:00
Tesfa Mael
481ae20fcb Maintain consistent behavior when activating CRL 2023-06-27 08:26:02 -07:00
Tesfa Mael
fd17fa3e9c Implement the option to disable CRL check
Do leaf CRL check by default
Correct wolfSSL_sk_X509_NAME_push return check
Update OpenSSL compatibility errors for HAProxy
Change X509_V to literal constant values
Fix the compat layer with TLS session ticket reuse
Fix for tls1_2 session resume and cache miss
Save intitial wolfSSL ctx
Check for OpenSSL CRL error code 23
2023-06-27 08:26:02 -07:00
Juliusz Sosinowicz
291c538e5f Ignore session ID's shorter than 32 bytes instead of erroring out 2023-06-27 14:51:46 +02:00
David Garske
23c60b7b9c Merge pull request #6530 from SparkiDev/tests_api_expect_5
Test api.c: change more tests to use Expect instead of Assert
2023-06-26 16:10:52 -07:00
Sean Parkinson
578f56e60c Test api.c: change more tests to use Expect instead of Assert
bio.c:
  wolfSSL_BIO_flush(): check allocation to bio->ip succeeded.

internal.c:
  InitSSL_Ctx(): set ctx->heap to heap if value passed in
ProcessPeerCerts(): check for error MEMORY_E too as a fatal parsing
error

ssl.c:
wolfSSL_shutdown(): SOCKET_ERROR_E is also an indication that the
socket is done, MEMORY_E is a fatal error
  wolfSSL_Cleanup(): move free of memory fail couting to wolfSSL API
  SessionTicketNoncePrealloc(): eror return must be non-zero
AddSessionToCache(): XFREE checks for NULL no need to do it before
call
wolfSSL_set_psk_use_session_callback(): ensure ssl is not NULL before
dereferencing
wolfSSL_SMIME_read_PKCS7(): check for error return from
wolfSSL_BIO_gets()

asn.c:
  wc_MIME_parse_headers(): check allocation succeeded into nextHdr

compress.c:
  wc_DeCompressDynamic(): free tmp on inflateInit2 failure

memory.c: rework where memory allocation failure counting code for when
WOFLSSL_STATIC_MEMORY is defined

wc_port.c:
wolfCrypt_Cleanup(): only call wc_MemFailCount_Free() when no
wolfSSL_Cleanup()
2023-06-27 08:01:33 +10:00
Sean Parkinson
17bc833bd3 Merge pull request #6543 from embhorn/gh6506
Spelling fixes in script generated files
2023-06-27 07:28:35 +10:00
Eric Blankenhorn
51ffe9691f Spelling fixes in script generated files 2023-06-26 09:48:15 -05:00
gojimmypi
6b240fa41a Refactor HAVE_PTHREAD and _POSIX_THREADS (#6536)
* HAVE_PTHREAD gate in test.h
* add config.h and settings.h to test.h
* added config.h and settings.h to other test.h in wolfcrypt/test
* settings #ifdef _POSIX_THREADS HAVE_PTHREAD
* cyassl settings _POSIX_THREADS HAVE_PTHREAD
* undo cyassl _POSIX_THREADS HAVE_PTHREAD
* move settings.h #include in both test.h
* add !defined(SINGLE_THREADED) logic
* refactor  HAVE_PTHREAD, _POSIX_THREADS
2023-06-26 07:32:20 -07:00
Sean Parkinson
b7332e33c7 Tests api.c: fixes
NULL dereference.
Uninitialized variable use.
2023-06-26 16:04:24 +10:00
JacobBarthelmeh
18032cdc40 Merge pull request #6535 from dgarske/wpas_small
Fix for `--enable-wpas=small`
2023-06-23 16:19:31 -07:00
David Garske
514ea2d0b1 Merge pull request #6510 from mitchcapper/win32_better_socket_error_msg_pr
Added For TranslateIoError in debug mode use FormatMessage to get a better error message
2023-06-23 15:33:34 -07:00
David Garske
af0facad9f Fix for --enable-wpas=small. 2023-06-23 14:25:39 -07:00
David Garske
48dc288b83 Fix for wc_ecc_import_raw_private using 0 for key size. Add check in silabs_ecc. 2023-06-23 14:22:46 -07:00
David Garske
cde4e8e13d Fix for signing with vault to only use if private key is not supplied. Refactor the silabs ECC key import code. Added checks for all silabs_ecc return codes. 2023-06-23 14:22:45 -07:00
David Garske
fc153ff273 Support for Silicon Labs Gecko SDK v4. Changes SE Hash to use multipart API's. Gecko SDK v3 auto-detected or manually forced using WOLFSSL_SILABS_SE_ACCEL_3. 2023-06-23 14:22:44 -07:00
David Garske
83dca07421 Updated support for Silicon Labs Simplicity Studio and the ERF32 Gecko SDK. Fix ECC unused functions with HW crypto like SE. ZD 15874. 2023-06-23 14:20:40 -07:00
David Garske
00719182d5 Fix for benchmark always using 4KB of memory for gStats, even when not required. Added new WC_BENCH_TRACK_STATS to enable feature is needed. Code cleanups for line length and headers. 2023-06-23 14:17:22 -07:00
Mitch Capper
6185d66b01 For TranslateIoError use FormatMessage to get a better error message on win32 2023-06-23 14:05:38 -07:00
David Garske
033f56bfe9 Merge pull request #6534 from mitchcapper/basic_editorconfig_addition_pr
Basic editor config to avoid some whitespace issues
2023-06-23 11:49:27 -07:00
David Garske
102cb1114a Merge pull request #6509 from douzzer/20230613-wc_test_ret_t
20230613-wc_test_ret_t
2023-06-23 11:47:20 -07:00
David Garske
ea68920b8b Merge pull request #6539 from JacobBarthelmeh/caam
fix for keymod with rt1170 blobs
2023-06-23 11:47:04 -07:00
lealem47
06c1dd171a Merge pull request #6466 from dgarske/keilmdk
Fixes and cleanups for Keil MDK examples
2023-06-23 08:41:04 -06:00
JacobBarthelmeh
2d87037e4b fix for keymod with rt1170 blobs 2023-06-23 00:50:25 -07:00
David Garske
746ac3c9a3 Merge pull request #6533 from anhu/no_data_junk
make sure that when TLSX_ALPN_GetRequest() returns, data and dataSz...
2023-06-22 22:11:02 -07:00
Lealem Amedie
6f2831a252 Document inline build error & fix 2023-06-22 16:48:17 -06:00
David Garske
255aa774f2 Updated Keil MDK documentation to note RTOS and TCP default dependency. Fix for inline error due to tracking code being available too broadly. Use current branch for makedistsmall.sh. 2023-06-22 16:48:17 -06:00
David Garske
a56fe30c2c Fixes and cleanups for Keil MDK examples. Combine duplicate user_settings.h. Use SP math all by default. Disable old/deprecated algorithms. Add CMSIS RTOS timer support for TLS and benchmark. 2023-06-22 16:48:17 -06:00
David Garske
2f44ece4d8 Merge pull request #6511 from JacobBarthelmeh/nightly
fix for nightly toolchain armv7 build warning
2023-06-22 15:25:57 -07:00
David Garske
33808c75f2 Merge pull request #6527 from philljj/zd16310
Fix ThreadSanitizer unlock of an unlocked mutex warning
2023-06-22 14:26:44 -07:00
Mitch Capper
20d706aad8 Basic editor config to avoid some whitespace issues 2023-06-22 14:06:46 -07:00
Anthony Hu
3e821c6f2b make sure that when TLSX_ALPN_GetRequest() returns data and dataSz are not pointing to junk. 2023-06-22 15:01:11 -04:00
jordan
2be3bb4c56 Fix ThreadSanitizer unlock of an unlocked mutex warning 2023-06-22 13:23:08 -05:00
Eric Blankenhorn
c933f780ca Fix WinCE XSEEK_SET 2023-06-22 11:14:34 -05:00
Andras Fekete
155ce9aecf HKDF already defined 2023-06-22 11:17:34 -04:00
Andras Fekete
0ee198437a Get around issue with 'uint8_t' undefined 2023-06-22 11:03:56 -04:00
Andras Fekete
f58ae30b50 Add in CMake flags 'HPKE', 'HKDF', 'ECH' 2023-06-22 11:03:36 -04:00
Andras Fekete
e1f2c0bb2e Add 'Keying_material' option 2023-06-22 10:12:37 -04:00
David Garske
3cb0b4ab29 Merge pull request #6410 from embhorn/zd15856
Update EBSNET port
2023-06-21 21:35:19 -07:00
David Garske
6697181081 Merge pull request #6500 from SparkiDev/tests_api_expect_4
Test api.c: change more tests to use Expect instead of Assert
2023-06-21 17:17:37 -07:00
David Garske
fb35526b73 Merge pull request #6528 from kareem-wolfssl/trustedCaKeys
Fix trusted_ca_keys, refactor MAX_X509_SIZE
2023-06-21 17:07:55 -07:00
Kareem
e6017dc546 Refactor MAX_X509_SIZE into a define so it can be overriden in build settings. 2023-06-21 15:35:29 -07:00
Kareem
75c8d87353 Fix trusted_ca_keys extension allowed logic. 2023-06-21 15:35:29 -07:00
Sean Parkinson
e467112a93 Test api.c: change more tests to use Expect instead of Assert
Changed EXPECT_DECL to start of as TEST_SKIPPED.
Modified other EXPECT macros appropriately.
Change test functions to not use 'res' when EXPECT_DECL is used.

memory.c:
  wc_MemFailCount_Init(): don't declare variable after a statement

conf.c:
wolfSSL_TXT_DB_read(): free the whole WOLFSSL_TXT_DB on failure
instead of just the memory
wolfSSL_CONF_add_string(): pop the value added into section->value
(sk) if it can't be pushed onto conf->data
  wolfSSL_NCONF_load(): free the new value if it wasn't able to be added

ocsp.c:
  wolfSSL_OCSP_cert_to_id():
free the decoded certificate if parsing failed (is freed after use
otherwise)
free the certificate id on failure and make it NULL and continue
freeing other variables

pk.c:
wolfSSL_RSA_set0_crt_params(): set dmp1, dmq1 and iqmp fields to NULL
if setting the internal failed - returns error and caller needs to free
the passed in BNs
wolfSSL_RSA_set0_factors(): set p and q fields to NULL if setting the
internal failed - returns error and caller needs to free the passed in
BNs
wolfSSL_RSA_set0_key(): set n, e abd d fields to NULL if setting the
internal failed - returns error and caller needs to free the passed in
BNs

x509.c:
wolfSSL_X509_set_serialNumber(): explicit NULL
checkwolfSSL_X509_REQ_add1_attr_by_NID(): check whether push succeeded
and on failure free attribute

asn.c:
ConfirmSignature(): for DSA, allocate separately to ensure no leak on
memory allocation failure.

dh.c:
wc_DhGenerateParams(): ensure tmp and tmp2 are able to be cleared on
error

evp.c:
wolfSSL_EVP_PKEY_CTX_add1_hkdf_info(): fix realloc use to no leak on
failure
  wolfSSL_EVP_CIPHER_CTX_iv_length(): handle ctx being NULL.
2023-06-22 08:21:17 +10:00
Eric Blankenhorn
53fe93430e Update EBSNET port 2023-06-21 15:52:42 -05:00
David Garske
8473275fc6 Merge pull request #6529 from kareem-wolfssl/openwrt21.02Fix
Workaround for removed kmods repo in OpenWRT 21.02.
2023-06-21 13:19:40 -07:00
JacobBarthelmeh
2d28b492b0 Merge pull request #6501 from dgarske/ecc_comp
Fix for SP math all and ECC with compressed keys (missing sp_add_d)
2023-06-21 12:01:06 -07:00
Kareem
9f24217e26 Workaround for removed kmods repo in OpenWRT 21.02. 2023-06-21 11:53:30 -07:00
David Garske
1bff338e37 Merge pull request #6507 from bandi13/fix_certs_ocsp_renewcerts
Fix certs ocsp renewcerts
2023-06-21 11:26:59 -07:00
David Garske
9204101e94 Merge pull request #6517 from douzzer/20230615-opensslextra-wolfSSL_ERR_reason_error_string
20230615-opensslextra-wolfSSL_ERR_reason_error_string
2023-06-21 11:06:51 -07:00
David Garske
aaf2408851 Merge pull request #6504 from SparkiDev/bench_embedded_scrypt
test.c, scrypt: bench embedded reduce heap usage
2023-06-21 11:06:26 -07:00
David Garske
0e2c32f726 Merge pull request #6505 from SparkiDev/alt_ecc_cryptocb
ECC, ALT_ECC_SIZE, CryptoCB: ensure err is 0 in _ecc_make_key_ex
2023-06-21 11:05:53 -07:00
David Garske
70c3e84735 Merge pull request #6503 from SparkiDev/mp_test_tfm_mips
TFM: fix big endian reading a zero length buffer
2023-06-21 11:05:40 -07:00
David Garske
3b3c175af0 Merge pull request #6521 from ejohnstown/readme
Update Readme
2023-06-18 21:16:56 -07:00
John Safranek
c322e1f7f8 update readme 2023-06-18 20:24:28 -07:00
David Garske
d967aae501 Merge pull request #6518 from ejohnstown/release-5.6.3
Release 5.6.3
2023-06-16 12:08:23 -07:00
John Safranek
42e934b251 Update read-me and change-log for the release. 2023-06-16 09:47:35 -07:00
David Garske
4741a0b696 Merge pull request #6508 from JacobBarthelmeh/fuzzing
sanity check on send fatal alert return
2023-06-15 20:13:49 -07:00
David Garske
78b78428e7 Merge pull request #6512 from SparkiDev/math_enc_mem_exptmod
Math, Encrypted Memory: mod exp fix
2023-06-15 19:52:41 -07:00
Sean Parkinson
e17f86d145 TFM: fix big endian reading a zero length buffer
Bail early as big endian implementation doesn't handle it.
2023-06-16 10:58:51 +10:00
Sean Parkinson
beef8b0014 outputBuffer - use idx field
dtls13.c:
Change end of outputBuffer data calculations to use function
GetOutputBuffer().
  Use idx when calculating unused byte count of outputBuffer.

internal.c:
Change end of outputBuffer data calculations to use function
GetOutputBuffer().
  Use GetOutputBuffer() to calculate end of data in outputBuffer.
  GrowOutputBuffer():
Calculate new size to allocate to include already written data in
case of static buffer.
    Copy all data including already written count (idx).
  CheckAvailableSize():
    Don't subtract idx from length when checking MTU size.
Do subtract idx from bufferSize to determine count of unused bytes
in outputBuffer.
2023-06-16 10:29:52 +10:00
Sean Parkinson
a1e8aa7269 test.c, scrypt: bench embedded reduce heap usage
Don't do scrypt test cases that allocate 1MB of memory when
BENCH_EMBEDDED is defined.
2023-06-16 10:16:34 +10:00
Daniel Pouzzner
970663f8a1 in wolfSSL_ERR_reason_error_string(), unconditionally convert positive error codes to negative, and in switch(), match against negated values of OpenSSL positive codes like WOLFSSL_ERROR_WANT_READ. fixes #6514 2023-06-15 17:42:03 -05:00
dell5060
7926ceb120 Updated Key gen to convert the keys located in /certs/statickeys to be used in buffers 2023-06-15 15:33:11 -06:00
Sean Parkinson
7153dd70a6 Math, Encrypted Memory: mod exp fix
The modular exponentiation implementations in sp_int.c and tfm.c are not
safe when using Encrypted Memory.
Cannot have two pieces of memory where one changes and the other doesn't
based on private value.
Use extra variable to hold the two new values and assign them both back
at the same time in a safe manner.

Alternative implementations used when WC_PROTECT_ENCRYPTED_MEM is
defined.
2023-06-16 07:28:47 +10:00
JacobBarthelmeh
5b81dc47d2 adjust location used for writing to output buffer 2023-06-14 21:01:12 -07:00
JacobBarthelmeh
8f29111aac fix for nightly toolchain armv7 build warning 2023-06-14 14:13:59 -06:00
Daniel Pouzzner
902d47aaa1 wolfcrypt/test/test.c: fix scoping of hkdf_test();
wolfcrypt/test/test.h: include <wolfssl/wolfcrypt/types.h> to be sure sword32 is available.
2023-06-14 15:06:13 -05:00
JacobBarthelmeh
0a860c793f adjust test case to handle error of peer closing down 2023-06-14 12:21:52 -07:00
JacobBarthelmeh
9e0c13bbdb sanity check on send fatal alert return 2023-06-14 11:08:56 -07:00
Daniel Pouzzner
bb5e09c394 wolfssl/wolfcrypt/settings.h: refactor ssize_t setup to be more flexible, with NO_WC_SSIZE_TYPE and WC_SSIZE_TYPE override options, and no use of autotools-style HAVE_SSIZE_T. 2023-06-14 12:28:50 -05:00
Daniel Pouzzner
e843a7bd1e wolfcrypt/test/test.{c,h}: add wc_test_ret_t, and 'L' long int suffixes on relevant numeric literals, to facilitate passing around 32 bit retvals in the WC_TEST_RET_*() system on 16 bit targets. 2023-06-14 12:28:50 -05:00
Daniel Pouzzner
131b7c2bcf wolfcrypt/src/chacha20_poly1305.c: refactor ssize_t uses in wc_XChaCha20Poly1305_crypt_oneshot() as long int, for portability. 2023-06-14 12:28:50 -05:00
Andras Fekete
76cf3d61a0 Calling 'nc' makes the server unresponsive 2023-06-14 09:54:23 -04:00
Andras Fekete
20df12e5f7 This should add a check to make sure the server is up before connecting 2023-06-14 09:20:06 -04:00
Sean Parkinson
82cc988226 Merge pull request #6495 from JacobBarthelmeh/build
update check for stdatomic header file
2023-06-14 14:00:04 +10:00
Sean Parkinson
cdb3d6df40 Merge pull request #6502 from JacobBarthelmeh/release
prepare for 5.6.3
2023-06-14 13:59:41 +10:00
Sean Parkinson
0db49ef83a ECC, ALT_ECC_SIZE, CryptoCB: ensure err is 0 in _ecc_make_key_ex
When CryptoCB is used and the key gen operation is not implemented, err
is CRYPTOCB_UNAVAILABLE and needs to be reset to 0.
2023-06-14 10:12:04 +10:00
JacobBarthelmeh
72536e0e10 prepare for 5.6.3 2023-06-13 14:47:06 -06:00
David Garske
fe7502a50e Fix for SP math all and ECC with compressed keys (missing sp_add_d). Reproduce using: ./configure --disable-rsa --disable-dh --enable-compkey --disable-pkcs12 && make. 2023-06-13 11:39:24 -07:00
Eric Blankenhorn
58c1c0c31b Merge pull request #6499 from douzzer/20230612-windows-fixes
20230612-windows-fixes
2023-06-13 12:32:01 -05:00
Daniel Pouzzner
03a6eed037 wolfcrypt/src/{aes.c,blake2b.c,siphash.c}: fix W64LIT() arguments to not have improper 'U' suffix;
wolfssl/wolfcrypt/types.h: add 'U' suffix to W64LIT() macro defs, and add SW64LIT() macro defs (not yet used anywhere);

wolfcrypt/src/asn.c: add !WOLFSSL_ECC_CURVE_STATIC gate around DataToHexStringAlloc() to resolve -Wunused;

wolfcrypt/src/ecc.c: guard against zero-valued "len" arg to wc_ecc_get_curve_id_from_oid();

wolfcrypt/src/wc_port.c: fix several argument implicit sign changes in USE_WINDOWS_API paths;

wolfssl/wolfcrypt/ecc.h: remove const attribute from inline buffers in WOLFSSL_ECC_CURVE_STATIC struct ecc_set_type.
2023-06-12 23:15:08 -05:00
JacobBarthelmeh
47036d0166 update check for stdatomic header file 2023-06-12 13:48:24 -06:00
Lealem Amedie
88c3d9a529 More improvements for GCC-ARM FIPS build 2023-05-31 11:23:50 -06:00
Lealem Amedie
c2e03689c0 Improve GCC-ARM user-settings.h FIPS configurability 2023-05-31 09:53:51 -06:00
TakayukiMatsuo
c2c97c2b57 Fix typos in Japanese help. 2023-05-23 07:11:53 +09:00
836 changed files with 247451 additions and 144729 deletions

10
.editorconfig Normal file
View File

@@ -0,0 +1,10 @@
# http://editorconfig.org
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

View File

@@ -10,17 +10,20 @@ jobs:
config: [
# Add new configs here
'--enable-asynccrypt --enable-all --enable-dtls13',
'--enable-asynccrypt-sw',
'--enable-asynccrypt-sw --enable-ocspstapling --enable-ocspstapling2',
'--enable-ocsp CFLAGS="-DTEST_NONBLOCK_CERTS"',
]
name: make check
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 6
steps:
- uses: actions/checkout@v3
name: Checkout wolfSSL
- name: Test wolfSSL async
run: |
./async-check.sh setup
./async-check.sh install
./configure ${{ matrix.config }}
make check

61
.github/workflows/curl.yml vendored Normal file
View File

@@ -0,0 +1,61 @@
name: curl Test
on:
workflow_call:
jobs:
build_wolfssl:
name: Build wolfSSL
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 4
steps:
- name: Build wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
with:
path: wolfssl
configure: --enable-curl
install: true
- name: Upload built lib
uses: actions/upload-artifact@v3
with:
name: wolf-install-curl
path: build-dir
retention-days: 1
test_curl:
name: ${{ matrix.curl_ref }}
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 15
needs: build_wolfssl
strategy:
fail-fast: false
matrix:
curl_ref: [ 'master', 'curl-8_4_0' ]
steps:
- name: Install test dependencies
run: |
sudo apt-get update
sudo apt-get install nghttp2
sudo pip install impacket
- name: Download lib
uses: actions/download-artifact@v3
with:
name: wolf-install-curl
path: build-dir
- name: Build curl
uses: wolfSSL/actions-build-autotools-project@v1
with:
repository: curl/curl
path: curl
ref: ${{ matrix.curl_ref }}
configure: --with-wolfssl=$GITHUB_WORKSPACE/build-dir
check: false
- name: Test curl
working-directory: curl
run: make -j test-ci

View File

@@ -6,6 +6,8 @@ jobs:
espressif_latest:
name: latest Docker container
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 12
container:
image: espressif/idf:latest
steps:

View File

@@ -9,6 +9,8 @@ jobs:
build_library:
name: Compile libwolfssl.so
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 4
container:
image: alpine:latest
steps:
@@ -26,6 +28,8 @@ jobs:
compile_container:
name: Compile container
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 2
needs: build_library
strategy:
fail-fast: false

94
.github/workflows/hitch.yml vendored Normal file
View File

@@ -0,0 +1,94 @@
name: hitch Tests
on:
workflow_call:
jobs:
build_wolfssl:
name: Build wolfSSL
# Just to keep it the same as the testing target
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 4
steps:
- name: Build wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
with:
path: wolfssl
configure: --enable-hitch
install: true
- name: Upload built lib
uses: actions/upload-artifact@v3
with:
name: wolf-install-hitch
path: build-dir
retention-days: 1
hitch_check:
strategy:
fail-fast: false
matrix:
# List of releases to test
include:
- ref: 1.7.3
ignore-tests: >-
test13-r82.sh test15-proxy-v2-npn.sh test39-client-cert-proxy.sh
name: ${{ matrix.ref }}
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 4
needs: build_wolfssl
steps:
- name: Download lib
uses: actions/download-artifact@v3
with:
name: wolf-install-hitch
path: build-dir
- name: Checkout OSP
uses: actions/checkout@v3
with:
repository: wolfssl/osp
path: osp
- name: Install dependencies
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -y libev-dev libssl-dev automake python3-docutils flex bison pkg-config make
- name: Checkout hitch
uses: actions/checkout@v3
with:
repository: varnish/hitch
ref: 1.7.3
path: hitch
# Do this before configuring so that it only detects the updated list of
# tests
- if: ${{ matrix.ignore-tests }}
name: Remove tests that we want to ignore
working-directory: ./hitch/src/tests
run: |
rm ${{ matrix.ignore-tests }}
- name: Configure and build hitch
run: |
cd $GITHUB_WORKSPACE/hitch/
patch -p1 < $GITHUB_WORKSPACE/osp/hitch/hitch_1.7.3.patch
autoreconf -ivf
SSL_CFLAGS="-I$GITHUB_WORKSPACE/build-dir/include/ -I$GITHUB_WORKSPACE/build-dir/include/wolfssl" SSL_LIBS="-L$GITHUB_WORKSPACE/build-dir/lib -lwolfssl" ./configure --with-wolfssl=$GITHUB_WORKSPACE/build-dir/ --enable-silent-rules --enable-documentation --enable-warnings --with-lex --with-yacc --prefix=$GITHUB_WORKSPACE/build-dir
make -j$(nproc)
- name: Confirm hitch built with wolfSSL
working-directory: ./hitch
run: |
export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/build-dir/lib:$LD_LIBRARY_PATH
ldd src/hitch | grep wolfssl
- name: Run hitch tests, skipping ignored tests
working-directory: ./hitch
run: |
export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/build-dir/lib:$LD_LIBRARY_PATH
make check

View File

@@ -15,6 +15,8 @@ jobs:
name: Build wolfSSL
# Just to keep it the same as the testing target
runs-on: ubuntu-20.04
# This should be a safe limit for the tests to run.
timeout-minutes: 4
steps:
# No way to view the full strategy in the browser (really weird)
- name: Print strategy
@@ -90,6 +92,8 @@ jobs:
name: hwsim test
# For openssl 1.1
runs-on: ubuntu-20.04
# This should be a safe limit for the tests to run.
timeout-minutes: 12
needs: build_wolfssl
steps:
# No way to view the full strategy in the browser (really weird)

79
.github/workflows/krb5.yml vendored Normal file
View File

@@ -0,0 +1,79 @@
name: Kerberos 5 Tests
on:
workflow_call:
jobs:
build_wolfssl:
name: Build wolfSSL
# Just to keep it the same as the testing target
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 5
steps:
- name: Build wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
with:
path: wolfssl
configure: --enable-krb CFLAGS='-fsanitize=address'
install: true
- name: Upload built lib
uses: actions/upload-artifact@v3
with:
name: wolf-install-krb5
path: build-dir
retention-days: 1
krb5_check:
strategy:
fail-fast: false
matrix:
# List of releases to test
ref: [ 1.21.1 ]
name: ${{ matrix.ref }}
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 8
needs: build_wolfssl
steps:
- name: Download lib
uses: actions/download-artifact@v3
with:
name: wolf-install-krb5
path: build-dir
- name: Checkout OSP
uses: actions/checkout@v3
with:
repository: wolfssl/osp
path: osp
- name: Checkout krb5
uses: actions/checkout@v3
with:
repository: krb5/krb5
ref: krb5-${{ matrix.ref }}-final
path: krb5
- name: Apply patch
working-directory: ./krb5
run: |
patch -p1 < $GITHUB_WORKSPACE/osp/krb5/Patch-for-Kerberos-5-${{ matrix.ref }}.patch
- name: Build krb5
working-directory: ./krb5/src
run: |
autoreconf -ivf
# Using rpath because LD_LIBRARY_PATH is overwritten during testing
export WOLFSSL_CFLAGS="-I$GITHUB_WORKSPACE/build-dir/include -I$GITHUB_WORKSPACE/build-dir/include/wolfssl -Wl,-rpath=$GITHUB_WORKSPACE/build-dir/lib"
export WOLFSSL_LIBS="-lwolfssl -L$GITHUB_WORKSPACE/build-dir/lib -Wl,-rpath=$GITHUB_WORKSPACE/build-dir/lib"
./configure --with-crypto-impl=wolfssl --with-tls-impl=wolfssl --disable-pkinit \
CFLAGS='-fsanitize=address' LDFLAGS='-fsanitize=address'
CFLAGS='-fsanitize=address' LDFLAGS='-fsanitize=address' make -j
- name: Run tests
working-directory: ./krb5/src
run: |
CFLAGS='-fsanitize=address' LDFLAGS='-fsanitize=address' make -j check

View File

@@ -14,6 +14,8 @@ jobs:
uses: ./.github/workflows/docker-Espressif.yml
multi-compiler:
uses: ./.github/workflows/multi-compiler.yml
multi-arch:
uses: ./.github/workflows/multi-arch.yml
openwrt:
uses: ./.github/workflows/docker-OpenWrt.yml
os-check:
@@ -26,6 +28,18 @@ jobs:
uses: ./.github/workflows/openvpn.yml
hostap:
uses: ./.github/workflows/hostap.yml
nginx:
uses: ./.github/workflows/nginx.yml
zephyr:
uses: ./.github/workflows/zephyr.yml
hitch:
uses: ./.github/workflows/hitch.yml
curl:
uses: ./.github/workflows/curl.yml
krb5:
uses: ./.github/workflows/krb5.yml
packaging:
uses: ./.github/workflows/packaging.yml
# TODO: Currently this test fails. Enable it once it becomes passing.
# haproxy:
# uses: ./.github/workflows/haproxy.yml

54
.github/workflows/multi-arch.yml vendored Normal file
View File

@@ -0,0 +1,54 @@
name: Multiple architectures
on:
workflow_call:
jobs:
my_matrix:
name: Multi-arch test
strategy:
fail-fast: false
matrix:
include:
- HOST: aarch64-linux-gnu
CC: aarch64-linux-gnu-gcc
ARCH: arm64
EXTRA_OPTS: --enable-sp-asm --enable-armasm
- HOST: arm-linux-gnueabihf
CC: arm-linux-gnueabihf-gcc
ARCH: armhf
EXTRA_OPTS: --enable-sp-asm
- HOST: riscv64-linux-gnu
CC: riscv64-linux-gnu-gcc
ARCH: riscv64
# Config to ensure CPUs without Thumb instructions compiles
- HOST: arm-linux-gnueabi
CC: arm-linux-gnueabi-gcc
CFLAGS: -marm -DWOLFSSL_SP_ARM_ARCH=6
ARCH: armel
EXTRA_OPTS: --enable-sp-asm
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 10
steps:
- name: Install Compiler
run: |
sudo apt update
sudo apt install -y crossbuild-essential-${{ matrix.ARCH }} qemu-user
- uses: actions/checkout@v3
- name: Build
env:
CC: ${{ matrix.CC }}
CFLAGS: ${{ matrix.CFLAGS }}
QEMU_LD_PREFIX: /usr/${{ matrix.HOST }}
run: ./autogen.sh && ./configure --host=${{ matrix.HOST }} --enable-all --disable-examples ${{ matrix.EXTRA_OPTS }} && make
- name: Print errors
if: ${{ failure() }}
run: |
if [ -f config.log ] ; then
cat config.log
fi
- name: Run WolfCrypt Tests
env:
QEMU_LD_PREFIX: /usr/${{ matrix.HOST }}
run: ./wolfcrypt/test/testwolfcrypt

View File

@@ -12,19 +12,34 @@ jobs:
include:
- CC: gcc-9
CXX: g++-9
OS: ubuntu-latest
- CC: gcc-10
CXX: g++-10
OS: ubuntu-latest
- CC: gcc-11
CXX: g++-11
OS: ubuntu-latest
- CC: gcc-12
CXX: g++-12
OS: ubuntu-latest
- CC: clang-10
CXX: clang++-10
OS: ubuntu-20.04
- CC: clang-11
CXX: clang++-11
OS: ubuntu-20.04
- CC: clang-12
CXX: clang++-12
OS: ubuntu-20.04
- CC: clang-13
CXX: clang++-13
OS: ubuntu-latest
- CC: clang-14
CXX: clang++-14
runs-on: ubuntu-latest
OS: ubuntu-latest
runs-on: ${{ matrix.OS }}
# This should be a safe limit for the tests to run.
timeout-minutes: 4
steps:
- uses: actions/checkout@v3
- name: Build
@@ -32,3 +47,7 @@ jobs:
CC: ${{ matrix.CC }}
CXX: ${{ matrix.CXX }}
run: ./autogen.sh && ./configure && make && make dist
- name: Show log on errors
if: ${{ failure() }}
run: |
cat config.log

179
.github/workflows/nginx.yml vendored Normal file
View File

@@ -0,0 +1,179 @@
name: nginx Tests
on:
workflow_call:
jobs:
build_wolfssl:
name: Build wolfSSL
# Just to keep it the same as the testing target
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 4
steps:
- if: ${{ runner.debug }}
name: Enable wolfSSL debug logging
run: |
# We don't use --enable-debug since it makes the logs too loud
echo "wolf_debug_flags= CFLAGS='-g3 -O0'" >> $GITHUB_ENV
- name: Build wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
with:
path: wolfssl
configure: --enable-nginx ${{ env.wolf_debug_flags }}
install: true
- name: Upload built lib
uses: actions/upload-artifact@v3
with:
name: wolf-install-nginx
path: build-dir
retention-days: 1
nginx_check:
strategy:
fail-fast: false
matrix:
include:
# in general we want to pass all tests that match *ssl*
- ref: 1.25.0
test-ref: 5b2894ea1afd01a26c589ce11f310df118e42592
# Following tests pass with sanitizer on
sanitize-ok: >-
h2_ssl_proxy_cache.t h2_ssl.t h2_ssl_variables.t h2_ssl_verify_client.t
mail_imap_ssl.t mail_ssl_conf_command.t mail_ssl_session_reuse.t
mail_ssl.t proxy_ssl_certificate_empty.t proxy_ssl_certificate.t
proxy_ssl_certificate_vars.t proxy_ssl_conf_command.t proxy_ssl_name.t
ssl_certificate_chain.t ssl_certificate_perl.t ssl_certificates.t
ssl_certificate.t ssl_client_escaped_cert.t ssl_conf_command.t
ssl_crl.t ssl_curve.t ssl_engine_keys.t ssl_ocsp.t ssl_password_file.t
ssl_proxy_protocol.t ssl_proxy_upgrade.t ssl_reject_handshake.t
ssl_session_reuse.t ssl_session_ticket_key.t ssl_sni_reneg.t
ssl_sni_sessions.t ssl_sni.t ssl_stapling.t ssl.t ssl_verify_client.t
ssl_verify_depth.t stream_proxy_ssl_certificate.t stream_proxy_ssl_certificate_vars.t
stream_proxy_ssl_conf_command.t stream_proxy_ssl_name_complex.t
stream_proxy_ssl_name.t stream_ssl_certificate.t stream_ssl_conf_command.t
stream_ssl_preread_alpn.t stream_ssl_preread_protocol.t stream_ssl_preread.t
stream_ssl_realip.t stream_ssl_session_reuse.t stream_ssl.t stream_ssl_variables.t
stream_ssl_verify_client.t stream_upstream_zone_ssl.t upstream_zone_ssl.t
uwsgi_ssl_certificate.t uwsgi_ssl_certificate_vars.t uwsgi_ssl.t
uwsgi_ssl_verify.t
# Following tests do not pass with sanitizer on (with OpenSSL too)
sanitize-not-ok: >-
grpc_ssl.t h2_proxy_request_buffering_ssl.t h2_proxy_ssl.t
proxy_request_buffering_ssl.t proxy_ssl_keepalive.t proxy_ssl.t
proxy_ssl_verify.t stream_proxy_protocol_ssl.t stream_proxy_ssl.t
stream_proxy_ssl_verify.t stream_ssl_alpn.t
name: ${{ matrix.ref }}
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 6
needs: build_wolfssl
steps:
- name: Download lib
uses: actions/download-artifact@v3
with:
name: wolf-install-nginx
path: build-dir
- name: Install dependencies
run: |
sudo cpan -iT Proc::Find Net::SSLeay IO::Socket::SSL
- name: Checkout wolfssl-nginx
uses: actions/checkout@v3
with:
repository: wolfssl/wolfssl-nginx
path: wolfssl-nginx
- name: Checkout nginx
uses: actions/checkout@v3
with:
repository: nginx/nginx
path: nginx
ref: release-${{ matrix.ref }}
- name: Apply nginx patch
working-directory: nginx
run: patch -p1 < ../wolfssl-nginx/nginx-${{ matrix.ref }}-wolfssl.patch
- if: ${{ runner.debug }}
name: Apply nginx debug patch
working-directory: nginx
run: patch -p1 < ../wolfssl-nginx/nginx-${{ matrix.ref }}-wolfssl-debug.patch
- name: Checkout nginx-tests
uses: actions/checkout@v3
with:
repository: nginx/nginx-tests
path: nginx-tests
ref: ${{ matrix.test-ref }}
- name: Apply nginx-tests patch
working-directory: nginx-tests
run: patch -p1 < ../wolfssl-nginx/nginx-tests-patches/*${{ matrix.test-ref }}.patch
- name: Build nginx without sanitizer
working-directory: nginx
run: |
./auto/configure --with-wolfssl=$GITHUB_WORKSPACE/build-dir --with-http_ssl_module \
--with-stream --with-stream_ssl_module --with-stream_ssl_preread_module \
--with-http_v2_module --with-mail --with-mail_ssl_module
make -j
- name: Confirm nginx built with wolfSSL
working-directory: nginx
run: ldd objs/nginx | grep wolfssl
- if: ${{ runner.debug }}
name: Run nginx-tests without sanitizer (debug)
working-directory: nginx-tests
run: |
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GITHUB_WORKSPACE/build-dir/lib \
TMPDIR=$GITHUB_WORKSPACE TEST_NGINX_VERBOSE=y TEST_NGINX_CATLOG=y \
TEST_NGINX_BINARY=../nginx/objs/nginx prove -v ${{ matrix.sanitize-not-ok }}
- if: ${{ !runner.debug }}
name: Run nginx-tests without sanitizer
working-directory: nginx-tests
run: |
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GITHUB_WORKSPACE/build-dir/lib \
TMPDIR=$GITHUB_WORKSPACE TEST_NGINX_BINARY=../nginx/objs/nginx \
prove ${{ matrix.sanitize-not-ok }}
- if: ${{ runner.debug }}
name: Enable wolfSSL debug logging
run: |
echo "nginx_c_flags=-O0" >> $GITHUB_ENV
- name: Build nginx with sanitizer
working-directory: nginx
run: |
./auto/configure --with-wolfssl=$GITHUB_WORKSPACE/build-dir --with-http_ssl_module \
--with-stream --with-stream_ssl_module --with-stream_ssl_preread_module \
--with-http_v2_module --with-mail --with-mail_ssl_module \
--with-cc-opt='-fsanitize=address -DNGX_DEBUG_PALLOC=1 -g3 ${{ env.nginx_c_flags }}' \
--with-ld-opt='-fsanitize=address ${{ env.nginx_c_flags }}'
make -j
- name: Confirm nginx built with wolfSSL
working-directory: nginx
run: ldd objs/nginx | grep wolfssl
- if: ${{ runner.debug }}
name: Run nginx-tests with sanitizer (debug)
working-directory: nginx-tests
run: |
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GITHUB_WORKSPACE/build-dir/lib \
TMPDIR=$GITHUB_WORKSPACE TEST_NGINX_VERBOSE=y TEST_NGINX_CATLOG=y \
TEST_NGINX_BINARY=../nginx/objs/nginx prove -v ${{ matrix.sanitize-ok }}
- if: ${{ !runner.debug }}
name: Run nginx-tests with sanitizer
working-directory: nginx-tests
run: |
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GITHUB_WORKSPACE/build-dir/lib \
TMPDIR=$GITHUB_WORKSPACE TEST_NGINX_BINARY=../nginx/objs/nginx \
prove ${{ matrix.sanitize-ok }}

View File

@@ -8,6 +8,8 @@ jobs:
name: Build wolfSSL
# Just to keep it the same as the testing target
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 4
steps:
- name: Build wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
@@ -31,6 +33,8 @@ jobs:
ref: [ master, release/2.6, v2.6.0 ]
name: ${{ matrix.ref }}
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 6
needs: build_wolfssl
steps:
- name: Download lib

View File

@@ -19,9 +19,13 @@ jobs:
--enable-opensslextra --enable-sessioncerts
CPPFLAGS=''-DWOLFSSL_DTLS_NO_HVR_ON_RESUME -DHAVE_EXT_CACHE
-DWOLFSSL_TICKET_HAVE_ID -DHAVE_EX_DATA -DSESSION_CACHE_DYNAMIC_MEM'' ',
'--enable-all --enable-secure-renegotiation',
'--enable-all --enable-haproxy --enable-quic',
]
name: make check
runs-on: ${{ matrix.os }}
# This should be a safe limit for the tests to run.
timeout-minutes: 14
steps:
- name: Build and test wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
@@ -40,6 +44,8 @@ jobs:
]
name: make user_setting.h
runs-on: ${{ matrix.os }}
# This should be a safe limit for the tests to run.
timeout-minutes: 14
steps:
- name: Build and test wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
@@ -61,6 +67,8 @@ jobs:
]
name: make user_setting.h (testwolfcrypt only)
runs-on: ${{ matrix.os }}
# This should be a safe limit for the tests to run.
timeout-minutes: 14
steps:
- name: Build and test wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
@@ -80,6 +88,8 @@ jobs:
os: [ ubuntu-latest, macos-latest ]
name: make user_setting.h (with sed)
runs-on: ${{ matrix.os }}
# This should be a safe limit for the tests to run.
timeout-minutes: 14
steps:
- uses: actions/checkout@v3
- if: ${{ matrix.os == 'macos-latest' }}
@@ -96,6 +106,8 @@ jobs:
windows_build:
name: Windows Build Test
runs-on: windows-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 6
env:
# Path to the solution file relative to the root of the project.
SOLUTION_FILE_PATH: wolfssl64.sln
@@ -120,3 +132,7 @@ jobs:
# Add additional options to the MSBuild command line here (like platform or verbosity level).
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
run: msbuild /m /p:PlatformToolset=v142 /p:Platform=${{env.BUILD_PLATFORM}} /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
- name: Run Test
working-directory: ${{env.GITHUB_WORKSPACE}}
run: Release/x64/testsuite.exe

45
.github/workflows/packaging.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
name: Packaging Tests
on:
workflow_call:
jobs:
build_wolfssl:
name: Package wolfSSL
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 10
steps:
- name: Checkout wolfSSL
uses: actions/checkout@v3
- name: Configure wolfSSL
run: |
autoreconf -ivf
./configure --enable-distro --enable-all \
--disable-openssl-compatible-defaults --enable-intelasm \
--enable-dtls13 --enable-dtls-mtu \
--enable-sp-asm --disable-examples --disable-silent-rules
- name: Make sure OPENSSL_COMPATIBLE_DEFAULTS is not present in options.h
run: |
! grep OPENSSL_COMPATIBLE_DEFAULTS wolfssl/options.h
- name: Build wolfSSL .deb
run: make deb-docker
- name: Build wolfSSL .rpm
run: make rpm-docker
- name: Confirm packages built
run: |
DEB_COUNT=$(find -name 'libwolfssl*.deb' | wc -l)
if [ "$DEB_COUNT" != "2" ]; then
echo Did not find exactly two deb packages!!!
exit 1
fi
RPM_COUNT=$(find -name 'wolfssl*.rpm' | wc -l)
if [ "$RPM_COUNT" != "4" ]; then
echo Did not find exactly four rpm packages!!!
exit 1
fi

View File

@@ -8,6 +8,8 @@ jobs:
name: Build wolfSSL
# Just to keep it the same as the testing target
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 4
steps:
- name: Build wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
@@ -31,6 +33,8 @@ jobs:
ref: [ 5.67 ]
name: ${{ matrix.ref }}
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 4
needs: build_wolfssl
steps:
- name: Download lib

101
.github/workflows/zephyr.yml vendored Normal file
View File

@@ -0,0 +1,101 @@
name: Zephyr tests
on:
workflow_call:
jobs:
run_test:
name: Build and run
strategy:
matrix:
config:
- zephyr-ref: v3.4.0
zephyr-sdk: 0.16.1
runs-on: ubuntu-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 15
steps:
- name: Install dependencies
run: |
# Don't prompt for anything
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
# most of the ci-base zephyr docker image packages
sudo apt-get install -y zip bridge-utils uml-utilities \
git cmake ninja-build gperf ccache dfu-util device-tree-compiler wget \
python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1 \
autoconf automake bison build-essential ca-certificates cargo ccache chrpath cmake \
cpio device-tree-compiler dfu-util diffstat dos2unix doxygen file flex g++ gawk gcc \
gcovr git git-core gnupg gperf gtk-sharp2 help2man iproute2 lcov libcairo2-dev \
libglib2.0-dev libgtk2.0-0 liblocale-gettext-perl libncurses5-dev libpcap-dev \
libpopt0 libsdl1.2-dev libsdl2-dev libssl-dev libtool libtool-bin locales make \
net-tools ninja-build openssh-client parallel pkg-config python3-dev python3-pip \
python3-ply python3-setuptools python-is-python3 qemu rsync socat srecord sudo \
texinfo unzip wget ovmf xz-utils
- name: Install west
run: sudo pip install west
- name: Init west workspace
run: west init --mr ${{ matrix.config.zephyr-ref }} zephyr
- name: Update west.yml
working-directory: zephyr/zephyr
run: |
REF=$(echo '${{ github.ref }}' | sed -e 's/\//\\\//g')
sed -e 's/remotes:/remotes:\n \- name: wolfssl\n url\-base: https:\/\/github.com\/${{ github.repository_owner }}/' -i west.yml
sed -e "s/projects:/projects:\n \- name: wolfssl\n path: modules\/crypto\/wolfssl\n remote: wolfssl\n revision: $REF/" -i west.yml
- name: Update west workspace
working-directory: zephyr
run: west update -n -o=--depth=1
- name: Export zephyr
working-directory: zephyr
run: west zephyr-export
- name: Install pip dependencies
working-directory: zephyr
run: sudo pip install -r zephyr/scripts/requirements.txt
- name: Install zephyr SDK
run: |
wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${{ matrix.config.zephyr-sdk }}/zephyr-sdk-${{ matrix.config.zephyr-sdk }}_linux-x86_64.tar.xz
tar xf zephyr-sdk-${{ matrix.config.zephyr-sdk }}_linux-x86_64.tar.xz
cd zephyr-sdk-${{ matrix.config.zephyr-sdk }}
./setup.sh -h -c
- name: Run wolfssl test
id: wolfssl-test
working-directory: zephyr
run: |
./zephyr/scripts/twister --testsuite-root modules/crypto/wolfssl --test zephyr/samples/wolfssl_test/sample.crypto.wolfssl_test -vvv
rm -rf zephyr/twister-out
- name: Run wolfssl TLS sock test
id: wolfssl-tls-sock
working-directory: zephyr
run: |
./zephyr/scripts/twister --testsuite-root modules/crypto/wolfssl --test zephyr/samples/wolfssl_tls_sock/sample.crypto.wolfssl_tls_sock -vvv
rm -rf zephyr/twister-out
- name: Run wolfssl TLS thread test
id: wolfssl-tls-thread
working-directory: zephyr
run: |
./zephyr/scripts/twister --testsuite-root modules/crypto/wolfssl --test zephyr/samples/wolfssl_tls_thread/sample.crypto.wolfssl_tls_thread -vvv
rm -rf zephyr/twister-out
- name: Zip failure logs
if: ${{ failure() && (steps.wolfssl-test.outcome == 'failure' || steps.wolfssl-tls-sock.outcome == 'failure' || steps.wolfssl-tls-thread.outcome == 'failure') }}
run: |
zip -9 -r logs.zip zephyr/twister-out
- name: Upload failure logs
if: ${{ failure() && (steps.wolfssl-test.outcome == 'failure' || steps.wolfssl-tls-sock.outcome == 'failure' || steps.wolfssl-tls-thread.outcome == 'failure') }}
uses: actions/upload-artifact@v3
with:
name: zephyr-client-test-logs
path: logs.zip
retention-days: 5

23
.gitignore vendored
View File

@@ -10,7 +10,7 @@ ctaocrypt/src/src/
*.cache
.dirstamp
*.user
configure
configure
config.*
!cmake/config.in
*Debug/
@@ -64,6 +64,8 @@ ctaocrypt/benchmark/benchmark
ctaocrypt/test/testctaocrypt
wolfcrypt/benchmark/benchmark
wolfcrypt/test/testwolfcrypt
examples/async/async_client
examples/async/async_server
examples/benchmark/tls_bench
examples/client/client
examples/echoclient/echoclient
@@ -74,6 +76,7 @@ examples/sctp/sctp-server-dtls
examples/sctp/sctp-client
examples/sctp/sctp-client-dtls
examples/asn1/asn1
examples/pem/pem
server_ready
snifftest
output
@@ -84,6 +87,7 @@ testsuite/testsuite.test
tests/unit.test
tests/bio_write_test.txt
tests/test-log-dump-to-file.txt
tests/cert_cache.tmp
test-write-dhparams.pem
testsuite/*.der
testsuite/*.pem
@@ -343,6 +347,8 @@ doc/pdf
# XCODE Index
IDE/XCODE/Index
IDE/**/xcshareddata
IDE/**/DerivedData
# ARM DS-5 && Eclipse
\.settings/
@@ -403,7 +409,8 @@ libFuzzer
XXX-fips-test
# ASYNC
async
/wolfAsyncCrypt
/async
# Generated user_settings_asm.h.
user_settings_asm.h
@@ -417,3 +424,15 @@ user_settings_asm.h
# auto-created CMake backups
**/CMakeLists.txt.old
# MagicCrypto (ARIA Cipher)
MagicCrypto
# CMake build directory
/out
/out_temp
# debian packaging
debian/changelog
debian/control
*.deb

View File

@@ -28,16 +28,27 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
You must delete them, or cmake will refuse to work.")
endif()
project(wolfssl VERSION 5.6.2 LANGUAGES C ASM)
project(wolfssl VERSION 5.6.4 LANGUAGES C ASM)
# Set WOLFSSL_ROOT if not already defined
if ("${WOLFSSL_ROOT}" STREQUAL "")
# we'll assume this CMakeLists.txt is in the root of wolfSSL
if (EXISTS "${CMAKE_SOURCE_DIR}/wolfcrypt/src/")
get_filename_component(WOLFSSL_ROOT "${CMAKE_SOURCE_DIR}" ABSOLUTE)
message(STATUS "Found WOLFSSL_ROOT = ${WOLFSSL_ROOT}")
endif()
else()
message(STATUS "Using predefined WOLFSSL_ROOT = ${WOLFSSL_ROOT}")
endif()
# shared library versioning
# increment if interfaces have been added, removed or changed
set(LIBTOOL_CURRENT 40)
set(LIBTOOL_CURRENT 41)
# increment if source code has changed set to zero if current is incremented
set(LIBTOOL_REVISION 0)
# increment if interfaces have been added set to zero if interfaces have been
# removed or changed
set(LIBTOOL_AGE 5)
set(LIBTOOL_AGE 0)
math(EXPR LIBTOOL_SO_VERSION "${LIBTOOL_CURRENT} - ${LIBTOOL_AGE}")
set(LIBTOOL_FULL_VERSION ${LIBTOOL_SO_VERSION}.${LIBTOOL_AGE}.${LIBTOOL_REVISION})
@@ -411,12 +422,7 @@ endif()
if (WOLFSSL_OPENSSLEXTRA AND NOT WOLFSSL_OPENSSLCOEXIST)
list(APPEND WOLFSSL_DEFINITIONS
"-DOPENSSL_EXTRA"
"-DWOLFSSL_ALWAYS_VERIFY_CB"
"-DWOLFSSL_VERIFY_CB_ALL_CERTS"
"-DWOLFSSL_EXTRA_ALERTS"
"-DHAVE_EXT_CACHE"
"-DWOLFSSL_FORCE_CACHE_ON_TICKET")
"-DOPENSSL_EXTRA")
endif()
if (WOLFSSL_OPENSSLALL)
@@ -536,6 +542,11 @@ if(WOLFSSL_AESCTR AND NOT WOLFSSL_FORTRESS)
"-DWOLFSSL_AES_DIRECT")
endif()
# ARIA
add_option("WOLFSSL_ARIA"
"Enable wolfSSL ARIA support (default: disabled)"
"no" "yes;no")
# AES-CCM
add_option("WOLFSSL_AESCCM"
"Enable wolfSSL AES-CCM support (default: disabled)"
@@ -1299,7 +1310,6 @@ endif()
# - CRL monitor
# - User crypto
# - Whitewood netRandom client library
# - SNI
# - Max fragment length
# - ALPN
# - Trusted CA indication
@@ -1315,8 +1325,14 @@ add_option(WOLFSSL_CRL
"Enable CRL (Use =io for inline CRL HTTP GET) (default: disabled)"
"no" "yes;no;io")
set(SNI_DEFAULT "no")
if(("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "x86_64|x86|AMD64|arm64") OR
("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64"))
set(SNI_DEFAULT "yes")
endif()
set(WOLFSSL_SNI_HELP_STRING "Enable SNI (default: disabled)")
add_option(WOLFSSL_SNI ${WOLFSSL_SNI_HELP_STRING} "no" "yes;no")
add_option(WOLFSSL_SNI ${WOLFSSL_SNI_HELP_STRING} ${SNI_DEFAULT} "yes;no")
set(WOLFSSL_TLSX_HELP_STRING "Enable all TLS Extensions (default: disabled)")
add_option(WOLFSSL_TLSX ${WOLFSSL_TLSX_HELP_STRING} "no" "yes;no")
@@ -1561,8 +1577,11 @@ endif()
# TODO: - Fast huge math
# Set processor-specific build macros
if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "x86_64|AMD64")
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_X86_64_BUILD")
elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64|arm64")
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_AARCH64_BUILD")
endif()
# SP math all
@@ -1705,21 +1724,23 @@ if(WOLFSSL_SYS_CA_CERTS)
override_cache(WOLFSSL_SYS_CA_CERTS "no")
elseif(APPLE)
check_include_file("Security/SecTrustSettings.h" HAVE_SECURITY_SECTRUSTSETTINGS_H)
if(NOT HAVE_SECURITY_SECTRUSTSETTINGS_H)
message("Can't enable system CA certs without Security/SecTrustSettings.h.")
override_cache(WOLFSSL_SYS_CA_CERTS "no")
else()
check_include_file("Security/SecCertificate.h" HAVE_SECURITY_SECCERTIFICATE_H)
check_include_file("Security/SecTrust.h" HAVE_SECURITY_SECTRUST_H)
check_include_file("Security/SecPolicy.h" HAVE_SECURITY_SECPOLICY_H)
if(HAVE_SECURITY_SECTRUSTSETTINGS_H OR (HAVE_SECURITY_SECCERTIFICATE_H
AND HAVE_SECURITY_SECTRUST_H
AND HAVE_SECURITY_SECPOLICY_H))
find_library(CORE_FOUNDATION_FRAMEWORK CoreFoundation)
if(NOT CORE_FOUNDATION_FRAMEWORK)
message("Can't enable system CA certs without CoreFoundation framework.")
override_cache(WOLFSSL_SYS_CA_CERTS "no")
message(FATAL_ERROR "Can't enable system CA certs without CoreFoundation framework.")
else()
find_library(SECURITY_FRAMEWORK Security)
if(NOT SECURITY_FRAMEWORK)
message("Can't enable system CA certs without Security framework.")
override_cache(WOLFSSL_SYS_CA_CERTS "no")
message(FATAL_ERROR "Can't enable system CA certs without Security framework.")
endif()
endif()
else()
message(FATAL_ERROR "Can't enable system CA certs without Apple Security.framework headers.")
endif()
endif()
@@ -1774,6 +1795,42 @@ if(WOLFSSL_AESKEYWRAP)
)
endif()
# Hybrid Public Key Encryption (RFC9180)
add_option("WOLFSSL_HPKE"
"Enable wolfSSL hybrid public key encryption (default: disabled)"
"no" "yes;no")
# Encrypted Client Hello (ECH)
add_option("WOLFSSL_ECH"
"Enable wolfSSL encrypted client hello (default: disabled)"
"no" "yes;no")
# Keying Material Exporter / TLS Exporter
add_option("WOLFSSL_KEYING_MATERIAL"
"Enable wolfSSL keying material export (default: disabled)"
"no" "yes;no")
if(WOLFSSL_HPKE)
if(NOT WOLFSSL_ECC)
message(FATAL_ERROR "HPKE supported only with ECC (WOLFSSL_ECC)")
endif()
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_HPKE")
override_cache(WOLFSSL_HKDF "yes")
endif()
if(WOLFSSL_ECH)
if(NOT WOLFSSL_HPKE)
message(FATAL_ERROR "ECH supported only with HPKE (WOLFSSL_HPKE)")
endif()
if(NOT WOLFSSL_SNI)
message(FATAL_ERROR "ECH supported only with SNI (WOLFSSL_SNI)")
endif()
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_ECH")
endif()
if(WOLFSSL_KEYING_MATERIAL)
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_KEYING_MATERIAL")
endif()
if(WOLFSSL_KEYGEN)
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_KEY_GEN")
@@ -1841,6 +1898,9 @@ if (WOLFSSL_CAAM)
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_CAAM")
endif()
if (WOLFSSL_ARIA)
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_ARIA")
endif()
# Generates the BUILD_* flags. These control what source files are included in
# the library. A series of AM_CONDITIONALs handle this in configure.ac.
@@ -1922,7 +1982,6 @@ else()
set(WOLFSSL_OUTPUT_BASE ${CMAKE_CURRENT_SOURCE_DIR})
endif()
set(OPTION_FILE "${WOLFSSL_OUTPUT_BASE}/wolfssl/options.h")
set(CYASSL_OPTION_FILE "${WOLFSSL_OUTPUT_BASE}/cyassl/options.h")
file(REMOVE ${OPTION_FILE})
@@ -1952,14 +2011,6 @@ file(APPEND ${OPTION_FILE} "}\n")
file(APPEND ${OPTION_FILE} "#endif\n\n\n")
file(APPEND ${OPTION_FILE} "#endif /* WOLFSSL_OPTIONS_H */\n\n")
# backwards compatibility for those who have included options or version
file(REMOVE ${CYASSL_OPTION_FILE})
file(APPEND ${CYASSL_OPTION_FILE} "/* cyassl options.h\n")
file(APPEND ${CYASSL_OPTION_FILE} " * generated from wolfssl/options.h\n")
file(APPEND ${CYASSL_OPTION_FILE} " */\n")
file(READ ${OPTION_FILE} OPTION_FILE_CONTENTS)
file(APPEND ${CYASSL_OPTION_FILE} ${OPTION_FILE_CONTENTS})
####################################################
# Library Target
####################################################
@@ -1974,13 +2025,69 @@ set(LIB_SOURCES "")
# in the *.am files.
generate_lib_src_list("${LIB_SOURCES}")
if(BUILD_SHARED_LIBS)
message(STATUS "BUILD_SHARED_LIBS enabled: ${LIB_SOURCES}")
add_library(wolfssl SHARED ${LIB_SOURCES})
else()
message(STATUS "Static Libs: ${LIB_SOURCES}")
add_library(wolfssl STATIC ${LIB_SOURCES})
endif()
add_library(wolfssl::wolfssl ALIAS wolfssl)
if (NOT "$ENV{ARIA_DIR}" STREQUAL "")
message(STATUS "Found Environment variable ARIA_DIR=$ENV{ARIA_DIR}")
if(WOLFSSL_ARIA)
message(STATUS "wolfSSL WOLFSSL_ARIA is enabled")
else()
message(STATUS "wolfSSL WOLFSSL_ARIA is not enabled. To enable, specify a user_settings.h file or run: cmake .. -DWOLFSSL_ARIA=yes")
message(STATUS "Clear the ARIA_DIR environment variable to otherwise suppress this message when not using ARIA ciphers.")
endif()
endif()
# ARIA Check
if(WOLFSSL_ARIA)
message(STATUS "WOLFSSL_ARIA is enabled")
find_package(ARIA)
if(ARIA_FOUND)
message(STATUS "ARIA find_package() success.")
else()
message(FATAL_ERROR "WOLFSSL_ARIA is enabled, but find_package() did not find ARIA MagicCrypto.\n"
"Check ARIA_DIR environment variable and/or copy MagicCrypto directory locally.")
endif()
list(APPEND WOLFSSL_LINK_LIBS "${ARIA_LIB_FILE}")
# The cmake target_include_directories() will complain about local directories,
# so we'll handle MagicCrypto differently when found in wolfssl.
# see below to use include_directories() instead.
if(ARIA_IS_LOCAL)
# there's also a wolfssl port API to include, plus local ARIA include
include_directories("wolfssl/wolfcrypt/port/aria" "MagicCrypto/include")
else()
# see below for target_include_directories() instead
include_directories("wolfssl/wolfcrypt/port/aria")
message(STATUS "ARIA_IS_LOCAL is false, appending ${ARIA_INCLUDE_DIR} to WOLFSSL_INCLUDE_DIRS")
list(APPEND WOLFSSL_INCLUDE_DIRS "${ARIA_INCLUDE_DIR}")
endif()
add_library(MagicCrypto_lib
${CMAKE_CURRENT_SOURCE_DIR}/wolfcrypt/src/port/aria/aria-crypt.c
${CMAKE_CURRENT_SOURCE_DIR}/wolfcrypt/src/port/aria/aria-cryptocb.c
)
set_target_properties(MagicCrypto_lib PROPERTIES OUTPUT_NAME "MagicCrypto")
target_link_libraries(MagicCrypto_lib wolfssl)
target_compile_options(MagicCrypto_lib PRIVATE "-DHAVE_ARIA")
# ARIA was enabled and we successfully found it.
set(HAVE_ARIA 1)
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_ARIA")
message(STATUS "ARIA Check: WOLFSSL_LINK_LIBS = ${WOLFSSL_LINK_LIBS}")
endif()
set_target_properties(wolfssl
PROPERTIES
SOVERSION ${LIBTOOL_SO_VERSION}
@@ -1997,6 +2104,12 @@ target_compile_definitions(wolfssl PUBLIC ${WOLFSSL_DEFINITIONS})
# Include Directories
####################################################
if("${WOLFSSL_INCLUDE_DIRS}" STREQUAL "")
message(STATUS "WOLFSSL_INCLUDE_DIRS is blank. No additional directories will be added.")
else()
message(STATUS "WOLFSSL_INCLUDE_DIRS = ${WOLFSSL_INCLUDE_DIRS}")
endif()
target_include_directories(wolfssl
PUBLIC
$<INSTALL_INTERFACE:include>
@@ -2165,7 +2278,6 @@ include(GNUInstallDirs)
set(HEADER_EXCLUDE
"internal.h"
"cyassl/ctaocrypt/port"
"wolfssl/wolfcrypt/port/nrf51.h"
"wolfssl/wolfcrypt/port/arm"
"wolfssl/wolfcrypt/port/cypress"
@@ -2310,19 +2422,10 @@ install(DIRECTORY ${WOLFSSL_OUTPUT_BASE}/wolfssl/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wolfssl
FILES_MATCHING PATTERN "*.h"
REGEX ${EXCLUDED_HEADERS_REGEX} EXCLUDE)
install(DIRECTORY ${WOLFSSL_OUTPUT_BASE}/cyassl/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cyassl
FILES_MATCHING PATTERN "*.h"
REGEX ${EXCLUDED_HEADERS_REGEX} EXCLUDE)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/wolfssl/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wolfssl
FILES_MATCHING PATTERN "*.h"
REGEX ${EXCLUDED_HEADERS_REGEX} EXCLUDE)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cyassl/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cyassl
FILES_MATCHING PATTERN "*.h"
REGEX ${EXCLUDED_HEADERS_REGEX} EXCLUDE)
# Install the examples
install(FILES ${INSTALLED_EXAMPLES}

View File

@@ -1,3 +1,76 @@
# wolfSSL Release 5.6.4 (Oct 30, 2023)
Release 5.6.4 has been developed according to wolfSSL's development and QA process (see link below) and successfully passed the quality criteria.
https://www.wolfssl.com/about/wolfssl-software-development-process-quality-assurance
NOTE: * --enable-heapmath is being deprecated and will be removed by 2024
* Old CyaSSL/CtaoCrypt shim layer was removed in this release (5.6.4)
## Vulnerabilities
* [Medium] A fix was added, but still under review for completeness, for a Bleichenbacher style attack, leading to being able to decrypt a saved TLS connection and potentially forge a signature after probing with a large number of trial connections. This issue is around RSA decryption and affects static RSA cipher suites on the server side, which are not recommended to be used and are off by default. Static RSA cipher suites were also removed from the TLS 1.3 protocol and only present in TLS 1.2 and lower. All padding versions of RSA decrypt are affected since the code under review is outside of the padding processing. Information about the private keys is NOT compromised in affected code. It's recommended to disable static RSA cipher suites and update the version of wolfSSL used if using RSA private decryption alone outside of TLS. The fix is located in this pull request (https://github.com/wolfSSL/wolfssl/pull/6896)
## New Feature Additions
* DTLS 1.3 PQC: support fragmenting the second ClientHello message. This allows arbitrarily long keys to be used, opening up support for all PQC ciphersuites in DTLS 1.3.
* SM2/SM3/SM4: Chinese cipher support including TLS 1.3 and 1.2 cipher suites. SM2 SP implementation available.
* Ability to parse ASN1 only with SMIME_read_PKCS7
* Added support for MemUse Entropy on Windows
* Added Ada Bindings for wolfSSL
* Added a PEM example that converts to and from DER/PEM.
* Added LMS/HSS and XMSS/XMSS^MT wolfcrypt hooks, both normal and verify-only options.
* Added support for the AES EAX mode of operation
* Port for use with Hitch (https://github.com/varnish/hitch) added
* Add XTS API's to handle multiple sectors in new port ot VeraCrypt
## Enhancements and Optimizations
* Turned on SNI by default on hosts with resources
* Improved support for Silicon Labs Simplicity Studio and the ERF32 Gecko SDK
* Thumb-2 and ARM32 Curve25519 and Ed25519 assembly have significantly improved performance.
* Thumb-2 AES assembly code added.
* Thumb-2 and ARM32 SP implementations of RSA, DH and ECC have significantly improved performance.
* Minor performance improvements to SP ECC for Intel x64.
* AES-XTS assembly code added for Intel x64, Aarch64 and ARM32.
* Added support for X963 KDFs to ECIES.
* Added 32-bit type only implementation of AES GMULT using tables.
* Add support for nginx version 1.25.0
* Add support for Kerberos version 5 1.21.1
* Check all CRL entries in case a single issuer has multiple CRL's loaded
* CRL verify the entire chain including loaded CA's
* Added example for building wolfSSL as an Apple universal binary framework using configure
* Sniffer tool now supports decrypting TLS sessions using secrets obtained from a SSLKEYLOGFILE
* Updates made for EBSNET port
* Update "--enable-jni" to include additional defines for expanded JNI support. Also includes JCE and JSSE builds under the single enable option now.
## Fixes
* Fixed error handling when decrypted pre-master secret is too long when using static RSA.
* Added a fix for keymod use with i.MX RT1170 CAAM blobs
* Added a fix for AES-GCM use with Petalinux Xilinx
* Fixed `wc_SignatureGenerate_ex` to not call verify twice
* Fixed wolfCrypt FIPS DLL on Win32
* Fixed TFM math library big-endian reading implementation when a zero length buffer is passed in.
* Fixed NO_CERT configurations to build correctly.
* Fixed ARM AES-GCM streaming assembly when enable-opensslextra defined.
* Added modulus checks to heap math implementation of mp_exptmod().
* Fixed Windows assembly code to handle that certain XMM registers are non-volatile.
* Aarch64 SP ECC implementation of sp_256_mont_dbl_4 has the register list for the assembly code fixed to include all used registers.
* mp_sqrt_mod_prime fixed to limit the number of iterations of a loop to handle malicious non-prime values being passed in.
* Ignore session ID's shorter than 32 bytes instead of erroring out
# wolfSSL Release 5.6.3 (Jun 16, 2023)
Release 5.6.3 of wolfSSL embedded TLS has 4 bug fixes:
* Fix for setting the atomic macro options introduced in release 5.6.2. This issue affects GNU gcc autoconf builds. The fix resolves a potential mismatch of the generated macros defined in options.h file and the macros used when the wolfSSL library is compiled. In version 5.6.2 this mismatch could result in unstable runtime behavior.
* Fix for invalid suffix error with Windows build using the macro GCM_TABLE_4BIT.
* Improvements to Encrypted Memory support (WC_PROTECT_ENCRYPTED_MEM) implementations for modular exponentiation in SP math-all (sp_int.c) and TFM (tfm.c).
* Improvements to SendAlert for getting output buffer.
# wolfSSL Release 5.6.2 (Jun 09, 2023)
Release 5.6.2 has been developed according to wolfSSL's development and QA process (see link below) and successfully passed the quality criteria.
@@ -3245,7 +3318,7 @@ More info can be found on-line at //http://wolfssl.com/yaSSL/Docs.html
a) If using wolfSSL for DTLS on the server side of a publicly accessible
machine you MUST update.
b) If using wolfSSL for TLS on the server side with private RSA keys allowing
ephemeral key exchange without low memory optimziations you MUST update and
ephemeral key exchange without low memory optimizations you MUST update and
regenerate the private RSA keys.
Please see https://www.wolfssl.com/wolfSSL/Blog/Blog.html for more details

View File

@@ -5,21 +5,49 @@ USER root
ARG DEPS_WOLFSSL="build-essential autoconf libtool clang clang-tools zlib1g-dev libuv1-dev libpam0g-dev valgrind git linux-headers-generic gcc-multilib g++-multilib libpcap-dev bubblewrap gdb iputils-ping lldb bsdmainutils netcat binutils-arm-linux-gnueabi binutils-aarch64-linux-gnu"
ARG DEPS_LIBOQS="astyle cmake gcc ninja-build libssl-dev python3-pytest python3-pytest-xdist unzip xsltproc doxygen graphviz python3-yaml valgrind git"
ARG DEPS_UDP_PROXY="wget libevent-dev"
ARG DEPS_TESTS="abi-dumper libcurl4-openssl-dev tcpdump"
ARG DEPS_TOOLS="ccache"
RUN DEBIAN_FRONTEND=noninteractive apt update && apt install -y apt-utils \
&& apt install -y ${DEPS_WOLFSSL} ${DEPS_LIBOQS} ${DEPS_TESTS} \
&& apt install -y ${DEPS_WOLFSSL} ${DEPS_LIBOQS} ${DEPS_UDP_PROXY} ${DEPS_TESTS} ${DEPS_TOOLS} \
&& apt clean -y && rm -rf /var/lib/apt/lists/*
# Add 'docker' user
ARG USER=docker
ARG UID=1000
ARG GID=1000
RUN groupadd -f -g ${GID} docker && ( getent passwd ${UID} || useradd -ms /bin/bash ${USER} -u ${UID} -g ${GID} )
# Add github.com as an SSH known host
RUN ssh -o StrictHostKeyChecking=no -T git@github.com; cat ~/.ssh/known_hosts >> /etc/ssh/ssh_known_hosts
# install ccache
RUN mkdir -p /opt/ccache/bin && for prog in gcc g++ cc c++ cpp arm-none-eabi-c++ arm-none-eabi-cpp arm-none-eabi-gcc arm-none-eabi-g++; do ln -s /usr/bin/ccache /opt/ccache/bin/$(basename $prog); done
ENV PATH /opt/ccache/bin:$PATH
# install liboqs
RUN git clone --single-branch https://github.com/open-quantum-safe/liboqs.git && cd liboqs && git checkout af76ca3b1f2fbc1f4f0967595f3bb07692fb3d82 \
RUN git clone --single-branch https://github.com/open-quantum-safe/liboqs.git && cd liboqs && git checkout db08f12b5a96aa6582a82aac7f65cf8a4d8b231f \
&& mkdir build && cd build && cmake -DOQS_DIST_BUILD=ON -DOQS_USE_CPUFEATURE_INSTRUCTIONS=OFF -DOQS_USE_OPENSSL=0 .. && make -j8 all && make install && cd ../.. && rm -rf liboqs
RUN mkdir /opt/sources
# install liblms
RUN cd /opt/sources && git clone --single-branch https://github.com/cisco/hash-sigs.git && cd hash-sigs && git checkout b0631b8891295bf2929e68761205337b7c031726 \
&& sed -i 's/USE_OPENSSL 1/USE_OPENSSL 0/g' sha256.h && make -j4 hss_lib_thread.a
# Install pkixssh to /opt/pkixssh for X509 interop testing with wolfSSH
RUN mkdir /var/empty
RUN cd /opt/sources && wget -q -O- https://roumenpetrov.info/secsh/src/pkixssh-14.1.1.tar.gz | tar xzf - && cd pkixssh-14.1.1 && ./configure --prefix=/opt/pkixssh/ --exec-prefix=/opt/pkixssh/ && make install
# Install udp/tcp-proxy
RUN cd /opt/sources && git clone --depth=1 --single-branch --branch=main http://github.com/wolfssl/udp-proxy && cd udp-proxy && make && cp tcp_proxy udp_proxy /bin/.
# Allow non-root to use tcpdump (will need NET_RAW and NET_ADMIN capability when running the container)
RUN setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/tcpdump
# Allow non-root to use gdb on processes (will need SYS_PTRACE capability when running the container)
RUN setcap 'CAP_SYS_PTRACE+eip' /usr/bin/gdb
USER ${UID}:${GID}
# Add in Jenkins userID
RUN for i in $(seq 1001 1010); do ( getent passwd ${i} || useradd -ms /bin/bash jenkins${i} -u ${i} -g ${GID} ); done
USER ${UID}:${GID}

View File

@@ -0,0 +1,11 @@
ARG DOCKER_BASE_IMAGE=wolfssl/wolfssl-builder
FROM $DOCKER_BASE_IMAGE
USER root
ARG DEPS_TESTING="gcc-arm-linux-gnueabi gcc-aarch64-linux-gnu"
RUN DEBIAN_FRONTEND=noninteractive apt update \
&& apt install -y ${DEPS_TESTING} \
&& apt clean -y && rm -rf /var/lib/apt/lists/*
USER docker

View File

@@ -1,23 +1,27 @@
#!/bin/sh
runCMD() { # usage: runCMD "<command>" "<retVal>"
eval $1 >/dev/null 2>&1
TMP_FILE=$(mktemp)
eval $1 > $TMP_FILE 2>&1
RETVAL=$?
if [ "$RETVAL" != "$2" ]; then
echo "Command ($1) returned ${RETVAL}, but expected $2. Rerunning with output to terminal:"
eval $1
echo "Command ($1) returned ${RETVAL}, but expected $2. Error output:"
cat $TMP_FILE
exit 1
fi
}
# Successful tests
runCMD "ldd /lib/libustream-ssl.so" 0
# Temporary workaround: comment out missing kmods repo line for 21.02 specifically.
# Remove after fixed upstream.
runCMD "sed '\/src\/gz openwrt_kmods https:\/\/downloads.openwrt.org\/releases\/21.02-SNAPSHOT\/targets\/x86\/64\/kmods\/5.4.238-1-5a722da41bc36de95a7195be6fce1b45/s//#&/' -i /etc/opkg/distfeeds.conf" 0
runCMD "opkg update" 0
runCMD "uclient-fetch -O /dev/null 'https://letsencrypt.org'" 0
runCMD "uclient-fetch 'https://letsencrypt.org'" 0
# Negative tests
runCMD "uclient-fetch --ca-certificate=/dev/null -O /dev/null 'https://letsencrypt.org'" 5
runCMD "uclient-fetch -O /dev/null 'https://self-signed.badssl.com/'" 5
runCMD "uclient-fetch -O /dev/null 'https://untrusted-root.badssl.com/'" 5
runCMD "uclient-fetch -O /dev/null 'https://expired.badssl.com/'" 5
runCMD "uclient-fetch --ca-certificate=/dev/null 'https://letsencrypt.org'" 5
runCMD "uclient-fetch 'https://self-signed.badssl.com/'" 5
runCMD "uclient-fetch 'https://untrusted-root.badssl.com/'" 5
runCMD "uclient-fetch 'https://expired.badssl.com/'" 5
echo "All tests passed."

View File

@@ -1,7 +1,10 @@
# Overview
This is a simple Docker environment for compiling and running WolfSSL. Use `run.sh` to build everything (Docker container, WolfSSL, etc.). This script takes in arguments that can be passed to `./configure`. For example: `run.sh --enable-all`
This is a Docker environment for compiling, testing and running WolfSSL. Use `run.sh` to build everything (Docker container, WolfSSL, etc.). This script takes in arguments that can be passed to `./configure`. For example: `run.sh --enable-all`
When the compilation and tests succeed, you will be dropped in to a shell environment within the container. This can be useful to build other things within the environment.
When the compilation and tests succeed, you will be dropped in to a shell environment within the container. This can be useful to build other things within the environment. Additional tests can be run as well as debugging of code.
# Docker Hub
These images are also uploaded to the wolfSSL's [Docker Hub page](https://hub.docker.com/orgs/wolfssl/repositories). There is a convenience script here `buildAndPush.sh` that will create the appropriate containers and push them to the repo.
# FAQ
## permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
@@ -10,4 +13,4 @@ You need to be added to the `docker` group to run Docker containers. Run `sudo u
## Unable to access symlinked files outside of WolfSSL
The volume mounted in the Docker container needs to have all files that your compilation will need. To solve this, you have a couple options:
1. Change the `WOLFSSL_DIR` variable in the `run.sh` to one higher up (by adding `/..` to the path). Then update the `docker build` to include the correct path to the Dockerfile and the `docker run` argument to the working directory (`-w`) to the WolfSSL source directory
2. Move the external repository to within the WolfSSL directory. For example create an `external` folder which has your files. This route may have complications when stashing Git work.
2. Move the external repository to within the WolfSSL directory. For example create an `external` folder which has your files. This route may have complications when stashing Git work.

37
Docker/buildAndPush.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/bash
# Assume we're in wolfssl/Docker
WOLFSSL_DIR=$(builtin cd ${BASH_SOURCE%/*}/..; pwd)
DOCKER_BUILD_OPTIONS="$1"
if [ "${DOCKER_BASE_IMAGE}" != "" ]; then
DOCKER_BUILD_OPTIONS+=" --build-arg DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE}"
fi
NUM_FAILURES=0
CUR_DATE=$(date -u +%F)
echo "Building wolfssl/wolfssl-builder:${CUR_DATE} as ${DOCKER_BUILD_OPTIONS}"
docker build -t wolfssl/wolfssl-builder:${CUR_DATE} ${DOCKER_BUILD_OPTIONS} "${WOLFSSL_DIR}/Docker" && \
docker tag wolfssl/wolfssl-builder:${CUR_DATE} wolfssl/wolfssl-builder:latest && \
docker build --build-arg DOCKER_BASE_IMAGE=wolfssl/wolfssl-builder:${CUR_DATE} -t wolfssl/testing-cross-compiler:${CUR_DATE} "${WOLFSSL_DIR}/Docker" -f Dockerfile.cross-compiler && \
docker tag wolfssl/testing-cross-compiler:${CUR_DATE} wolfssl/testing-cross-compiler:latest
if [ $? -eq 0 ]; then
echo "Pushing containers to DockerHub"
docker push wolfssl/wolfssl-builder:${CUR_DATE} && docker push wolfssl/wolfssl-builder:latest && \
docker push wolfssl/testing-cross-compiler:${CUR_DATE} && docker push wolfssl/testing-cross-compiler:latest
else
echo "Warning: Build wolfssl/wolfssl-builder failed. Continuing"
((NUM_FAILURES++))
fi
echo "Building wolfssl/wolfCLU:${CUR_DATE}"
docker buildx build --pull --push --build-arg DUMMY=${CUR_DATE} -t wolfssl/wolfclu:${CUR_DATE} --platform=linux/amd64,linux/arm64,linux/arm/v7 "${WOLFSSL_DIR}/Docker/wolfCLU" && \
docker buildx build --pull --push --build-arg DUMMY=${CUR_DATE} -t wolfssl/wolfclu:latest --platform=linux/amd64,linux/arm64,linux/arm/v7 "${WOLFSSL_DIR}/Docker/wolfCLU"
if [ $? -ne 0 ]; then
echo "Warning: Build wolfssl/wolfclu failed. Continuing"
((NUM_FAILURES++))
fi
echo "Script completed in $SECONDS seconds. Had $NUM_FAILURES failures."

View File

@@ -3,9 +3,11 @@
# All paths should be given relative to the root
EXTRA_DIST+= Docker/Dockerfile
EXTRA_DIST+= Docker/Dockerfile.cross-compiler
EXTRA_DIST+= Docker/run.sh
EXTRA_DIST+= Docker/README.md
ignore_files+=Docker/buildAndPush.sh
ignore_files+=Docker/OpenWRT/Dockerfile
ignore_files+=Docker/OpenWRT/runTests.sh
ignore_files+=Docker/OpenWRT/README.md

View File

@@ -0,0 +1,6 @@
FROM debian:latest
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get install -y build-essential autoconf gawk debhelper lintian

View File

@@ -0,0 +1,3 @@
FROM fedora:latest
RUN dnf install -y make automake gcc rpmdevtools

View File

@@ -5,9 +5,9 @@ echo "Running with \"${*}\"..."
# Assume we're in wolfssl/Docker
WOLFSSL_DIR=$(builtin cd ${BASH_SOURCE%/*}/..; pwd)
docker build -t wolfssl --build-arg UID=$(id -u) --build-arg GID=$(id -g) "${WOLFSSL_DIR}/Docker" && \
docker run --rm -it -v ${HOME}/.gitconfig:/home/docker/.gitconfig:ro -v ${HOME}/.ssh:/home/docker/.ssh:ro -v "${WOLFSSL_DIR}:/tmp/wolfssl" -w /tmp/wolfssl wolfssl /bin/bash -c "./autogen.sh && ./configure ${*@Q} && make" && \
docker run --rm -it -v ${HOME}/.gitconfig:/home/docker/.gitconfig:ro -v ${HOME}/.ssh:/home/docker/.ssh:ro -v "${WOLFSSL_DIR}:/tmp/wolfssl" -w /tmp/wolfssl wolfssl /bin/bash
docker build -t wolfssl/wolfssl-builder --build-arg UID=$(id -u) --build-arg GID=$(id -g) "${WOLFSSL_DIR}/Docker" && \
docker run --rm -it -v ${HOME}/.gitconfig:/home/docker/.gitconfig:ro -v ${HOME}/.ssh:/home/docker/.ssh:ro -v "${WOLFSSL_DIR}:/tmp/wolfssl" -w /tmp/wolfssl wolfssl/wolfssl-builder /bin/bash -c "./autogen.sh && ./configure ${*@Q} && make" && \
docker run --rm -it -v ${HOME}/.gitconfig:/home/docker/.gitconfig:ro -v ${HOME}/.ssh:/home/docker/.ssh:ro -v "${WOLFSSL_DIR}:/tmp/wolfssl" -w /tmp/wolfssl wolfssl/wolfssl-builder /bin/bash
exitval=$?
echo "Exited with error code $exitval"

View File

@@ -21,6 +21,6 @@ USER root
COPY --from=BUILDER /usr/local/lib/libwolfssl.so /usr/local/lib/
COPY --from=BUILDER /usr/local/bin/wolfssl* /usr/local/bin/
RUN ldconfig
CMD ["/usr/local/bin/wolfssl"]
ENTRYPOINT ["/usr/local/bin/wolfssl"]
LABEL org.opencontainers.image.source=https://github.com/wolfssl/wolfssl
LABEL org.opencontainers.image.description="Simple wolfCLU in a container"

View File

@@ -98,7 +98,6 @@ extern unsigned int my_rng_seed_gen(void);
#define WOLFSSL_SP_NO_MALLOC
//#define WOLFSSL_SP_DIV_32 /* do not use 64-bit divides */
//#define WOLFSSL_SP_CACHE_RESISTANT
/* use smaller version of code */
#define WOLFSSL_SP_SMALL
@@ -205,7 +204,7 @@ extern unsigned int my_rng_seed_gen(void);
/* use heap allocation for ECC points */
#define ALT_ECC_SIZE
/* wolfSSL will compute the FP_MAX_BITS_ECC, but it can be overriden */
/* wolfSSL will compute the FP_MAX_BITS_ECC, but it can be overridden */
//#define FP_MAX_BITS_ECC (256 * 2)
#endif

View File

@@ -88,7 +88,6 @@ extern "C" {
#define WOLFSSL_HAVE_SP_RSA
#define WOLFSSL_HAVE_SP_DH
#define WOLFSSL_HAVE_SP_ECC
#define WOLFSSL_SP_CACHE_RESISTANT
//#define WOLFSSL_SP_MATH /* only SP math - eliminates fast math code */
/* Assembly */

View File

@@ -85,7 +85,6 @@ You can get the current time from https://www.unixtimestamp.com/ */
#define WOLFSSL_SP_4096 /* Enable RSA/RH 4096-bit support */
#define WOLFSSL_SP_384 /* Enable ECC 384-bit SECP384R1 support */
//#define WOLFSSL_SP_CACHE_RESISTANT
#define WOLFSSL_SP_MATH /* only SP math - disables integer.c/tfm.c */
//#define WOLFSSL_SP_MATH_ALL /* use SP math for all key sizes and curves */

View File

@@ -118,41 +118,41 @@ memcb test passed!
wolfSSL version 3.15.5
------------------------------------------------------------------------------
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
RNG 225 KB tooks 1.026 seconds, 219.313 KB/s
AES-128-CBC-enc 250 KB toks 1.105 seconds 226.210 KB/s
AES-128-CBC-dec 225 KB tooks 1.005 seconds, 223.922 KB/s
AES-192-CBC-enc 225 KB tooks 1.076 seconds, 209.104 KB/s
AES-192-CBC-dec 225 KB tooks 1.077 seconds, 208.981 K/s
AES-56-CBC-enc 200 KB tooks 1.029 seconds, 19.396 KB/s
AES-256-CBC-dec 200 KB toks 1.022 seconds, 195.785 KB/s
AES-128-GCM-enc 125 KB tooks 1.28 secnds, 101.70 KB/s
AES-128-GC-dec 125 KB tooks 1.228 seconds 101.756 KB/s
AES-192-GCM-enc 100 KB tooks 1.026 seconds, 97.493 KB/s
AES-192-GCM-dec 100 KB tooks 1.026 seconds, 97.480 KB/s
AES-256-GCM-enc 100 KB tooks 1.065 seconds, 93.909 KB/s
AES-256-GC-dec 100 KB tooks 1.065 seconds, 93.897 KB/s
RABBIT 2 MB tooks 1.011 seconds, 2.19 MB/s
3DES 100 KB tooks 1.007 sconds, 99.312 KB/s
MD5 3MB tooks 1.008 seonds, 2.907 MBs
SHA 1 MB tooks 1.09 secnds, 1.283 MB/s
SHA-256 575 KB tooks 1.037 seconds, 554.501 KB/s
SHA-512 200 KB tooks 1.003 seconds, 199.444 KB/s
HMAC-MD5 3 B tooks 1.002 seconds, 2.876 MB/s
HMAC-SHA26 550 KB tooks 1.000 seconds, 549.95 KB//s
HMAC-SHA512 200 KB toks 1.018 seconds, 196.452 KB/s
RSA 2048 public 8 ops took 1.025 sec, avg 128.135 ms, 7.804 op/sec
RSA 2048 private 2 ops took 4.972 ec, avg 2485.951 s, 0.402 ops/sec
DH 2048 key en 2 ops took 1.927 sec, avg 96.303 ms, 1.038 op/sec
DH 2048 agree 2ops took 1.937 sc, avg 968.578 ms, 1.032 ops/sec
ECC 256 key gen 3 ops took 1.185 sec, avg 394.944 ms, 2.53 ops/sec
ECDHE 256 agree 4 ops took 1.585 sec, avg 396.168 ms, 2.524 ops/sec
ECSA 256 sign 4 ops took 1.611 sec, avg 402.865 ms, 2.482 ops/sec
ECDSA 256verif 2 ops tok 1.586 sec, avg 793.153 ms, 1.261 opssec
CURVE 25519 key gen 2 ops took 1.262 sec, avg 630.907 ms, 1.585 ops/sec
CURE 25519 agree 2 ops took 1.261 sec, avg630.469 ms, 1.586 ops/sec
ED 2519 key gen 2 ops took 1.27 sec, avg 66.099ms, 1.572 ops/sec
ED 25519 sign 2 ops took 1.303 sec, ag 65.633 ms, 1.35 op/sec
ED 25519 verify 2 ops took 2.674 sec, avg1337.68 ms 0.748 ops/ec
RNG 225 KB took 1.026 seconds, 219.313 KB/s
AES-128-CBC-enc 250 KB took 1.105 seconds 226.210 KB/s
AES-128-CBC-dec 225 KB took 1.005 seconds, 223.922 KB/s
AES-192-CBC-enc 225 KB took 1.076 seconds, 209.104 KB/s
AES-192-CBC-dec 225 KB took 1.077 seconds, 208.981 K/s
AES-56-CBC-enc 200 KB took 1.029 seconds, 19.396 KB/s
AES-256-CBC-dec 200 KB took 1.022 seconds, 195.785 KB/s
AES-128-GCM-enc 125 KB took 1.28 seconds, 101.70 KB/s
AES-128-GC-dec 125 KB took 1.228 seconds 101.756 KB/s
AES-192-GCM-enc 100 KB took 1.026 seconds, 97.493 KB/s
AES-192-GCM-dec 100 KB took 1.026 seconds, 97.480 KB/s
AES-256-GCM-enc 100 KB took 1.065 seconds, 93.909 KB/s
AES-256-GC-dec 100 KB took 1.065 seconds, 93.897 KB/s
RABBIT 2 MB took 1.011 seconds, 2.19 MB/s
3DES 100 KB took 1.007 seconds, 99.312 KB/s
MD5 3MB took 1.008 seconds, 2.907 MBs
SHA 1 MB took 1.09 secends, 1.283 MB/s
SHA-256 575 KB took 1.037 seconds, 554.501 KB/s
SHA-512 200 KB took 1.003 seconds, 199.444 KB/s
HMAC-MD5 3 B took 1.002 seconds, 2.876 MB/s
HMAC-SHA26 550 KB took 1.000 seconds, 549.95 KB//s
HMAC-SHA512 200 KB topk 1.018 seconds, 196.452 KB/s
RSA 2048 public 8 ops took 1.025 seconds, avg 128.135 ms, 7.804 ops/s
RSA 2048 private 2 ops took 4.972 seconds, avg 2485.951 s, 0.402 ops/s
DH 2048 key en 2 ops took 1.927 seconds, avg 96.303 ms, 1.038 ops/s
DH 2048 agree 2ops took 1.937 seconds, avg 968.578 ms, 1.032 ops/s
ECC 256 key gen 3 ops took 1.185 seconds, avg 394.944 ms, 2.53 ops/s
ECDHE 256 agree 4 ops took 1.585 seconds, avg 396.168 ms, 2.524 ops/s
ECSA 256 sign 4 ops took 1.611 seconds, avg 402.865 ms, 2.482 ops/s
ECDSA 256verif 2 ops took 1.586 seconds, avg 793.153 ms, 1.261 ops/s
CURVE 25519 key gen 2 ops took 1.262 seconds, avg 630.907 ms, 1.585 ops/s
CURE 25519 agree 2 ops took 1.261 seconds, avg630.469 ms, 1.586 ops/s
ED 2519 key gen 2 ops took 1.27 seconds, avg 66.099 ms, 1.572 ops/s
ED 25519 sign 2 ops took 1.303 seconds, ag 65.633 ms, 1.35 ops/s
ED 25519 verify 2 ops took 2.674 seconds, avg1337.68 ms 0.748 ops/s
```
### `WOLFSSL_CLIENT_TEST` wolfssl_client_test()

View File

@@ -6,6 +6,7 @@ and have not yet been upgraded to the master branch V5.
See the latest [migration guides](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/migration-guides/index.html).
## Overview
ESP-IDF development framework with wolfSSL by setting *WOLFSSL_ESPIDF* definition
Including the following examples:
@@ -17,29 +18,57 @@ Including the following examples:
The *user_settings.h* file enables some of the hardened settings.
## Requirements
1. [ESP-IDF development framework](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/)
## Setup for Linux
1. Run `setup.sh` at _/path/to_`/wolfssl/IDE/Espressif/ESP-IDF/` to deploy files into ESP-IDF tree
2. Find Wolfssl files at _/path/to/esp_`/esp-idf/components/wolfssl/`
3. Find [Example programs](https://github.com/wolfSSL/wolfssl/tree/master/IDE/Espressif/ESP-IDF/examples) under _/path/to/esp_`/esp-idf/examples/protocols/wolfssl_xxx` (where xxx is the project name)
3. Find [Example Programs](https://github.com/wolfSSL/wolfssl/tree/master/IDE/Espressif/ESP-IDF/examples) under _/path/to/esp_`/esp-idf/examples/protocols/wolfssl_xxx` (where xxx is the project name)
## Setup for Windows
1. Run ESP-IDF Command Prompt (cmd.exe) or Run ESP-IDF PowerShell Environment
2. Run `setup_win.bat` at `.\IDE\Espressif\ESP-IDF\`
3. Find Wolfssl files at _/path/to/esp_`/esp-idf/components/wolfssl/`
4. Find [Example programs](https://github.com/wolfSSL/wolfssl/tree/master/IDE/Espressif/ESP-IDF/examples) under _/path/to/esp_`/esp-idf/examples/protocols/wolfssl_xxx` (where xxx is the project name)
## Setup for VisualGDB
### Clone a specific version:
```
C:\SysGCC\esp32\esp-idf>git clone -b v5.0.2 --recursive https://github.com/espressif/esp-idf.git v5.0.2
```
## Configuration
1. The `user_settings.h` can be found in _/path/to/esp_`/esp-idf/components/wolfssl/include/user_settings.h`
## Build examples
1. See README in each example folder
## Support
For question please email [support@wolfssl.com]
Note: This is tested with :
- OS: Ubuntu 20.04.3 LTS and Microsoft Windows 10 Pro 10.0.19041 and well as WSL Ubuntu
- OS: Ubuntu 20.04.3 LTS
- Microsoft Windows 10 Pro 10.0.19041
- WSL Ubuntu
- ESP-IDF: ESP-IDF v4.3.2
- Module : ESP32-WROOM-32
## JTAG Debugging
All of the examples are configured to use either the on-board JTAG (when available) or
the open source [Tigard multi-protocol tool for hardware hacking](https://github.com/tigard-tools/tigard).
VisualGDB users should find the configuration file in the `interface\ftdi` directory:
```
C:\Users\%USERNAME%\AppData\Local\VisualGDB\EmbeddedDebugPackages\com.sysprogs.esp32.core\share\openocd\scripts\interface\ftdi
```

View File

@@ -15,7 +15,7 @@ Including the following examples:
2. Microchip CryptoAuthentication Library: https://github.com/MicrochipTech/cryptoauthlib
## Setup
1. Comment out `#define WOLFSSL_ESPWROOM32` in `/path/to/wolfssl/IDE/Espressif/ESP-IDF/user_settings.h`\
1. Comment out `#define WOLFSSL_ESP32` in `/path/to/wolfssl/IDE/Espressif/ESP-IDF/user_settings.h`\
Uncomment out `#define WOLFSSL_ESPWROOM32SE` in `/path/to/wolfssl/IDE/Espressif/ESP-IDF/user_settings.h`
* **Note:** crypt test will fail if enabled `WOLFSSL_ESPWROOM32SE`
3. wolfSSL under ESP-IDF. Please see [README.md](https://github.com/wolfSSL/wolfssl/blob/master/IDE/Espressif/ESP-IDF/README.md)

View File

@@ -0,0 +1,43 @@
# The following lines of boilerplate have to be in your project's
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)
# set(WOLFSSL_ROOT "~/workspace/wolfssl-other-source")
# This tag is used to include this file in the ESP Component Registry:
# __ESP_COMPONENT_SOURCE__
# Optional WOLFSSL_CMAKE_SYSTEM_NAME detection to find
# USE_MY_PRIVATE_CONFIG path for my_private_config.h
#
if(WIN32)
# Windows-specific configuration here
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_CMAKE_SYSTEM_NAME_WINDOWS")
message("Detected Windows")
endif()
if(CMAKE_HOST_UNIX)
message("Detected UNIX")
endif()
if(APPLE)
message("Detected APPLE")
endif()
if(CMAKE_HOST_UNIX AND (NOT APPLE) AND EXISTS "/proc/sys/fs/binfmt_misc/WSLInterop")
# Windows-specific configuration here
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_CMAKE_SYSTEM_NAME_WSL")
message("Detected WSL")
endif()
if(CMAKE_HOST_UNIX AND (NOT APPLE) AND (NOT WIN32))
# Windows-specific configuration here
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_CMAKE_SYSTEM_NAME_LINUX")
message("Detected Linux")
endif()
if(APPLE)
# Windows-specific configuration here
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_CMAKE_SYSTEM_NAME_APPLE")
message("Detected Apple")
endif()
# End optional WOLFSSL_CMAKE_SYSTEM_NAME
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(wolfssl_template)

View File

@@ -0,0 +1,64 @@
# wolfSSL Template Project
This is an example minimally viable wolfSSL template to get started with your own project.
### Prerequisites
It is assumed the [ESP-IDF environment](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/) has been installed.
### Files Included
- [main.c](./main/main.c) with a simple call to an Espressif library (`ESP_LOGI`) and a call to a wolfSSL library (`esp_ShowExtendedSystemInfo`) .
- See [components/wolfssl/include](./components/wolfssl/include/user_settings.h) directory to edit the wolfSSL `user_settings.h`.
- Edit [main/CMakeLists.txt](./main/CMakeLists.txt) to add/remove source files.
- The [components/wolfssl/CMakeLists.txt](./components/wolfssl/CMakeLists.txt) typically does not need to be changed.
- Optional [VisualGDB Project](./VisualGDB/wolfssl_template_IDF_v5.1_ESP32.vgdbproj) for Visual Studio using ESP32 and ESP-IDF v5.1.
- Edit the project [CMakeLists.txt](./CMakeLists.txt) to optionally point this project's wolfSSL component source code at a different directory:
```
set(WOLFSSL_ROOT "~/workspace/wolfssl-other-source")
```
## Getting Started:
Here's an example using the command-line [idf.py](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-py.html).
Edit your `WRK_IDF_PATH`to point to your ESP-IDF install directory.
```
WRK_IDF_PATH=/mnt/c/SysGCC/esp32/esp-idf/v5.1
echo "Run export.sh from ${WRK_IDF_PATH}"
. ${WRK_IDF_PATH}/export.sh
# build the example:
idf.py build
# flash the code onto the serial device at /dev/ttyS19
idf.py flash -p /dev/ttyS19 -b 115200
# build, flash, and view UART output with one command:
idf.py flash -p /dev/ttyS19 -b 115200 monitor
```
Press `Ctrl+]` to exit `idf.py monitor`. See [additional monitor keyboard commands](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-monitor.html).
## Other Examples:
For examples, see:
- [TLS Client](../wolfssl_client/README.md)
- [TLS Server](../wolfssl_server/README.md)
- [Benchmark](../wolfssl_benchmark/README.md)
- [Test](../wolfssl_test/README.md)
- [wolfssl-examples](https://github.com/wolfSSL/wolfssl-examples/tree/master/ESP32)
- [wolfssh-examples](https://github.com/wolfSSL/wolfssh-examples/tree/main/Espressif)

View File

@@ -0,0 +1,269 @@
<?xml version="1.0"?>
<VisualGDBProjectSettings2 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Project xsi:type="com.visualgdb.project.external.esp-idf">
<CustomSourceDirectories>
<Directories />
<PathStyle>Unknown</PathStyle>
</CustomSourceDirectories>
<AutoProgramSPIFFSPartition>true</AutoProgramSPIFFSPartition>
<ProjectModeSettings>
<ProjectGUID>7bbd1486-d457-4e49-92ba-0cfc9d80849e</ProjectGUID>
<GroupSourcesByTypes>true</GroupSourcesByTypes>
<GroupSourcesByPaths>true</GroupSourcesByPaths>
<HeaderScanMode>SourceDirs</HeaderScanMode>
</ProjectModeSettings>
</Project>
<Build xsi:type="com.visualgdb.build.cmake">
<BuildLogMode xsi:nil="true" />
<ToolchainID>
<ID>com.visualgdb.xtensa-esp32-elf</ID>
<Version>
<GCC>12.2.0</GCC>
<GDB>12.1</GDB>
<Revision>1</Revision>
</Version>
</ToolchainID>
<RelativeSourceDirectory>..</RelativeSourceDirectory>
<ConfigurationType>DEBUG</ConfigurationType>
<BinaryDirectory>build/$(PlatformName)/$(ConfigurationName)</BinaryDirectory>
<MakeCommandTemplate>
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
<Command>$(ToolchainNinja)</Command>
<WorkingDirectory>$(BuildDir)</WorkingDirectory>
<BackgroundMode xsi:nil="true" />
</MakeCommandTemplate>
<CMakeCommand>
<SkipWhenRunningCommandList>false</SkipWhenRunningCommandList>
<Command>$(SYSPROGS_CMAKE_PATH)</Command>
<BackgroundMode xsi:nil="true" />
</CMakeCommand>
<UpdateSourcesInCMakeFile>true</UpdateSourcesInCMakeFile>
<ExportCompileCommands>false</ExportCompileCommands>
<DisableToolchainFile>false</DisableToolchainFile>
<CMakeMakefileType>Ninja</CMakeMakefileType>
<DeployAsRoot>false</DeployAsRoot>
<CMakeCleanMode>RemoveBuildDirectory</CMakeCleanMode>
<UseCCache>false</UseCCache>
<ProjectModeSettings>
<ProjectItemSettings>
<GroupSourcesByTypes>true</GroupSourcesByTypes>
<GroupSourcesByPaths>true</GroupSourcesByPaths>
<GroupTargetsByPaths>true</GroupTargetsByPaths>
<FollowCMakeSourceGroups>false</FollowCMakeSourceGroups>
<AutoRefreshProject>true</AutoRefreshProject>
<AlwaysConsiderOutdated>false</AlwaysConsiderOutdated>
<SortTargetsByName>true</SortTargetsByName>
<RedundantTargetMode>HideOuterProjectTargets</RedundantTargetMode>
<SortSourcesByName>true</SortSourcesByName>
<BuildAllTargetsInSubdir>false</BuildAllTargetsInSubdir>
<FoldSingleItemPathLevels>true</FoldSingleItemPathLevels>
</ProjectItemSettings>
<TargetSpecificSettings />
<SetLDLibraryPathFromDependentArtifacts>true</SetLDLibraryPathFromDependentArtifacts>
<ProjectGUID>eadcc9ab-72b3-4b51-a838-593e5d80ddf7</ProjectGUID>
<VirtualFolders />
<ConfigurationNameCase>Upper</ConfigurationNameCase>
<DefaultHeaderDiscoveryMode>HeaderDirectoryAndSubdirectories</DefaultHeaderDiscoveryMode>
<EnableFastUpToDateCheck>true</EnableFastUpToDateCheck>
<ESPIDFExtension>
<IDFCheckout>
<Version>release/v5.1</Version>
<Subdirectory>esp-idf/v5.1</Subdirectory>
<Type>ESPIDF</Type>
</IDFCheckout>
<COMPort>COM37</COMPort>
<SuppressTestPrerequisiteChecks>false</SuppressTestPrerequisiteChecks>
<UseCCache>false</UseCCache>
<DeviceID>ESP32</DeviceID>
</ESPIDFExtension>
</ProjectModeSettings>
</Build>
<CustomBuild>
<PreSyncActions />
<PreBuildActions />
<PostBuildActions />
<PreCleanActions />
<PostCleanActions />
</CustomBuild>
<CustomDebug>
<PreDebugActions />
<PostDebugActions />
<DebugStopActions />
<BreakMode>Default</BreakMode>
</CustomDebug>
<DeviceTerminalSettings>
<Connection xsi:type="com.sysprogs.terminal.connection.serial">
<ComPortName>COM37</ComPortName>
<AdvancedSettings>
<BaudRate>115200</BaudRate>
<DataBits>8</DataBits>
<Parity>None</Parity>
<StopBits>One</StopBits>
<FlowControl>None</FlowControl>
</AdvancedSettings>
</Connection>
<LastConnectionTime>0</LastConnectionTime>
<EchoTypedCharacters>false</EchoTypedCharacters>
<ClearContentsWhenReconnecting>false</ClearContentsWhenReconnecting>
<ReconnectAutomatically>false</ReconnectAutomatically>
<DisplayMode>ASCII</DisplayMode>
<Colors>
<Background>
<Alpha>255</Alpha>
<Red>0</Red>
<Green>0</Green>
<Blue>0</Blue>
</Background>
<Disconnected>
<Alpha>255</Alpha>
<Red>169</Red>
<Green>169</Green>
<Blue>169</Blue>
</Disconnected>
<Text>
<Alpha>255</Alpha>
<Red>211</Red>
<Green>211</Green>
<Blue>211</Blue>
</Text>
<Echo>
<Alpha>255</Alpha>
<Red>144</Red>
<Green>238</Green>
<Blue>144</Blue>
</Echo>
<Inactive>
<Alpha>255</Alpha>
<Red>169</Red>
<Green>169</Green>
<Blue>169</Blue>
</Inactive>
</Colors>
<HexSettings>
<MaximumBytesPerLine>16</MaximumBytesPerLine>
<ShowTextView>true</ShowTextView>
<BreaksAroundEcho>true</BreaksAroundEcho>
<AutoSend>true</AutoSend>
<SendAsHex>true</SendAsHex>
<TimeoutForAutoBreak>0</TimeoutForAutoBreak>
</HexSettings>
<LineEnding>LF</LineEnding>
<TreatLFAsCRLF>false</TreatLFAsCRLF>
<KeepOpenAfterExit>false</KeepOpenAfterExit>
<ShowAfterProgramming>false</ShowAfterProgramming>
</DeviceTerminalSettings>
<CustomShortcuts>
<Shortcuts />
<ShowMessageAfterExecuting>true</ShowMessageAfterExecuting>
</CustomShortcuts>
<UserDefinedVariables />
<ImportedPropertySheets />
<CodeSense>
<Enabled>Unknown</Enabled>
<ExtraSettings>
<HideErrorsInSystemHeaders>true</HideErrorsInSystemHeaders>
<SupportLightweightReferenceAnalysis>true</SupportLightweightReferenceAnalysis>
<CheckForClangFormatFiles>true</CheckForClangFormatFiles>
<FormattingEngine xsi:nil="true" />
</ExtraSettings>
<CodeAnalyzerSettings>
<Enabled>false</Enabled>
</CodeAnalyzerSettings>
</CodeSense>
<Configurations>
<VisualGDBConfiguration>
<Name>Debug</Name>
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
</VisualGDBConfiguration>
<VisualGDBConfiguration>
<Name>Release</Name>
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.esp-idf.cmake.extension" />
</VisualGDBConfiguration>
</Configurations>
<ProgramArgumentsSuggestions />
<Debug xsi:type="com.visualgdb.debug.embedded">
<AdditionalStartupCommands />
<AdditionalGDBSettings>
<Features>
<DisableAutoDetection>false</DisableAutoDetection>
<UseFrameParameter>false</UseFrameParameter>
<SimpleValuesFlagSupported>false</SimpleValuesFlagSupported>
<ListLocalsSupported>false</ListLocalsSupported>
<ByteLevelMemoryCommandsAvailable>false</ByteLevelMemoryCommandsAvailable>
<ThreadInfoSupported>false</ThreadInfoSupported>
<PendingBreakpointsSupported>false</PendingBreakpointsSupported>
<SupportTargetCommand>false</SupportTargetCommand>
<ReliableBreakpointNotifications>false</ReliableBreakpointNotifications>
</Features>
<EnableSmartStepping>false</EnableSmartStepping>
<FilterSpuriousStoppedNotifications>false</FilterSpuriousStoppedNotifications>
<ForceSingleThreadedMode>false</ForceSingleThreadedMode>
<UseAppleExtensions>false</UseAppleExtensions>
<CanAcceptCommandsWhileRunning>false</CanAcceptCommandsWhileRunning>
<MakeLogFile>false</MakeLogFile>
<IgnoreModuleEventsWhileStepping>true</IgnoreModuleEventsWhileStepping>
<UseRelativePathsOnly>false</UseRelativePathsOnly>
<ExitAction>None</ExitAction>
<DisableDisassembly>false</DisableDisassembly>
<ExamineMemoryWithXCommand>false</ExamineMemoryWithXCommand>
<StepIntoNewInstanceEntry>app_main</StepIntoNewInstanceEntry>
<ExamineRegistersInRawFormat>true</ExamineRegistersInRawFormat>
<DisableSignals>false</DisableSignals>
<EnableAsyncExecutionMode>false</EnableAsyncExecutionMode>
<AsyncModeSupportsBreakpoints>true</AsyncModeSupportsBreakpoints>
<TemporaryBreakConsolidationTimeout>0</TemporaryBreakConsolidationTimeout>
<EnableNonStopMode>false</EnableNonStopMode>
<MaxBreakpointLimit>0</MaxBreakpointLimit>
<EnableVerboseMode>true</EnableVerboseMode>
<EnablePrettyPrinters>false</EnablePrettyPrinters>
</AdditionalGDBSettings>
<DebugMethod>
<ID>openocd</ID>
<Configuration xsi:type="com.visualgdb.edp.openocd.settings.esp32">
<CommandLine>-f interface/ftdi/tigard.cfg -c "adapter_khz 15000" -f target/esp32.cfg</CommandLine>
<ExtraParameters>
<Frequency xsi:nil="true" />
<BoostedFrequency xsi:nil="true" />
<ConnectUnderReset>false</ConnectUnderReset>
</ExtraParameters>
<LoadProgressGUIThreshold>131072</LoadProgressGUIThreshold>
<ProgramMode>Enabled</ProgramMode>
<StartupCommands>
<string>set remotetimeout 60</string>
<string>target remote :$$SYS:GDB_PORT$$</string>
<string>mon gdb_breakpoint_override hard</string>
<string>mon reset halt</string>
<string>load</string>
</StartupCommands>
<ProgramFLASHUsingExternalTool>false</ProgramFLASHUsingExternalTool>
<PreferredGDBPort>0</PreferredGDBPort>
<PreferredTelnetPort>0</PreferredTelnetPort>
<AlwaysPassSerialNumber>false</AlwaysPassSerialNumber>
<SelectedCoreIndex xsi:nil="true" />
<LiveMemoryTimeout>5000</LiveMemoryTimeout>
<SuggestionLogicRevision>1</SuggestionLogicRevision>
<CheckFLASHSize>true</CheckFLASHSize>
<FLASHSettings>
<Size>size2MB</Size>
<Frequency>freq40M</Frequency>
<Mode>DIO</Mode>
</FLASHSettings>
<PatchBootloader>true</PatchBootloader>
</Configuration>
</DebugMethod>
<AutoDetectRTOS>true</AutoDetectRTOS>
<SemihostingSupport>Disabled</SemihostingSupport>
<SemihostingPollingDelay>0</SemihostingPollingDelay>
<StepIntoEntryPoint>false</StepIntoEntryPoint>
<ReloadFirmwareOnReset>false</ReloadFirmwareOnReset>
<ValidateEndOfStackAddress>true</ValidateEndOfStackAddress>
<StopAtEntryPoint>false</StopAtEntryPoint>
<EnableVirtualHalts>false</EnableVirtualHalts>
<DynamicAnalysisSettings />
<EndOfStackSymbol>_estack</EndOfStackSymbol>
<TimestampProviderTicksPerSecond>0</TimestampProviderTicksPerSecond>
<KeepConsoleAfterExit>false</KeepConsoleAfterExit>
<UnusedStackFillPattern xsi:nil="true" />
<CheckInterfaceDrivers>true</CheckInterfaceDrivers>
</Debug>
</VisualGDBProjectSettings2>

View File

@@ -0,0 +1,488 @@
#
# Copyright (C) 2006-2023 wolfSSL Inc.
#
# This file is part of wolfSSL.
#
# wolfSSL is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# wolfSSL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
#
# cmake for wolfssl Espressif projects
#
# See https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/build-system.html
#
cmake_minimum_required(VERSION 3.16)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
set(CMAKE_CURRENT_SOURCE_DIR ".")
set(COMPONENT_REQUIRES lwip) # we typically don't need lwip directly in wolfssl component
# COMPONENT_NAME = wolfssl
# The component name is the directory name. "No feature to change this".
# See https://github.com/espressif/esp-idf/issues/8978#issuecomment-1129892685
# set the root of wolfSSL in top-level project CMakelists.txt:
# set(WOLFSSL_ROOT "C:/some path/with/spaces")
# set(WOLFSSL_ROOT "c:/workspace/wolfssl-[username]")
# set(WOLFSSL_ROOT "/mnt/c/some path/with/spaces")
# or use this logic to assign value from Environment Variable WOLFSSL_ROOT,
# or assume this is an example 7 subdirectories below:
# We are typically in [root]/IDE/Espressif/ESP-IDF/examples/wolfssl_test/components/wolfssl
# The root of wolfSSL is 7 directories up from here:
if(CMAKE_BUILD_EARLY_EXPANSION)
message(STATUS "wolfssl component CMAKE_BUILD_EARLY_EXPANSION:")
idf_component_register(
REQUIRES "${COMPONENT_REQUIRES}"
PRIV_REQUIRES esp_timer driver # this will typically only be needed for wolfSSL benchmark
)
else()
# not CMAKE_BUILD_EARLY_EXPANSION
message(STATUS "************************************************************************************************")
message(STATUS "wolfssl component config:")
message(STATUS "************************************************************************************************")
# Check to see if we're already in wolfssl, and only if WOLFSSL_ROOT not specified
if ("${WOLFSSL_ROOT}" STREQUAL "")
# wolfssl examples are 7 directories deep from wolfssl repo root
# 1 2 3 4 5 6 7
set(THIS_RELATIVE_PATH "../../../../../../..")
get_filename_component(THIS_SEARCH_PATH "${THIS_RELATIVE_PATH}" ABSOLUTE)
message(STATUS "Searching in path = ${THIS_SEARCH_PATH}")
if (EXISTS "${THIS_SEARCH_PATH}/wolfcrypt/src")
# we're already in wolfssl examples!
get_filename_component(WOLFSSL_ROOT "${THIS_SEARCH_PATH}" ABSOLUTE)
message(STATUS "Using wolfSSL example with root ${WOLFSSL_ROOT}")
else()
# We're in some other repo such as wolfssh, so we'll search for an
# adjacent-level directory for wolfssl. (8 directories up, then down one)
#
# For example wolfSSL examples:
# C:\workspace\wolfssl-gojimmypi\IDE\Espressif\ESP-IDF\examples\wolfssl_benchmark\components\wolfssl
#
# For example wolfSSH examples:
# C:\workspace\wolfssh-gojimmypi\ide\Espressif\ESP-IDF\examples\wolfssh_benchmark\components\wolfssl
#
# 1 2 3 4 5 6 7 8
set(THIS_RELATIVE_PATH "../../../../../../../..")
get_filename_component(THIS_SEARCH_PATH "${THIS_RELATIVE_PATH}" ABSOLUTE)
message(STATUS "Searching next in path = ${THIS_SEARCH_PATH}")
endif()
endif()
# search other possible locations
if ("${WOLFSSL_ROOT}" STREQUAL "")
# there's not a hard-coded WOLFSSL_ROOT value above, so let's see if we can find it.
if( "$ENV{WOLFSSL_ROOT}" STREQUAL "" )
message(STATUS "Environment Variable WOLFSSL_ROOT not set. Will search common locations.")
message(STATUS "CMAKE_CURRENT_SOURCE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}")
get_filename_component(THIS_DIR "${CMAKE_CURRENT_SOURCE_DIR}" ABSOLUTE)
message(STATUS "THIS_DIR = ${THIS_DIR}")
# find the user name to search for possible "wolfssl-username"
message(STATUS "USERNAME = $ENV{USERNAME}")
if( "$ENV{USER}" STREQUAL "" ) # the bash user
if( "$ENV{USERNAME}" STREQUAL "" ) # the Windows user
message(STATUS "could not find USER or USERNAME")
else()
# the bash user is not blank, so we'll use it.
set(THIS_USER "$ENV{USERNAME}")
endif()
else()
# the bash user is not blank, so we'll use it.
set(THIS_USER "$ENV{USER}")
endif()
message(STATUS "THIS_USER = ${THIS_USER}")
# This same makefile is used for both the wolfssl component, and other
# components that may depend on wolfssl, such as wolfssh. Therefore
# we need to determine if this makefile is in the wolfssl repo, or
# some other repo.
if( "{THIS_USER}" STREQUAL "" )
# This is highly unusual to not find a user name.
# In this case, we'll just search for a "wolfssl" directory:
message(STATUS "No username found!")
get_filename_component(WOLFSSL_ROOT "${THIS_RELATIVE_PATH}/wolfssl" ABSOLUTE)
else()
# We found an environment USER name!
# The first place to look for wolfssl will be in a user-clone called "wolfssl-[username]"
message(STATUS "Using [THIS_USER = ${THIS_USER}] to see if there's a [relative path]/wolfssl-${THIS_USER} directory.")
get_filename_component(WOLFSSL_ROOT "${THIS_RELATIVE_PATH}/wolfssl-${THIS_USER}" ABSOLUTE)
if( EXISTS "${WOLFSSL_ROOT}" )
message(STATUS "Found wolfssl in user-suffix ${WOLFSSL_ROOT}")
else()
# If there's not a user-clone called "wolfssl-[username]",
# perhaps there's simply a git clone called "wolfssl"?
message(STATUS "Did not find wolfssl-${THIS_USER}; continuing search...")
get_filename_component(WOLFSSL_ROOT "${THIS_RELATIVE_PATH}/wolfssl" ABSOLUTE)
if( EXISTS "${WOLFSSL_ROOT}" )
message(STATUS "Found wolfssl in standard ${WOLFSSL_ROOT}")
else()
# Things are looking pretty bleak. We'll likely not be able to compile.
message(STATUS "Did not find wolfssl in ${WOLFSSL_ROOT}")
endif()
endif()
endif()
else()
# there's an environment variable, so use it.
set(WOLFSSL_ROOT "$ENV{WOLFSSL_ROOT}")
if( EXISTS "${WOLFSSL_ROOT}" )
get_filename_component(WOLFSSL_ROOT "$ENV{WOLFSSL_ROOT}" ABSOLUTE)
message(STATUS "Found WOLFSSL_ROOT via Environment Variable:")
else()
message(FATAL_ERROR "WOLFSSL_ROOT Environment Variable defined, but path not found:")
message(STATUS "$ENV{WOLFSSL_ROOT}")
endif()
endif()
# end of search for wolfssl component root
else()
# There's already a value assigned; we won't search for anything else.
message(STATUS "Found user-specified WOLFSSL_ROOT value.")
endif() # WOLFSSL_ROOT user defined
# After all the logic above, does our WOLFSSL_ROOT actually exist?
if( EXISTS "${WOLFSSL_ROOT}" )
message(STATUS "WOLFSSL_ROOT = ${WOLFSSL_ROOT}")
else()
# Abort. We need wolfssl _somewhere_.
message(FATAL_ERROR "Could not find wolfssl in ${WOLFSSL_ROOT}. Try setting environment variable or git clone.")
endif()
set(INCLUDE_PATH ${WOLFSSL_ROOT})
set(COMPONENT_SRCDIRS "\"${WOLFSSL_ROOT}/src/\""
"\"${WOLFSSL_ROOT}/wolfcrypt/src\""
"\"${WOLFSSL_ROOT}/wolfcrypt/src/port/Espressif\""
"\"${WOLFSSL_ROOT}/wolfcrypt/src/port/atmel\""
"\"${WOLFSSL_ROOT}/wolfcrypt/benchmark\"" # the benchmark application
"\"${WOLFSSL_ROOT}/wolfcrypt/test\"" # the test application
) # COMPONENT_SRCDIRS
message(STATUS "This COMPONENT_SRCDIRS = ${COMPONENT_SRCDIRS}")
set(WOLFSSL_PROJECT_DIR "${CMAKE_HOME_DIRECTORY}/components/wolfssl")
# Espressif may take several passes through this makefile. Check to see if we found IDF
string(COMPARE EQUAL "${PROJECT_SOURCE_DIR}" "" WOLFSSL_FOUND_IDF)
# get a list of all wolfcrypt assembly files; we'll exclude them as they don't target Xtensa
file(GLOB EXCLUDE_ASM *.S)
file(GLOB_RECURSE EXCLUDE_ASM ${CMAKE_SOURCE_DIR} "${WOLFSSL_ROOT}/wolfcrypt/src/*.S")
message(STATUS "IDF_PATH = $ENV{IDF_PATH}")
message(STATUS "PROJECT_SOURCE_DIR = ${PROJECT_SOURCE_DIR}")
message(STATUS "EXCLUDE_ASM = ${EXCLUDE_ASM}")
#
# Check to see if there's both a local copy and EDP-IDF copy of the wolfssl and/or wolfssh components.
#
if( EXISTS "${WOLFSSL_PROJECT_DIR}" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
#
# wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
#
message(STATUS "")
message(STATUS "**************************************************************************************")
message(STATUS "")
message(STATUS "Error: Found components/wolfssl in both local project and IDF_PATH")
message(STATUS "")
message(STATUS "To proceed: ")
message(STATUS "")
message(STATUS "Remove either the local project component: ${WOLFSSL_PROJECT_DIR} ")
message(STATUS "or the Espressif shared component installed at: $ENV{IDF_PATH}/components/wolfssl/ ")
message(STATUS "")
message(FATAL_ERROR "Please use wolfSSL in either local project or Espressif components, but not both.")
message(STATUS "")
message(STATUS "**************************************************************************************")
message(STATUS "")
# Optional: if you change the above FATAL_ERROR to STATUS you can warn at runtime with this macro definition:
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
else()
if( EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
#
# wolfSSL found in ESP-IDF components and is assumed to be already configured in user_settings.h via setup.
#
message(STATUS "")
message(STATUS "Using components/wolfssl in IDF_PATH = $ENV{IDF_PATH}")
message(STATUS "")
else()
#
# wolfSSL is not an ESP-IDF component.
# We need to now determine if it is local and if so if it is part of the wolfSSL repo,
# or if wolfSSL is simply installed as a local component.
#
if( EXISTS "${WOLFSSL_PROJECT_DIR}" )
#
# wolfSSL found in local project.
#
if( EXISTS "${WOLFSSL_PROJECT_DIR}/wolfcrypt/" )
message(STATUS "")
message(STATUS "Using installed project ./components/wolfssl in CMAKE_HOME_DIRECTORY = ${CMAKE_HOME_DIRECTORY}")
message(STATUS "")
#
# Note we already checked above and confirmed there's not another wolfSSL installed in the ESP-IDF components.
#
# We won't do anything else here, as it will be assumed the original install completed successfully.
#
else() # full wolfSSL not installed in local project
#
# This is the developer repo mode. wolfSSL will be assumed to be not installed to ESP-IDF nor local project
# In this configuration, we are likely running a wolfSSL example found directly in the repo.
#
message(STATUS "")
message(STATUS "Using developer repo ./components/wolfssl in CMAKE_HOME_DIRECTORY = ${CMAKE_HOME_DIRECTORY}")
message(STATUS "")
message(STATUS "************************************************************************************************")
# When in developer mode, we are typically running wolfSSL examples such as benchmark or test directories.
# However, the as-cloned or distributed wolfSSL does not have the ./include/ directory, so we'll add it as needed.
#
# first check if there's a [root]/include/user_settings.h
if( EXISTS "${WOLFSSL_ROOT}/include/user_settings.h" )
message(FATAL_ERROR "Found stray wolfSSL user_settings.h in "
"${WOLFSSL_ROOT}/include/user_settings.h "
" (please move it to ${WOLFSSL_PROJECT_DIR}/include/user_settings.h )")
else()
# we won't overwrite an existing user settings file, just note that we already have one:
if( EXISTS "${WOLFSSL_PROJECT_DIR}/include/user_settings.h" )
message(STATUS "Using existing wolfSSL user_settings.h in "
"${WOLFSSL_PROJECT_DIR}/include/user_settings.h")
else()
message(STATUS "Installing wolfSSL user_settings.h to "
"${WOLFSSL_PROJECT_DIR}/include/user_settings.h")
file(COPY "${WOLFSSL_ROOT}/IDE/Espressif/ESP-IDF/user_settings.h"
DESTINATION "${CMAKE_HOME_DIRECTORY}/wolfssl/include/")
endif()
endif() # user_settings.h
# next check if there's a [root]/include/config.h
if( EXISTS "${WOLFSSL_ROOT}/include/config.h" )
message(FATAL_ERROR "Found stray wolfSSL config.h in ${WOLFSSL_ROOT}/include/config.h (please move it to ${WOLFSSL_PROJECT_DIR}/include/config.h")
else()
# we won't overwrite an existing user settings file, just note that we already have one:
if( EXISTS "${WOLFSSL_PROJECT_DIR}/include/config.h" )
message(STATUS "Using existing wolfSSL config.h ${WOLFSSL_PROJECT_DIR}/include/config.h")
else()
message(STATUS "Installing wolfSSL config.h to ${WOLFSSL_PROJECT_DIR}/include/config.h")
file(COPY "${WOLFSSL_ROOT}/IDE/Espressif/ESP-IDF/dummy_config_h" DESTINATION "${WOLFSSL_PROJECT_DIR}/include/")
file(RENAME "${WOLFSSL_PROJECT_DIR}/include/dummy_config_h" "${WOLFSSL_PROJECT_DIR}/include/config.h")
endif() # Project config.h
endif() # WOLFSSL_ROOT config.h
message(STATUS "************************************************************************************************")
message(STATUS "")
endif()
else()
# we did not find a ./components/wolfssl/include/ directory from this pass of cmake.
if($WOLFSSL_FOUND_IDF)
message(STATUS "")
message(STATUS "WARNING: wolfSSL not found.")
message(STATUS "")
else()
# probably needs to be re-parsed by Espressif
message(STATUS "wolfSSL found IDF. Project Source:${PROJECT_SOURCE_DIR}")
endif() # else we have not found ESP-IDF yet
endif() # else not a local wolfSSL component
endif() #else not an ESP-IDF component
endif() # else not local copy and EDP-IDF wolfSSL
# RTOS_IDF_PATH is typically:
# "/Users/{username}/Desktop/esp-idf/components/freertos/include/freertos"
# depending on the environment, we may need to swap backslashes with forward slashes
string(REPLACE "\\" "/" RTOS_IDF_PATH "$ENV{IDF_PATH}/components/freertos/FreeRTOS-Kernel/include/freertos")
string(REPLACE "\\" "/" WOLFSSL_ROOT ${WOLFSSL_ROOT})
if(IS_DIRECTORY "${RTOS_IDF_PATH}")
message(STATUS "Found current RTOS path: ${RTOS_IDF_PATH}")
else()
# ESP-IDF prior version 4.4x has a different RTOS directory structure
string(REPLACE "\\" "/" RTOS_IDF_PATH "$ENV{IDF_PATH}/components/freertos/include/freertos")
if(IS_DIRECTORY "${RTOS_IDF_PATH}")
message(STATUS "Found legacy RTOS path: ${RTOS_IDF_PATH}")
else()
message(STATUS "Could not find RTOS path")
endif()
endif()
set(COMPONENT_ADD_INCLUDEDIRS
"./include" # this is the location of wolfssl user_settings.h
"\"${WOLFSSL_ROOT}/\""
"\"${WOLFSSL_ROOT}/wolfssl/\""
"\"${WOLFSSL_ROOT}/wolfssl/wolfcrypt/\""
"\"${RTOS_IDF_PATH}/\""
)
if(IS_DIRECTORY ${IDF_PATH}/components/cryptoauthlib)
list(APPEND COMPONENT_ADD_INCLUDEDIRS "../cryptoauthlib/lib")
endif()
list(APPEND COMPONENT_ADD_INCLUDEDIRS "\"${WOLFSSL_ROOT}/wolfssl/\"")
list(APPEND COMPONENT_ADD_INCLUDEDIRS "\"${WOLFSSL_ROOT}/wolfssl/wolfcrypt/\"")
set(COMPONENT_SRCEXCLUDE
"\"${WOLFSSL_ROOT}/src/bio.c\""
"\"${WOLFSSL_ROOT}/src/conf.c\""
"\"${WOLFSSL_ROOT}/src/misc.c\""
"\"${WOLFSSL_ROOT}/src/pk.c\""
"\"${WOLFSSL_ROOT}/src/ssl_asn1.c\"" # included by ssl.c
"\"${WOLFSSL_ROOT}/src/ssl_certman.c\"" # included by ssl.c
"\"${WOLFSSL_ROOT}/src/ssl_bn.c\"" # included by ssl.c
"\"${WOLFSSL_ROOT}/src/ssl_misc.c\"" # included by ssl.c
"\"${WOLFSSL_ROOT}/src/x509.c\""
"\"${WOLFSSL_ROOT}/src/x509_str.c\""
"\"${WOLFSSL_ROOT}/wolfcrypt/src/evp.c\""
"\"${WOLFSSL_ROOT}/wolfcrypt/src/misc.c\""
"\"${EXCLUDE_ASM}\""
)
spaces2list(COMPONENT_REQUIRES)
separate_arguments(COMPONENT_SRCDIRS NATIVE_COMMAND "${COMPONENT_SRCDIRS}")
separate_arguments(COMPONENT_SRCEXCLUDE NATIVE_COMMAND "${COMPONENT_SRCEXCLUDE}")
separate_arguments(COMPONENT_ADD_INCLUDEDIRS NATIVE_COMMAND "${COMPONENT_ADD_INCLUDEDIRS}")
#
# See https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/build-system.html#example-component-requirements
#
message(STATUS "COMPONENT_SRCDIRS = ${COMPONENT_SRCDIRS}")
message(STATUS "COMPONENT_ADD_INCLUDEDIRS = ${COMPONENT_ADD_INCLUDEDIRS}")
message(STATUS "COMPONENT_REQUIRES = ${COMPONENT_REQUIRES}")
message(STATUS "COMPONENT_SRCEXCLUDE = ${COMPONENT_SRCEXCLUDE}")
#
# see https://docs.espressif.com/projects/esp-idf/en/stable/esp32/migration-guides/release-5.x/build-system.html?highlight=space%20path
#
set(EXTRA_COMPONENT_DIRS "${COMPONENT_SRCDIRS}")
idf_component_register(
SRC_DIRS "${COMPONENT_SRCDIRS}"
INCLUDE_DIRS "${COMPONENT_ADD_INCLUDEDIRS}"
REQUIRES "${COMPONENT_REQUIRES}"
EXCLUDE_SRCS "${COMPONENT_SRCEXCLUDE}"
PRIV_REQUIRES esp_timer driver # this will typically only be needed for wolfSSL benchmark
)
# some optional diagnostics
if (1)
get_cmake_property(_variableNames VARIABLES)
list (SORT _variableNames)
message(STATUS "")
message(STATUS "ALL VARIABLES BEGIN")
message(STATUS "")
foreach (_variableName ${_variableNames})
message(STATUS "${_variableName}=${${_variableName}}")
endforeach()
message(STATUS "")
message(STATUS "ALL VARIABLES END")
message(STATUS "")
endif()
# target_sources(wolfssl PRIVATE "\"${WOLFSSL_ROOT}/wolfssl/\"" "\"${WOLFSSL_ROOT}/wolfssl/wolfcrypt\"")
endif() # CMAKE_BUILD_EARLY_EXPANSION
# check to see if there's both a local copy and EDP-IDF copy of the wolfssl components
if( EXISTS "${WOLFSSL_PROJECT_DIR}" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
message(STATUS "")
message(STATUS "")
message(STATUS "********************************************************************")
message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
message(STATUS "********************************************************************")
message(STATUS "")
endif()
# end multiple component check
#
# LIBWOLFSSL_SAVE_INFO(VAR_OUPUT THIS_VAR VAR_RESULT)
#
# Save the THIS_VAR as a string in a macro called VAR_OUPUT
#
# VAR_OUPUT: the name of the macro to define
# THIS_VAR: the OUTPUT_VARIABLE result from a execute_process()
# VAR_RESULT: the RESULT_VARIABLE from a execute_process(); "0" if successful.
#
function ( LIBWOLFSSL_SAVE_INFO VAR_OUPUT THIS_VAR VAR_RESULT )
# is the RESULT_VARIABLE output value 0? If so, IS_VALID_VALUE is true.
string(COMPARE EQUAL "${VAR_RESULT}" "0" IS_VALID_VALUE)
# if we had a successful operation, save the THIS_VAR in VAR_OUPUT
if(${IS_VALID_VALUE})
# strip newline chars in THIS_VAR parameter and save in VAR_VALUE
string(REPLACE "\n" "" VAR_VALUE ${THIS_VAR})
# we'll could percolate the value to the parent for possible later use
# set(${VAR_OUPUT} ${VAR_VALUE} PARENT_SCOPE)
# but we're only using it here in this function
set(${VAR_OUPUT} ${VAR_VALUE})
# we'll print what we found to the console
message(STATUS "Found ${VAR_OUPUT}=${VAR_VALUE}")
# the interesting part is defining the VAR_OUPUT name a value to use in the app
add_definitions(-D${VAR_OUPUT}=\"${VAR_VALUE}\")
else()
# if we get here, check the execute_process command and parameters.
message(STATUS "LIBWOLFSSL_SAVE_INFO encountered a non-zero VAR_RESULT")
set(${VAR_OUPUT} "Unknown")
endif()
endfunction() # LIBWOLFSSL_SAVE_INFO
# create some programmatic #define values that will be used by ShowExtendedSystemInfo().
# see wolfcrypt\src\port\Espressif\esp32_utl.c
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
set (git_cmd "git")
message(STATUS "Adding macro definitions:")
# LIBWOLFSSL_VERSION_GIT_ORIGIN: git config --get remote.origin.url
execute_process(WORKING_DIRECTORY ${WOLFSSL_ROOT} COMMAND ${git_cmd} "config" "--get" "remote.origin.url" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_ORIGIN "${TMP_OUT}" "${TMP_RES}")
# LIBWOLFSSL_VERSION_GIT_BRANCH: git rev-parse --abbrev-ref HEAD
execute_process(WORKING_DIRECTORY ${WOLFSSL_ROOT} COMMAND ${git_cmd} "rev-parse" "--abbrev-ref" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_BRANCH "${TMP_OUT}" "${TMP_RES}")
# LIBWOLFSSL_VERSION_GIT_HASH: git rev-parse HEAD
execute_process(WORKING_DIRECTORY ${WOLFSSL_ROOT} COMMAND ${git_cmd} "rev-parse" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH "${TMP_OUT}" "${TMP_RES}")
# LIBWOLFSSL_VERSION_GIT_SHORT_HASH: git rev-parse --short HEAD
execute_process(WORKING_DIRECTORY ${WOLFSSL_ROOT} COMMAND ${git_cmd} "rev-parse" "--short" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_SHORT_HASH "${TMP_OUT}" "${TMP_RES}")
# LIBWOLFSSL_VERSION_GIT_HASH_DATE git show --no-patch --no-notes --pretty=\'\%cd\'
execute_process(WORKING_DIRECTORY ${WOLFSSL_ROOT} COMMAND ${git_cmd} "show" "--no-patch" "--no-notes" "--pretty=\'\%cd\'" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES )
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH_DATE "${TMP_OUT}" "${TMP_RES}")
message(STATUS "************************************************************************************************")
message(STATUS "wolfssl component config complete!")
message(STATUS "************************************************************************************************")
endif()

View File

@@ -0,0 +1,197 @@
/* user_settings.h
*
* Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
* wolfSSL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfSSL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#include <sdkconfig.h> /* essential to chip set detection */
#undef WOLFSSL_ESPIDF
#undef WOLFSSL_ESP32
#undef WOLFSSL_ESPWROOM32SE
#undef WOLFSSL_ESP32
#undef WOLFSSL_ESP8266
/* The Espressif sdkconfig will have chipset info.
**
** Possible values:
**
** CONFIG_IDF_TARGET_ESP32
** CONFIG_IDF_TARGET_ESP32S2
** CONFIG_IDF_TARGET_ESP32S3
** CONFIG_IDF_TARGET_ESP32C3
** CONFIG_IDF_TARGET_ESP32C6
*/
#define WOLFSSL_ESPIDF
/*
* choose ONE of these Espressif chips to define:
*
* WOLFSSL_ESP32
* WOLFSSL_ESPWROOM32SE
* WOLFSSL_ESP8266
*/
#define WOLFSSL_ESP32
/* optionally turn off SHA512/224 SHA512/256 */
/* #define WOLFSSL_NOSHA512_224 */
/* #define WOLFSSL_NOSHA512_256 */
#define BENCH_EMBEDDED
#define USE_CERT_BUFFERS_2048
/* TLS 1.3 */
#define WOLFSSL_TLS13
#define HAVE_TLS_EXTENSIONS
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_AEAD
#define HAVE_SUPPORTED_CURVES
#define WOLFSSL_BENCHMARK_FIXED_UNITS_KB
/* when you want to use SINGLE THREAD */
#define SINGLE_THREADED
#define NO_FILESYSTEM
#define HAVE_AESGCM
#define WOLFSSL_RIPEMD
/* when you want to use SHA224 */
#define WOLFSSL_SHA224
/* when you want to use SHA384 */
#define WOLFSSL_SHA3
#define WOLFSSL_SHA384
#define WOLFSSL_SHA512
#define HAVE_ECC
#define HAVE_CURVE25519
#define CURVE25519_SMALL
#define HAVE_ED25519
/* when you want to use pkcs7 */
/* #define HAVE_PKCS7 */
#if defined(HAVE_PKCS7)
#define HAVE_AES_KEYWRAP
#define HAVE_X963_KDF
#define WOLFSSL_AES_DIRECT
#endif
/* when you want to use aes counter mode */
/* #define WOLFSSL_AES_DIRECT */
/* #define WOLFSSL_AES_COUNTER */
/* esp32-wroom-32se specific definition */
#if defined(WOLFSSL_ESPWROOM32SE)
#define WOLFSSL_ATECC508A
#define HAVE_PK_CALLBACKS
/* when you want to use a custom slot allocation for ATECC608A */
/* unless your configuration is unusual, you can use default */
/* implementation. */
/* #define CUSTOM_SLOT_ALLOCATION */
#endif
/* rsa primitive specific definition */
#if defined(WOLFSSL_ESP32) || defined(WOLFSSL_ESPWROOM32SE)
/* Define USE_FAST_MATH and SMALL_STACK */
#define ESP32_USE_RSA_PRIMITIVE
/* threshold for performance adjustment for HW primitive use */
/* X bits of G^X mod P greater than */
#define EPS_RSA_EXPT_XBTIS 32
/* X and Y of X * Y mod P greater than */
#define ESP_RSA_MULM_BITS 9
#endif
#define RSA_LOW_MEM
/* debug options */
/* #define DEBUG_WOLFSSL */
/* #define WOLFSSL_ESP32_CRYPT_DEBUG */
/* #define WOLFSSL_ATECC508A_DEBUG */
/* date/time */
/* if it cannot adjust time in the device, */
/* enable macro below */
/* #define NO_ASN_TIME */
/* #define XTIME time */
/* adjust wait-timeout count if you see timeout in RSA HW acceleration */
#define ESP_RSA_TIMEOUT_CNT 0x249F00
#define HASH_SIZE_LIMIT /* for test.c */
#define USE_FAST_MATH
/* optionally use SP_MATH */
/* #define SP_MATH */
#define WOLFSSL_SMALL_STACK
#define HAVE_VERSION_EXTENDED_INFO
#define HAVE_WC_INTROSPECTION
/* allows for all version info, even that suppressed with introspection */
#define ALLOW_BINARY_MISMATCH_INTROSPECTION
/* Default is HW enabled unless turned off.
** Uncomment these lines for SW: */
#if defined(CONFIG_IDF_TARGET_ESP32)
/* #define NO_ESP32_CRYPT */
/* #define NO_WOLFSSL_ESP32_CRYPT_HASH */
/* #define NO_WOLFSSL_ESP32_CRYPT_AES */
/* #define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI */
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
#define NO_ESP32_CRYPT
#define NO_WOLFSSL_ESP32_CRYPT_HASH
#define NO_WOLFSSL_ESP32_CRYPT_AES
#define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
/* #define NO_ESP32_CRYPT */
/* #define NO_WOLFSSL_ESP32_CRYPT_HASH */
/* #define NO_WOLFSSL_ESP32_CRYPT_AES */
/* #define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI */
#elif defined(CONFIG_IDF_TARGET_ESP32C2)
#define NO_ESP32_CRYPT
#define NO_WOLFSSL_ESP32_CRYPT_HASH
#define NO_WOLFSSL_ESP32_CRYPT_AES
#define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
#define NO_ESP32_CRYPT
#define NO_WOLFSSL_ESP32_CRYPT_HASH
#define NO_WOLFSSL_ESP32_CRYPT_AES
#define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI
#elif defined(CONFIG_IDF_TARGET_ESP32C6)
#define NO_ESP32_CRYPT
#define NO_WOLFSSL_ESP32_CRYPT_HASH
#define NO_WOLFSSL_ESP32_CRYPT_AES
#define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI
#elif defined(CONFIG_IDF_TARGET_ESP32H2)
#define NO_ESP32_CRYPT
#define NO_WOLFSSL_ESP32_CRYPT_HASH
#define NO_WOLFSSL_ESP32_CRYPT_AES
#define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI
#else
#define NO_ESP32_CRYPT
#define NO_WOLFSSL_ESP32_CRYPT_HASH
#define NO_WOLFSSL_ESP32_CRYPT_AES
#define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI
#endif

View File

@@ -0,0 +1,77 @@
# This tag is used to include this file in the ESP Component Registry:
# __ESP_COMPONENT_SOURCE__
#
# wolfssl client test
#
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS")
set (git_cmd "git")
if( EXISTS "${CMAKE_HOME_DIRECTORY}/components/wolfssl/" AND EXISTS "$ENV{IDF_PATH}/components/wolfssl/" )
#
# wolfSSL found in both ESP-IDF and local project - needs to be resolved by user
#
message(STATUS "")
message(STATUS "WARNING: Found components/wolfssl in both local project and IDF_PATH")
message(STATUS "")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_MULTI_INSTALL_WARNING")
endif()
## register_component()
idf_component_register(SRCS main.c
INCLUDE_DIRS "." "./include")
#
#
# LIBWOLFSSL_SAVE_INFO(VAR_OUPUT THIS_VAR VAR_RESULT)
#
# Save the THIS_VAR as a string in a macro called VAR_OUPUT
#
# VAR_OUPUT: the name of the macro to define
# THIS_VAR: the OUTPUT_VARIABLE result from a execute_process()
# VAR_RESULT: the RESULT_VARIABLE from a execute_process(); "0" if successful.
#
function ( LIBWOLFSSL_SAVE_INFO VAR_OUPUT THIS_VAR VAR_RESULT )
# is the RESULT_VARIABLE output value 0? If so, IS_VALID_VALUE is true.
string(COMPARE EQUAL "${VAR_RESULT}" "0" IS_VALID_VALUE)
# if we had a successful operation, save the THIS_VAR in VAR_OUPUT
if(${IS_VALID_VALUE})
# strip newline chars in THIS_VAR parameter and save in VAR_VALUE
string(REPLACE "\n" "" VAR_VALUE ${THIS_VAR})
# we'll could percolate the value to the parent for possible later use
# set(${VAR_OUPUT} ${VAR_VALUE} PARENT_SCOPE)
# but we're only using it here in this function
set(${VAR_OUPUT} ${VAR_VALUE})
# we'll print what we found to the console
message(STATUS "Found ${VAR_OUPUT}=${VAR_VALUE}")
# the interesting part is defining the VAR_OUPUT name a value to use in the app
add_definitions(-D${VAR_OUPUT}=\"${VAR_VALUE}\")
else()
# if we get here, check the execute_process command and parameters.
message(STATUS "LIBWOLFSSL_SAVE_INFO encountered a non-zero VAR_RESULT")
set(${VAR_OUPUT} "Unknown")
endif()
endfunction() # LIBWOLFSSL_SAVE_INFO
if(NOT CMAKE_BUILD_EARLY_EXPANSION)
# LIBWOLFSSL_VERSION_GIT_HASH
execute_process(COMMAND ${git_cmd} "rev-parse" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH "${TMP_OUT}" "${TMP_RES}")
# LIBWOLFSSL_VERSION_GIT_SHORT_HASH
execute_process(COMMAND ${git_cmd} "rev-parse" "--short" "HEAD" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES ERROR_QUIET )
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_SHORT_HASH "${TMP_OUT}" "${TMP_RES}")
# LIBWOLFSSL_VERSION_GIT_HASH_DATE
execute_process(COMMAND ${git_cmd} "show" "--no-patch" "--no-notes" "--pretty=\'\%cd\'" OUTPUT_VARIABLE TMP_OUT RESULT_VARIABLE TMP_RES )
LIBWOLFSSL_SAVE_INFO(LIBWOLFSSL_VERSION_GIT_HASH_DATE "${TMP_OUT}" "${TMP_RES}")
endif()
message(STATUS "")

View File

@@ -1,4 +1,4 @@
/* error-ssl.h
/* template main.h
*
* Copyright (C) 2006-2023 wolfSSL Inc.
*
@@ -18,6 +18,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#ifndef _MAIN_H_
#define _MAIN_H_
#include <wolfssl/error-ssl.h>
#endif

View File

@@ -1,4 +1,4 @@
/* ripemd.h
/* main.c
*
* Copyright (C) 2006-2023 wolfSSL Inc.
*
@@ -19,20 +19,25 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
/* Espressif */
#include <esp_log.h>
/* wolfSSL */
#include <wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h>
/* project */
#include "main.h"
#ifndef CTAO_CRYPT_RIPEMD_H
#define CTAO_CRYPT_RIPEME_H
static const char* const TAG = "My Project";
#include <wolfssl/wolfcrypt/ripemd.h>
void app_main(void)
{
ESP_LOGI(TAG, "Hello wolfSSL!");
/* for ripemd reverse compatibility */
#ifdef WOLFSSL_RIPEMD
#define InitRipeMd wc_InitRipeMd
#define RipeMdUpdate wc_RipeMdUpdate
#define RipeMdFinal wc_RipeMdFinal
#ifdef HAVE_VERSION_EXTENDED_INFO
esp_ShowExtendedSystemInfo();
#endif
#endif /* CTAO_CRYPT_RIPEMD_H */
ESP_LOGI(TAG, "\n\nDone!"
"If running from idf.py monitor, press twice: Ctrl+]");
}

View File

@@ -192,6 +192,7 @@ set(COMPONENT_SRCEXCLUDE
"${WOLFSSL_ROOT}/src/pk.c"
"${WOLFSSL_ROOT}/src/ssl_asn1.c" # included by ssl.c
"${WOLFSSL_ROOT}/src/ssl_bn.c" # included by ssl.c
"${WOLFSSL_ROOT}/src/ssl_certman.c" # included by ssl.c
"${WOLFSSL_ROOT}/src/ssl_misc.c" # included by ssl.c
"${WOLFSSL_ROOT}/src/x509.c"
"${WOLFSSL_ROOT}/src/x509_str.c"

View File

@@ -58,10 +58,10 @@ static void set_time()
time_t now;
struct tm timeinfo;
char strftime_buf[64];
/* please update the time if seeing unknown failure when loading cert. */
/* this could cause TLS communication failure due to time expiration */
/* incleasing 31536000 seconds is close to spend 356 days. */
utctime.tv_sec = 1645797600; /* dummy time: Fri 25 Feb 2022 02:00:00 2022 */
/* please update the time if seeing unknown failure when loading cert. */
/* this could cause TLS communication failure due to time expiration */
/* increasing 31536000 seconds is close to spanning 356 days. */
utctime.tv_sec = 1695513105; /* dummy time: Sat Sep 23 17:05:31 PDT 2023 */
utctime.tv_usec = 0;
tz.tz_minuteswest = 0;
tz.tz_dsttime = 0;
@@ -92,7 +92,7 @@ static void tls_smp_client_init(void)
#else
xTaskHandle _handle;
#endif
/* http://esp32.info/docs/esp_idf/html/dd/d3c/group__xTaskCreate.html */
/* see https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/freertos_idf.html */
ret = xTaskCreate(tls_smp_client_task,
TLS_SMP_CLIENT_TASK_NAME,
TLS_SMP_CLIENT_TASK_WORDS,
@@ -121,7 +121,7 @@ static esp_err_t wifi_event_handler(void *ctx, system_event_t *event)
ESP_LOGI(TAG, "got ip:%s",
ip4addr_ntoa(&event->event_info.got_ip.ip_info.ip));
#endif
/* http://esp32.info/docs/esp_idf/html/dd/d08/group__xEventGroupSetBits.html */
/* see https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/freertos_idf.html */
xEventGroupSetBits(wifi_event_group, CONNECTED_BIT);
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
@@ -217,7 +217,7 @@ void app_main(void)
};
/* WiFi station mode */
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA) );
/* Wifi Set the configuration of the ESP32 STA or AP */
/* Wifi Set the configuration of the ESP32 STA or AP */
ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config) );
/* Start Wifi */
ESP_ERROR_CHECK(esp_wifi_start() );

View File

@@ -58,10 +58,10 @@ static void set_time()
time_t now;
struct tm timeinfo;
char strftime_buf[64];
/* please update the time if seeing unknown failure when loading cert. */
/* this could cause TLS communication failure due to time expiration */
/* incleasing 31536000 seconds is close to spend 356 days. */
utctime.tv_sec = 1645797600; /* dummy time: Fri 25 Feb 2022 02:00:00 2022 */
/* please update the time if seeing unknown failure when loading cert. */
/* this could cause TLS communication failure due to time expiration */
/* increasing 31536000 seconds is close to spanning 356 days. */
utctime.tv_sec = 1695513105; /* dummy time: Sat Sep 23 17:05:31 PDT 2023 */
utctime.tv_usec = 0;
tz.tz_minuteswest = 0;
tz.tz_dsttime = 0;
@@ -92,7 +92,7 @@ static void tls_smp_server_init(void)
#else
xTaskHandle _handle;
#endif
/* http://esp32.info/docs/esp_idf/html/dd/d3c/group__xTaskCreate.html */
/* see https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/freertos_idf.html */
ret = xTaskCreate(tls_smp_server_task,
TLS_SMP_SERVER_TASK_NAME,
TLS_SMP_SERVER_TASK_WORDS,
@@ -121,7 +121,7 @@ static esp_err_t wifi_event_handler(void *ctx, system_event_t *event)
ESP_LOGI(TAG, "got ip:%s",
ip4addr_ntoa(&event->event_info.got_ip.ip_info.ip));
#endif
/* http://esp32.info/docs/esp_idf/html/dd/d08/group__xEventGroupSetBits.html */
/* see https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/freertos_idf.html */
xEventGroupSetBits(wifi_event_group, CONNECTED_BIT);
break;
case SYSTEM_EVENT_STA_DISCONNECTED:

View File

@@ -27,11 +27,19 @@ Example build on WSL, assuming `git clone` from `c:\workspace`:
# switch to test example
cd /mnt/c/workspace/wolfssl/IDE/Espressif/ESP-IDF/examples/wolfssl_test
# Pick ESP-IDF install directory, this one for v4.4.2 in VisualGDB
. /mnt/c/SysGCC/esp32/esp-idf/v4.4.2/export.sh
# Pick ESP-IDF install directory, this one for v5.1 in VisualGDB
. /mnt/c/SysGCC/esp32/esp-idf/v5.1/export.sh
# build and flash, in this example to COM20
idf.py build flash -p /dev/ttyS20 -b 921600 monitor
# set target chipset
idf.py set-target esp32s3
# erase
idf.py erase-flash -p /dev/ttyS24 -b 115200
# start with a low upload speed, then increase as found operational
idf.py
# build and flash, in this example to COM24
idf.py build flash -p /dev/ttyS24 -b 115200 monitor
```
## Example Output

View File

@@ -50,7 +50,6 @@ set(COMPONENT_SRCDIRS "${WOLFSSL_ROOT}/src/"
"${WOLFSSL_ROOT}/wolfcrypt/src/"
"${WOLFSSL_ROOT}/wolfcrypt/src/port/Espressif/"
"${WOLFSSL_ROOT}/wolfcrypt/src/port/atmel/"
"${WOLFSSL_ROOT}/wolfcrypt/benchmark/"
"${WOLFSSL_ROOT}/wolfcrypt/test/"
)
@@ -190,9 +189,10 @@ set(COMPONENT_SRCEXCLUDE
"${WOLFSSL_ROOT}/src/conf.c"
"${WOLFSSL_ROOT}/src/misc.c"
"${WOLFSSL_ROOT}/src/pk.c"
"${WOLFSSL_ROOT}/src/ssl_asn1.c" # included by ssl.c
"${WOLFSSL_ROOT}/src/ssl_bn.c" # included by ssl.c
"${WOLFSSL_ROOT}/src/ssl_misc.c" # included by ssl.c
"${WOLFSSL_ROOT}/src/ssl_asn1.c" # included by ssl.c
"${WOLFSSL_ROOT}/src/ssl_bn.c" # included by ssl.c
"${WOLFSSL_ROOT}/src/ssl_certman.c" # included by ssl.c
"${WOLFSSL_ROOT}/src/ssl_misc.c" # included by ssl.c
"${WOLFSSL_ROOT}/src/x509.c"
"${WOLFSSL_ROOT}/src/x509_str.c"
"${WOLFSSL_ROOT}/wolfcrypt/src/evp.c"

View File

@@ -154,6 +154,8 @@ void app_main(void)
/* some interesting settings are target specific (ESP32, -C3, -S3, etc */
#if defined(CONFIG_IDF_TARGET_ESP32C3)
/* not available for C3 at this time */
#elif defined(CONFIG_IDF_TARGET_ESP32C6)
/* not available for C6 at this time */
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
ESP_LOGI(TAG, "CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ = %u MHz",
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ
@@ -170,23 +172,21 @@ void app_main(void)
ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL));
/* check to see if we are using hardware encryption */
#if defined(NO_ESP32WROOM32_CRYPT)
ESP_LOGI(TAG, "NO_ESP32WROOM32_CRYPT defined! HW acceleration DISABLED.");
#if defined(NO_ESP32_CRYPT)
ESP_LOGI(TAG, "NO_ESP32_CRYPT defined! HW acceleration DISABLED.");
#else
#if defined(CONFIG_IDF_TARGET_ESP32C3)
#error "ESP32WROOM32_CRYPT not yet supported on ESP32-C3"
#error "ESP32_CRYPT not yet supported on ESP32-C3"
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
#error "ESP32WROOM32_CRYPT not yet supported on ESP32-S2"
#error "ESP32_CRYPT not yet supported on ESP32-S2"
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
/* #error "ESP32WROOM32_CRYPT not yet supported on ESP32-S3" */
ESP_LOGI(TAG, "ESP32WROOM32_CRYPT is enabled for ESP32-S3.");
/* #error "ESP32_CRYPT not yet supported on ESP32-S3" */
ESP_LOGI(TAG, "ESP32_CRYPT is enabled for ESP32-S3.");
#else
ESP_LOGI(TAG, "ESP32WROOM32_CRYPT is enabled.");
ESP_LOGI(TAG, "ESP32_CRYPT is enabled.");
#endif
#endif
#if defined (WOLFSSL_USE_TIME_HELPER)
set_time();
#endif
@@ -224,9 +224,23 @@ void app_main(void)
/* see wolfssl/wolfcrypt/error-crypt.h */
}
/* after the test, we'll just wait */
#ifdef INCLUDE_uxTaskGetStackHighWaterMark
ESP_LOGI(TAG, "Stack HWM: %d", uxTaskGetStackHighWaterMark(NULL));
ESP_LOGI(TAG, "Stack used: %d", CONFIG_ESP_MAIN_TASK_STACK_SIZE
- (uxTaskGetStackHighWaterMark(NULL) / 4));
#endif
ESP_LOGI(TAG, "\n\nDone!\n\n"
"If running from idf.py monitor, press twice: Ctrl+]");
/* done */
while (1) {
/* nothing */
}
#if defined(SINGLE_THREADED)
while (1);
#else
vTaskDelay(60000);
#endif
} /* done whle */
#endif
}

View File

@@ -170,17 +170,17 @@ void app_main(void)
ESP_LOGI(TAG, "Stack HWM: %d\n", uxTaskGetStackHighWaterMark(NULL));
/* check to see if we are using hardware encryption */
#if defined(NO_ESP32WROOM32_CRYPT)
ESP_LOGI(TAG, "NO_ESP32WROOM32_CRYPT defined! HW acceleration DISABLED.");
#if defined(NO_ESP32_CRYPT)
ESP_LOGI(TAG, "NO_ESP32_CRYPT defined! HW acceleration DISABLED.");
#else
#if defined(CONFIG_IDF_TARGET_ESP32C3)
#error "ESP32WROOM32_CRYPT not yet supported on ESP32-C3"
#error "ESP32_CRYPT not yet supported on ESP32-C3"
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
#error "ESP32WROOM32_CRYPT not yet supported on ESP32-S2"
#error "ESP32_CRYPT not yet supported on ESP32-S2"
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
#error "ESP32WROOM32_CRYPT not yet supported on ESP32-S3"
#error "ESP32_CRYPT not yet supported on ESP32-S3"
#else
ESP_LOGI(TAG, "ESP32WROOM32_CRYPT is enabled.");
ESP_LOGI(TAG, "ESP32_CRYPT is enabled.");
#endif
#endif

View File

@@ -73,7 +73,7 @@ dir %WOLFSSL_ESPIDFDIR%\*.xyzzy 2> nul | findstr \
echo;
echo Equivalalent source directory paths:
:: show the path of the equivalent %VALUE% (search for files that don't exist, supress error, and look for string with "\")
:: show the path of the equivalent %VALUE% (search for files that don't exist, suppress error, and look for string with "\")
dir %BASEDIR%\*.xyzzy 2> nul | findstr \
dir %WOLFSSLLIB_TRG_DIR%\*.xyzzy 2> nul | findstr \
dir %WOLFSSLEXP_TRG_DIR%\*.xyzzy 2> nul | findstr \

View File

@@ -18,23 +18,35 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#undef WOLFSSL_ESPIDF
#undef WOLFSSL_ESPWROOM32
#undef WOLFSSL_ESP32
#undef WOLFSSL_ESPWROOM32SE
#undef WOLFSSL_ESPWROOM32
#undef WOLFSSL_ESP32
#undef WOLFSSL_ESP8266
/* The Espressif sdkconfig will have chipset info.
**
** Possible values:
**
** CONFIG_IDF_TARGET_ESP32
** CONFIG_IDF_TARGET_ESP32S3
** CONFIG_IDF_TARGET_ESP32C3
** CONFIG_IDF_TARGET_ESP32C6
*/
#include <sdkconfig.h>
#define WOLFSSL_ESPIDF
/*
* choose ONE of these Espressif chips to define:
*
* WOLFSSL_ESPWROOM32
* WOLFSSL_ESP32
* WOLFSSL_ESPWROOM32SE
* WOLFSSL_ESP8266
*/
#define WOLFSSL_ESPWROOM32
#define WOLFSSL_ESP32
/* #define DEBUG_WOLFSSL_VERBOSE */
@@ -85,11 +97,11 @@
/* #define CUSTOM_SLOT_ALLOCATION */
#endif
/* rsa primitive specific definition */
#if defined(WOLFSSL_ESPWROOM32) || defined(WOLFSSL_ESPWROOM32SE)
/* RSA primitive specific definition */
#if defined(WOLFSSL_ESP32) || defined(WOLFSSL_ESPWROOM32SE)
/* Define USE_FAST_MATH and SMALL_STACK */
#define ESP32_USE_RSA_PRIMITIVE
/* threshold for performance adjustment for hw primitive use */
/* threshold for performance adjustment for HW primitive use */
/* X bits of G^X mod P greater than */
#define EPS_RSA_EXPT_XBTIS 36
/* X and Y of X * Y mod P greater than */
@@ -98,7 +110,7 @@
/* debug options */
/* #define DEBUG_WOLFSSL */
/* #define WOLFSSL_ESP32WROOM32_CRYPT_DEBUG */
/* #define WOLFSSL_ESP32_CRYPT_DEBUG */
/* #define WOLFSSL_ATECC508A_DEBUG */
/* date/time */
@@ -107,11 +119,50 @@
/* #define NO_ASN_TIME */
/* #define XTIME time */
/* when you want not to use HW acceleration */
/* #define NO_ESP32WROOM32_CRYPT */
/* #define NO_WOLFSSL_ESP32WROOM32_CRYPT_HASH*/
/* #define NO_WOLFSSL_ESP32WROOM32_CRYPT_AES */
/* #define NO_WOLFSSL_ESP32WROOM32_CRYPT_RSA_PRI */
/* adjust wait-timeout count if you see timeout in rsa hw acceleration */
/* adjust wait-timeout count if you see timeout in RSA HW acceleration */
#define ESP_RSA_TIMEOUT_CNT 0x249F00
#if defined(CONFIG_IDF_TARGET_ESP32)
/* when you want not to use HW acceleration on ESP32 (below for S3, etc */
/* #define NO_ESP32_CRYPT */
/* #define NO_WOLFSSL_ESP32_CRYPT_HASH */
/* #define NO_WOLFSSL_ESP32_CRYPT_AES */
/* #define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI */
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
/* ESP32-S2 disabled by default; not implemented */
#define NO_ESP32_CRYPT
#define NO_WOLFSSL_ESP32_CRYPT_HASH
#define NO_WOLFSSL_ESP32_CRYPT_AES
#define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
/* when you want not to use HW acceleration on ESP32-S3 */
/* #define NO_ESP32_CRYPT */
/* #define NO_WOLFSSL_ESP32_CRYPT_HASH */
/* #define NO_WOLFSSL_ESP32_CRYPT_AES */
/* #define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI */
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
/* ESP32-C3 disabled by default, not implemented */
#define NO_ESP32_CRYPT
#define NO_WOLFSSL_ESP32_CRYPT_HASH
#define NO_WOLFSSL_ESP32_CRYPT_AES
#define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI
#elif defined(CONFIG_IDF_TARGET_ESP32C6)
/* ESP32-C6 disabled by default, not implemented */
#define NO_ESP32_CRYPT
#define NO_WOLFSSL_ESP32_CRYPT_HASH
#define NO_WOLFSSL_ESP32_CRYPT_AES
#define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI
#elif defined(CONFIG_IDF_TARGET_ESP32H2)
/* ESP32-H2 disabled by default, not implemented */
#define NO_ESP32_CRYPT
#define NO_WOLFSSL_ESP32_CRYPT_HASH
#define NO_WOLFSSL_ESP32_CRYPT_AES
#define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI
#else
/* anything else unknown will have HW disabled by default */
#define NO_ESP32_CRYPT
#define NO_WOLFSSL_ESP32_CRYPT_HASH
#define NO_WOLFSSL_ESP32_CRYPT_AES
#define NO_WOLFSSL_ESP32_CRYPT_RSA_PRI
#endif

View File

@@ -17,6 +17,18 @@ EXTRA_DIST+= IDE/Espressif/ESP-IDF/setup_win.bat
EXTRA_DIST+= IDE/Espressif/ESP-IDF/UPDATE.md
EXTRA_DIST+= IDE/Espressif/ESP-IDF/user_settings.h
# Template
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/template/CMakeLists.txt
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/template/README.md
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/template/VisualGDB
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/template/components/wolfssl/CMakeLists.txt
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/template/components/wolfssl/include/user_settings.h
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/template/main/CMakeLists.txt
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/template/main/include
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/template/main/main.c
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/template/main/include/main.h
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/template/VisualGDB/wolfssl_template_IDF_v5.1_ESP32.vgdbproj
# Benchmark
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/CMakeLists.txt
EXTRA_DIST+= IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/main

View File

@@ -70,7 +70,6 @@ extern "C" {
#define WOLFSSL_HAVE_SP_RSA
#define WOLFSSL_HAVE_SP_DH
#define WOLFSSL_HAVE_SP_ECC
//#define WOLFSSL_SP_CACHE_RESISTANT
#define WOLFSSL_SP_MATH /* only SP math - eliminates fast math code */
/* SP Assembly Speedups */
@@ -85,11 +84,24 @@ extern "C" {
/* FIPS - Requires eval or license from wolfSSL */
/* ------------------------------------------------------------------------- */
#undef HAVE_FIPS
#undef HAVE_FIPS_VERSION
#undef HAVE_FIPS_VERSION_MINOR
#if 0
#define HAVE_FIPS
#undef HAVE_FIPS_VERSION
#define HAVE_FIPS_VERSION 2
/* Choose a FIPS version */
#if 0
/* FIPS 140-2 */
#define HAVE_FIPS_VERSION 2
#elif 0
/* FIPS 140-3 */
#define HAVE_FIPS_VERSION 5
#define HAVE_FIPS_VERSION_MINOR 2
#elif 0
/* FIPS Ready */
#define HAVE_FIPS_VERSION 5
#define HAVE_FIPS_VERSION_MINOR 3
#endif
#ifdef SINGLE_THREADED
#undef NO_THREAD_LS
@@ -182,6 +194,9 @@ extern "C" {
#undef WOLFSSL_VALIDATE_ECC_IMPORT
#define WOLFSSL_VALIDATE_ECC_IMPORT /* Validate import */
#undef WOLFSSL_ECDSA_SET_K
#define WOLFSSL_ECDSA_SET_K
#endif
/* Compressed Key Support */
@@ -198,7 +213,7 @@ extern "C" {
#else
#undef ALT_ECC_SIZE
#define ALT_ECC_SIZE
/* wolfSSL will compute the FP_MAX_BITS_ECC, but it can be overriden */
/* wolfSSL will compute the FP_MAX_BITS_ECC, but it can be overridden */
//#undef FP_MAX_BITS_ECC
//#define FP_MAX_BITS_ECC (256 * 2)
#endif

View File

@@ -1,11 +1,11 @@
# Set to @ if you want to suppress command echo
CMD_ECHO =
CMD_ECHO =
# Important directories
BUILD_DIR = ./Build
# Toolchain location and prefix
#TOOLCHAIN =
#TOOLCHAIN =
TOOLCHAIN ?= /opt/gcc-arm-none-eabi/bin/arm-none-eabi-
# Tools selection
@@ -101,6 +101,7 @@ SRC_C += ../../wolfcrypt/src/des3.c
SRC_C += ../../wolfcrypt/src/dh.c
SRC_C += ../../wolfcrypt/src/ecc.c
SRC_C += ../../wolfcrypt/src/hmac.c
SRC_C += ../../wolfcrypt/src/kdf.c
SRC_C += ../../wolfcrypt/src/random.c
SRC_C += ../../wolfcrypt/src/rsa.c
SRC_C += ../../wolfcrypt/src/sha.c
@@ -138,7 +139,6 @@ SRC_C += ../../wolfcrypt/src/ge_448.c
SRC_C += ../../wolfcrypt/src/ge_low_mem.c
SRC_C += ../../wolfcrypt/src/ge_operations.c
SRC_C += ../../wolfcrypt/src/hash.c
SRC_C += ../../wolfcrypt/src/kdf.c
SRC_C += ../../wolfcrypt/src/integer.c
SRC_C += ../../wolfcrypt/src/logging.c
SRC_C += ../../wolfcrypt/src/md5.c

View File

@@ -133,7 +133,7 @@ static int hash_firmware_verify_dsp(int numThreads, int domain)
ret = wolfSSL_open(sp_URI_value, &(handle[i]));
if (ret != 0) {
printf("unable to open CDSP? retVal = %d\n", ret);
return -1;
return -1;
}
wc_ecc_set_handle(&(eccKey[i]), handle[i]);
}

9
IDE/IAR-EWARM/.gitignore vendored Normal file
View File

@@ -0,0 +1,9 @@
# Unused project setting files
*.ewt
# Build products
ewarm/
Debug/
Release/
# Auto generated files
settings/
*.dep

View File

@@ -1,6 +0,0 @@
*.bat
*.xcl
*.crun
*.dbgdt
*.dni

View File

@@ -87,7 +87,7 @@
#undef ALT_ECC_SIZE
#define ALT_ECC_SIZE
/* wolfSSL will compute the FP_MAX_BITS_ECC, but it can be overriden */
/* wolfSSL will compute the FP_MAX_BITS_ECC, but it can be overridden */
/* MAX ECC BITS = ROUND8(MAX ECC) * 2 */
//#undef FP_MAX_BITS_ECC
//#define FP_MAX_BITS_ECC (528 * 2)

View File

@@ -78,10 +78,10 @@ Bob init
Successfully generated a common secret
Alices' Secret: 85f3c7f599620c768e6dbb77dc2f8f764254cc1821aeb0a30503632dbc9bdb54
Bobs' Secret: 85f3c7f599620c768e6dbb77dc2f8f764254cc1821aeb0a30503632dbc9bdb54
ChaCha20/Poly1305 Encryption Start, 1000 itterations, 1024 bytes
ChaCha20/Poly1305 Encryption Start, 1000 iterations, 1024 bytes
............................................
End 44 seconds
ChaCha20/Poly1305 Decryption Start, 1000 itterations
ChaCha20/Poly1305 Decryption Start, 1000 iterations
............................................
End 44 seconds
end

View File

@@ -36,7 +36,7 @@
#include <msp430f5659.h>
/* Without __root on some of the functions, IAR's "Discard Unused Publics"
will optimze out some of the functions
will optimize out some of the functions
*/
#if defined(__IAR_SYSTEMS_ICC__)
#define IAR_KEEP __root
@@ -304,7 +304,7 @@ only_rng:
wc_FreeRng(&rng);
printf(
"ChaCha20/Poly1305 Encryption Start, 1000 itterations, %d bytes\r\n",
"ChaCha20/Poly1305 Encryption Start, 1000 iterations, %d bytes\r\n",
(int)strlen((const char*)plaintext));
start = seconds;
for (int i=0; i <= 1000; i++) {
@@ -319,7 +319,7 @@ only_rng:
printf("\r\nEnd %d seconds\r\n", seconds - start);
start = seconds;
printf("ChaCha20/Poly1305 Decryption Start, 1000 itterations\r\n");
printf("ChaCha20/Poly1305 Decryption Start, 1000 iterations\r\n");
start = seconds;
for (int i=0; i <= 1000; i++) {
ret = wc_ChaCha20Poly1305_Decrypt(key, iv, aad, sizeof(aad),

View File

@@ -84,7 +84,7 @@ clean: rmo
rm -f $(OUTPUT)/$(NAME).a
help:
@echo "all : exectue compile, link, rmo"
@echo "all : execute compile, link, rmo"
@echo "compile : create .o files"
@echo "link : create .a library from .o files"
@echo "rmo : remove all .o files"

View File

@@ -1,6 +1,6 @@
--- fsl_caam-orig.c 2022-10-21 15:50:35.709951000 -0700
+++ fsl_caam.c 2022-12-28 06:30:34.788316189 -0800
@@ -7872,3 +7872,462 @@
--- fsl_caam.c 2023-01-12 23:39:04.000000000 -0800
+++ fsl_caam-expanded.c 2023-06-23 00:18:14.395128903 -0700
@@ -7872,3 +7872,476 @@
}
return status;
}
@@ -117,7 +117,7 @@
+ /* initialize descriptor from template */
+ (void)caam_memcpy(descriptor, templateKeyPairECC, sizeof(templateKeyPairECC));
+
+ /* add descriptor lenght in bytes to HEADER descriptor command */
+ /* add descriptor length in bytes to HEADER descriptor command */
+ DESC_HEADER_ADD_DESCLEN(descriptor[0], descriptorSize);
+
+ DESC_SET_ADDR(descriptor[1], (CAAM_ECDSA_KEYGEN_PD | keyType));
@@ -128,7 +128,9 @@
+ descriptor[4] |= enc;
+
+ /* schedule the job */
+ status = caam_in_job_ring_add(base, handle->jobRing, &descriptor[0]);
+ do {
+ status = caam_in_job_ring_add(base, handle->jobRing, &descriptor[0]);
+ } while (status == kStatus_CAAM_Again);
+ if (status == kStatus_Success) {
+ status = CAAM_Wait(base, handle, descriptor, kCAAM_Blocking);
+ }
@@ -198,7 +200,7 @@
+ /* initialize descriptor from template */
+ (void)caam_memcpy(descriptor, templateSignECC, sizeof(templateSignECC));
+
+ /* add descriptor lenght in bytes to HEADER descriptor command */
+ /* add descriptor length in bytes to HEADER descriptor command */
+ DESC_HEADER_ADD_DESCLEN(descriptor[0], descriptorSize);
+
+ DESC_SET_ADDR(descriptor[1], (CAAM_ECDSA_PD | keyType));
@@ -212,7 +214,9 @@
+ descriptor[7] |= enc;
+
+ /* schedule the job */
+ status = caam_in_job_ring_add(base, handle->jobRing, &descriptor[0]);
+ do {
+ status = caam_in_job_ring_add(base, handle->jobRing, &descriptor[0]);
+ } while (status == kStatus_CAAM_Again);
+ if (status == kStatus_Success) {
+ status = CAAM_Wait(base, handle, descriptor, kCAAM_Blocking);
+ }
@@ -271,7 +275,7 @@
+ /* initialize descriptor from template */
+ (void)caam_memcpy(descriptor, templateVerifyECC, sizeof(templateVerifyECC));
+
+ /* add descriptor lenght in bytes to HEADER descriptor command */
+ /* add descriptor length in bytes to HEADER descriptor command */
+ DESC_HEADER_ADD_DESCLEN(descriptor[0], descriptorSize);
+
+ DESC_SET_ADDR(descriptor[1], (CAAM_ECDSA_PD | keyType));
@@ -283,7 +287,9 @@
+ DESC_ADD_LEN(descriptor[7], sizeHash);
+
+ /* schedule the job */
+ status = caam_in_job_ring_add(base, handle->jobRing, &descriptor[0]);
+ do {
+ status = caam_in_job_ring_add(base, handle->jobRing, &descriptor[0]);
+ } while (status == kStatus_CAAM_Again);
+ if (status == kStatus_Success) {
+ status = CAAM_Wait(base, handle, descriptor, kCAAM_Blocking);
+ }
@@ -338,7 +344,7 @@
+ /* initialize descriptor from template */
+ (void)caam_memcpy(descriptor, templateAgreeECC, sizeof(templateAgreeECC));
+
+ /* add descriptor lenght in bytes to HEADER descriptor command */
+ /* add descriptor length in bytes to HEADER descriptor command */
+ DESC_HEADER_ADD_DESCLEN(descriptor[0], descriptorSize);
+
+ DESC_SET_ADDR(descriptor[1], (CAAM_ECDSA_KEYGEN_PD | keyType));
@@ -350,7 +356,9 @@
+ descriptor[5] |= enc;
+
+ /* schedule the job */
+ status = caam_in_job_ring_add(base, handle->jobRing, &descriptor[0]);
+ do {
+ status = caam_in_job_ring_add(base, handle->jobRing, &descriptor[0]);
+ } while (status == kStatus_CAAM_Again);
+ if (status == kStatus_Success) {
+ status = CAAM_Wait(base, handle, descriptor, kCAAM_Blocking);
+ }
@@ -367,7 +375,7 @@
+/* Handle BLOB create and open */
+static const uint32_t templateBlob[] = {
+ /* 00 */ 0xB0800000u, /* HEADER */
+ /* 01 */ 0x14400000u, /* class */
+ /* 01 */ 0x04000000u, /* class */
+ /* 02 */ 0x00000000u, /* key mod */
+ /* 03 */ 0xF0000000u, /* SEQ input size */
+ /* 04 */ 0x00000000u, /* input */
@@ -425,6 +433,10 @@
+ return status;
+ }
+
+ if (keyModSz != CAAM_SM_KEYMODSZ && keyModSz != CAAM_KEYMODSZ) {
+ return status;
+ }
+
+ if (dir == CAAM_DECAP_BLOB &&
+ (sizeOut > sizeIn - CAAM_PADDING_SIZE_BLOB)) {
+ return status;
@@ -433,9 +445,9 @@
+ /* initialize descriptor from template */
+ (void)caam_memcpy(descriptor, templateBlob, sizeof(templateBlob));
+
+ /* add descriptor lenght in bytes to HEADER descriptor command */
+ /* add descriptor length in bytes to HEADER descriptor command */
+ DESC_HEADER_ADD_DESCLEN(descriptor[0], descriptorSize);
+ descriptor[1] |= color; /* add color of blob */
+ descriptor[1] |= keyModSz;
+ DESC_SET_ADDR(descriptor[2], keyMod);
+ DESC_ADD_LEN(descriptor[3], sizeIn);
+ DESC_SET_ADDR(descriptor[4], in);
@@ -450,7 +462,9 @@
+ }
+
+ /* schedule the job */
+ status = caam_in_job_ring_add(base, handle->jobRing, &descriptor[0]);
+ do {
+ status = caam_in_job_ring_add(base, handle->jobRing, &descriptor[0]);
+ } while (status == kStatus_CAAM_Again);
+ if (status == kStatus_Success) {
+ status = CAAM_Wait(base, handle, descriptor, kCAAM_Blocking);
+ }

View File

@@ -1,6 +1,6 @@
--- fsl_caam-orig.h 2022-10-21 15:50:35.745560000 -0700
+++ fsl_caam.h 2022-12-28 08:10:29.413415216 -0800
@@ -3038,6 +3038,162 @@
--- fsl_caam.h 2023-06-23 00:08:46.491699533 -0700
+++ fsl_caam-expanded.h 2023-06-23 00:10:22.702730462 -0700
@@ -3038,6 +3038,164 @@
*@}
*/ /* end of caam_driver_pkha */
@@ -127,10 +127,12 @@
+
+/* define for application to check for ECC CAAM additions */
+#define CAAM_BLOB_EXPANSION
+#define CAAM_RED_BLOB 0x00000C08
+#define CAAM_BLACK_BLOB 0x00000010
+#define CAAM_RED_BLOB 1
+#define CAAM_BLACK_BLOB 2
+#define CAAM_ENCAP_BLOB 0x07000000
+#define CAAM_DECAP_BLOB 0x06000000
+#define CAAM_SM_KEYMODSZ 8
+#define CAAM_KEYMODSZ 16
+#define CAAM_PADDING_SIZE_BLOB 48
+
+/*!

View File

@@ -78,7 +78,7 @@ static void doBenchmark(void* params)
wolfCrypt_Cleanup();
}
else {
PRINTF("Failied to initialize wolfCrypt\r\n");
PRINTF("Failed to initialize wolfCrypt\r\n");
}
}

View File

@@ -136,7 +136,7 @@ int main(void)
wolfCrypt_Cleanup();
}
else {
PRINTF("Failied to initialize wolfCrypt\r\n");
PRINTF("Failed to initialize wolfCrypt\r\n");
}
#if defined(FREESCALE_KSDK_2_0_TRNG) && defined(FREESCALE_RTC)

View File

@@ -34,9 +34,9 @@
static void init_RTC()
{
/* Enable GPIO register interface clock */
LPC_CCU1->CLK_M4_GPIO_CFG |= 1;
while (!(LPC_CCU1->CLK_M4_GPIO_STAT & 1)) ;
/* Enable GPIO register interface clock */
LPC_CCU1->CLK_M4_GPIO_CFG |= 1;
while (!(LPC_CCU1->CLK_M4_GPIO_STAT & 1)) ;
/* RTC Block section ------------------------------------------------------ */
/* Init RTC module */
@@ -82,7 +82,7 @@ double current_time()
void init_time(void) {
init_RTC() ;
init_RTC() ;
init_TIM() ;
}
@@ -93,7 +93,7 @@ struct tm *Cyassl_MDK_gmtime(const time_t *c)
static struct tm date ;
RTC_TIME_Type RTCFullTime;
RTC_GetFullTime (LPC_RTC, &RTCFullTime);
RTC_GetFullTime (LPC_RTC, &RTCFullTime);
date.tm_year = RTCFullTime.YEAR + 100 ;
date.tm_mon = RTCFullTime.MONTH - 1 ;
@@ -104,7 +104,7 @@ struct tm *Cyassl_MDK_gmtime(const time_t *c)
#if defined(DEBUG_CYASSL)
{
extern void CYASSL_MSG(char *msg) ;
extern void CYASSL_MSG(char *msg) ;
char msg[100] ;
sprintf(msg, "Debug::Cyassl_KEIL_gmtime(DATE=/%4d/%02d/%02d TIME=%02d:%02d:%02d)\n",
RTCFullTime.YEAR+2000, RTCFullTime.MONTH, RTCFullTime.DOM,
@@ -127,14 +127,14 @@ typedef struct func_args {
void time_main(void *args)
{
char * datetime ;
int year ;
int year ;
RTC_TIME_Type RTCFullTime;
if( args == NULL || ((func_args *)args)->argc == 1) {
RTC_GetFullTime (LPC_RTC, &RTCFullTime);
RTC_GetFullTime (LPC_RTC, &RTCFullTime);
printf("Date: %d/%d/%d, Time: %02d:%02d:%02d\n",
RTCFullTime.MONTH, RTCFullTime.DOM, RTCFullTime.YEAR+2000,
RTCFullTime.HOUR, RTCFullTime.MIN, RTCFullTime.SEC) ;
RTCFullTime.MONTH, RTCFullTime.DOM, RTCFullTime.YEAR+2000,
RTCFullTime.HOUR, RTCFullTime.MIN, RTCFullTime.SEC) ;
} else if(((func_args *)args)->argc == 3 &&
((func_args *)args)->argv[1][0] == '-' &&
((func_args *)args)->argv[1][1] == 'd' ) {
@@ -143,13 +143,13 @@ void time_main(void *args)
sscanf(datetime, "%d/%d/%d",
(int *)&RTCFullTime.MONTH, (int *)&RTCFullTime.DOM, &year) ;
RTCFullTime.YEAR = year - 2000 ;
RTC_SetTime (LPC_RTC, RTC_TIMETYPE_MONTH, RTCFullTime.MONTH);
RTC_SetTime (LPC_RTC, RTC_TIMETYPE_MONTH, RTCFullTime.MONTH);
RTC_SetTime (LPC_RTC, RTC_TIMETYPE_YEAR, RTCFullTime.YEAR);
RTC_SetTime (LPC_RTC, RTC_TIMETYPE_DAYOFMONTH, RTCFullTime.DOM);
} else if(((func_args *)args)->argc == 3 &&
((func_args *)args)->argv[1][0] == '-' &&
((func_args *)args)->argv[1][1] == 't' ) {
RTC_GetFullTime (LPC_RTC, &RTCFullTime);
RTC_GetFullTime (LPC_RTC, &RTCFullTime);
datetime = ((func_args *)args)->argv[2];
sscanf(datetime, "%d:%d:%d",
(int *)&RTCFullTime.HOUR,
@@ -161,7 +161,3 @@ void time_main(void *args)
RTC_SetTime (LPC_RTC, RTC_TIMETYPE_HOUR, RTCFullTime.HOUR);
} else printf("Invalid argument\n") ;
}

View File

@@ -165,7 +165,7 @@
#endif
// </e>
// <e>DSA
#define MDK_CONF_DSA 1
#define MDK_CONF_DSA 0
#if MDK_CONF_DSA == 0
#define NO_DSA
#endif
@@ -204,6 +204,59 @@
// </e>
// </h>
// <h>Math / Memory
// <o> Math Library
// <0=>SP Math All (sp_int.c)
// <1=>Fast Math (tfm.c)
// <2=>Heap Math (integer.c)
// <3=>SP Math (RSA/DH 2048/3072/4096 and ECC 256/384/521 only)
// <4=>SP Math +ASM (faster)
#define MDK_CONF_MATH 0
#if MDK_CONF_MATH == 0
#define WOLFSSL_SP_MATH_ALL /* use SP math for all key sizes and curves */
#elif MDK_CONF_MATH == 1
#define USE_FAST_MATH
#elif MDK_CONF_MATH == 2
#define USE_INTEGER_HEAP_MATH
#elif MDK_CONF_MATH == 3 || MDK_CONF_MATH == 4
#define WOLFSSL_SP_MATH /* only SP math - disables integer.c/tfm.c */
#define WOLFSSL_HAVE_SP_RSA
#define WOLFSSL_HAVE_SP_DH
#define WOLFSSL_HAVE_SP_ECC
//#define WOLFSSL_SP_NO_2048
//#define WOLFSSL_SP_NO_3072
#define WOLFSSL_SP_4096
//#define WOLFSSL_SP_NO_256
//#define WOLFSSL_SP_384
//#define WOLFSSL_SP_521
#define WOLFSSL_SP_SMALL /* use smaller version of code */
//#define WOLFSSL_SP_NO_MALLOC /* do not use heap */
//#define WOLFSSL_SP_DIV_32 /* do not use 64-bit divides */
#if MDK_CONF_MATH == 4
/* SP Assembly Speedups - specific to chip type */
#define WOLFSSL_SP_ASM
//#define WOLFSSL_SP_ARM32_ASM
//#define WOLFSSL_SP_ARM64_ASM
//#define WOLFSSL_SP_ARM_THUMB_ASM
//#define WOLFSSL_SP_ARM_CORTEX_M_ASM
#endif
#endif
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
//#define WOLFSSL_SP_NO_MALLOC
#else
#define WOLFSSL_SMALL_STACK
#endif
// </e>
// </h>
// <h>Others
// <e>Inline
@@ -253,22 +306,9 @@
#define NO_ERROR_STRINGS
#endif
// </e>
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
#endif
// </e>
// <e>Use Fast Math
#define MDK_CONF_FASTMATH 0
#if MDK_CONF_FASTMATH == 1
#define USE_FAST_MATH
#endif
// </e>
// </h>
//</h>
// <<< end of configuration section >>>

View File

@@ -202,7 +202,7 @@
#endif
// </e>
// <e>DSA
#define MDK_CONF_DSA 1
#define MDK_CONF_DSA 0
#if MDK_CONF_DSA == 0
#define NO_DSA
#endif
@@ -241,6 +241,59 @@
// </e>
// </h>
// <h>Math / Memory
// <o> Math Library
// <0=>SP Math All (sp_int.c)
// <1=>Fast Math (tfm.c)
// <2=>Heap Math (integer.c)
// <3=>SP Math (RSA/DH 2048/3072/4096 and ECC 256/384/521 only)
// <4=>SP Math +ASM (faster)
#define MDK_CONF_MATH 0
#if MDK_CONF_MATH == 0
#define WOLFSSL_SP_MATH_ALL /* use SP math for all key sizes and curves */
#elif MDK_CONF_MATH == 1
#define USE_FAST_MATH
#elif MDK_CONF_MATH == 2
#define USE_INTEGER_HEAP_MATH
#elif MDK_CONF_MATH == 3 || MDK_CONF_MATH == 4
#define WOLFSSL_SP_MATH /* only SP math - disables integer.c/tfm.c */
#define WOLFSSL_HAVE_SP_RSA
#define WOLFSSL_HAVE_SP_DH
#define WOLFSSL_HAVE_SP_ECC
//#define WOLFSSL_SP_NO_2048
//#define WOLFSSL_SP_NO_3072
#define WOLFSSL_SP_4096
//#define WOLFSSL_SP_NO_256
//#define WOLFSSL_SP_384
//#define WOLFSSL_SP_521
#define WOLFSSL_SP_SMALL /* use smaller version of code */
//#define WOLFSSL_SP_NO_MALLOC /* do not use heap */
//#define WOLFSSL_SP_DIV_32 /* do not use 64-bit divides */
#if MDK_CONF_MATH == 4
/* SP Assembly Speedups - specific to chip type */
#define WOLFSSL_SP_ASM
//#define WOLFSSL_SP_ARM32_ASM
//#define WOLFSSL_SP_ARM64_ASM
//#define WOLFSSL_SP_ARM_THUMB_ASM
//#define WOLFSSL_SP_ARM_CORTEX_M_ASM
#endif
#endif
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
//#define WOLFSSL_SP_NO_MALLOC
#else
#define WOLFSSL_SMALL_STACK
#endif
// </e>
// </h>
// <h>Others
// <e>Inline
@@ -291,20 +344,6 @@
#endif
// </e>
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
#endif
// </e>
// <e>Use Fast Math
#define MDK_CONF_FASTMATH 0
#if MDK_CONF_FASTMATH == 1
#define USE_FAST_MATH
#endif
// </e>
// </h>
//</h>

View File

@@ -224,7 +224,7 @@
#endif
// </e>
// <e>DSA
#define MDK_CONF_DSA 1
#define MDK_CONF_DSA 0
#if MDK_CONF_DSA == 0
#define NO_DSA
#endif
@@ -263,6 +263,59 @@
// </e>
// </h>
// <h>Math / Memory
// <o> Math Library
// <0=>SP Math All (sp_int.c)
// <1=>Fast Math (tfm.c)
// <2=>Heap Math (integer.c)
// <3=>SP Math (RSA/DH 2048/3072/4096 and ECC 256/384/521 only)
// <4=>SP Math +ASM (faster)
#define MDK_CONF_MATH 0
#if MDK_CONF_MATH == 0
#define WOLFSSL_SP_MATH_ALL /* use SP math for all key sizes and curves */
#elif MDK_CONF_MATH == 1
#define USE_FAST_MATH
#elif MDK_CONF_MATH == 2
#define USE_INTEGER_HEAP_MATH
#elif MDK_CONF_MATH == 3 || MDK_CONF_MATH == 4
#define WOLFSSL_SP_MATH /* only SP math - disables integer.c/tfm.c */
#define WOLFSSL_HAVE_SP_RSA
#define WOLFSSL_HAVE_SP_DH
#define WOLFSSL_HAVE_SP_ECC
//#define WOLFSSL_SP_NO_2048
//#define WOLFSSL_SP_NO_3072
#define WOLFSSL_SP_4096
//#define WOLFSSL_SP_NO_256
//#define WOLFSSL_SP_384
//#define WOLFSSL_SP_521
#define WOLFSSL_SP_SMALL /* use smaller version of code */
//#define WOLFSSL_SP_NO_MALLOC /* do not use heap */
//#define WOLFSSL_SP_DIV_32 /* do not use 64-bit divides */
#if MDK_CONF_MATH == 4
/* SP Assembly Speedups - specific to chip type */
#define WOLFSSL_SP_ASM
//#define WOLFSSL_SP_ARM32_ASM
//#define WOLFSSL_SP_ARM64_ASM
//#define WOLFSSL_SP_ARM_THUMB_ASM
//#define WOLFSSL_SP_ARM_CORTEX_M_ASM
#endif
#endif
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
//#define WOLFSSL_SP_NO_MALLOC
#else
#define WOLFSSL_SMALL_STACK
#endif
// </e>
// </h>
// <h>Others
// <e>Inline
@@ -312,22 +365,6 @@
#define NO_ERROR_STRINGS
#endif
// </e>
// <e>Small Stack
#define MDK_CONF_SMALL_STACK 1
#if MDK_CONF_SMALL_STACK == 0
#define NO_WOLFSSL_SMALL_STACK
#endif
// </e>
// <e>Use Fast Math
#define MDK_CONF_FASTMATH 1
#if MDK_CONF_FASTMATH == 1
#define USE_FAST_MATH
#define TFM_TIMING_RESISTANT
#endif
// </e>
// </h>
//</h>

View File

@@ -99,7 +99,7 @@ extern void benchmark_test(void) ;
extern void SER_Init(void) ;
/*-----------------------------------------------------------------------------
* mian entry
* main entry
*----------------------------------------------------------------------------*/
/*** This is the parent task entry ***/

View File

@@ -301,7 +301,7 @@ static struct {
"", NULL
} ;
enum jobtype { FORGROUND, BACKGROUND } ;
enum jobtype { FOREGROUND, BACKGROUND } ;
#define IF_DELIMITER(ch) ((ch) == ' ' || (ch) == '\n')
@@ -326,7 +326,7 @@ static int getline(char * line, int sz, func_args *args, int*bf_flg)
(*bf_flg) = BACKGROUND ;
line[strlen(line)-2] = '\n' ;
} else {
(*bf_flg) = FORGROUND ;
(*bf_flg) = FOREGROUND ;
}
args->argc = 0 ;
for(i=0; i<sz; i++) {
@@ -542,7 +542,7 @@ void shell_main(void) {
for(i=0; commandTable[i].func != NULL; i++) {
if(strcmp(commandTable[i].command, args.argv[0]) == 0) {
args.argv[0] = (char *) commandTable[i].func ;
if(bf_flg == FORGROUND) {
if(bf_flg == FOREGROUND) {
#ifdef HAVE_KEIL_RTX
wc_UnLockMutex((wolfSSL_Mutex *)&command_mutex) ;
os_tsk_create_user_ex( (void(*)(void *))&command_invoke, 7,

View File

@@ -32,7 +32,7 @@
*----------------------------------------------------------------------------*/
#include "stm32f2xx.h"
#define assert_param(a)
#define assert_param(a) /* null expansion */
#define RTC_RSF_MASK ((uint32_t)0xFFFFFF5F)
#define SYNCHRO_TIMEOUT ((uint32_t) 0x00008000)

View File

@@ -21,21 +21,20 @@
#define NO_MAIN_DRIVER
#define BENCH_EMBEDDED
#define NO_DEV_RANDOM
#define WOLFSSL_USER_CURRTIME
#define SIZEOF_LONG_LONG 8
#define NO_WRITEV
#define NO_DEV_RANDOM
#define WOLFSSL_IGNORE_FILE_WARN
#define TFM_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT
#define WC_RSA_BLINDING
#define WOLFSSL_USER_CURRTIME /* for benchmark */
#define WOLFSSL_CURRTIME_OSTICK /* use OS tich for current_time */
#define WOLFSSL_CURRTIME_OSTICK /* use OS tick for current_time */
#define WOLFSSL_GMTIME
#define NO_MULTIBYTE_PRINT
// <<< Use Configuration Wizard in Context Menu >>>
@@ -99,7 +98,7 @@
// <e>File System
#define MDK_CONF_FILESYSTEM 1
#define MDK_CONF_FILESYSTEM 0
#if MDK_CONF_FILESYSTEM == 0
#define NO_FILESYSTEM
#else
@@ -109,7 +108,9 @@
// </e>
// <o> Network<0=>None <1=>RLnet <2=>User I/O
#ifndef MDK_CONF_NETWORK
#define MDK_CONF_NETWORK 1
#endif
#if MDK_CONF_NETWORK == 0
#elif MDK_CONF_NETWORK == 1
#define WOLFSSL_KEIL_TCP_NET
@@ -150,7 +151,7 @@
// <h> wolfCrypt Configuration
// <h>Hash/Crypt Algrithm
// <h>Hash/Crypt Algorithm
// <e>MD2
#define MDK_CONF_MD2 0
@@ -201,7 +202,7 @@
#endif
// </e>
// <e>RIPEMD
#define MDK_CONF_RIPEMD 1
#define MDK_CONF_RIPEMD 0
#if MDK_CONF_RIPEMD == 1
#define WOLFSSL_RIPEMD
#endif
@@ -275,7 +276,7 @@
// </e>
// <e>CAMELLIA
#define MDK_CONF_CAMELLIA 1
#define MDK_CONF_CAMELLIA 0
#if MDK_CONF_CAMELLIA == 1
#define HAVE_CAMELLIA
#endif
@@ -287,8 +288,19 @@
#define NO_DH
#endif
// </e>
// <e>RSA
#define MDK_CONF_RSA 1
#if MDK_CONF_RSA == 1
/* #define RSA_LOW_MEM */
#else
#define NO_RSA
#endif
// </e>
// <e>DSA
#define MDK_CONF_DSA 1
#define MDK_CONF_DSA 0
#if MDK_CONF_DSA == 0
#define NO_DSA
#endif
@@ -297,7 +309,7 @@
// <e>SRP
#define MDK_CONF_SRP 1
#if MDK_CONF_SRP == 1
#define HAVE_SRP
#define WOLFCRYPT_HAVE_SRP
#endif
// </e>
@@ -412,7 +424,7 @@
// </e>
// </h>
// <h>Cert/Key Strage
// <h>Cert/Key Storage
// <o>Cert Storage <0=> SD Card <1=> Mem Buff (1024bytes) <2=> Mem Buff (2048bytes)
#define MDK_CONF_CERT_BUFF 0
#if MDK_CONF_CERT_BUFF== 1
@@ -432,25 +444,63 @@
#define MDK_CONF_KEY_GEN 0
#if MDK_CONF_KEY_GEN == 1
#define WOLFSSL_KEY_GEN
#define WOLFSSL_OLD_PRIME_CHECK /* use older prime check (faster) */
#endif
// </e>
// </h>
// <e>Use Fast Math
#define MDK_CONF_FASTMATH 1
#if MDK_CONF_FASTMATH == 1
#define USE_FAST_MATH
#define TFM_TIMING_RESISTANT
// <h>Math / Memory
// <o> Math Library
// <0=>SP Math All (sp_int.c)
// <1=>Fast Math (tfm.c)
// <2=>Heap Math (integer.c)
// <3=>SP Math (RSA/DH 2048/3072/4096 and ECC 256/384/521 only)
// <4=>SP Math +ASM (faster)
#define MDK_CONF_MATH 0
#if MDK_CONF_MATH == 0
#define WOLFSSL_SP_MATH_ALL /* use SP math for all key sizes and curves */
#elif MDK_CONF_MATH == 1
#define USE_FAST_MATH
#elif MDK_CONF_MATH == 2
#define USE_INTEGER_HEAP_MATH
#elif MDK_CONF_MATH == 3 || MDK_CONF_MATH == 4
#define WOLFSSL_SP_MATH /* only SP math - disables integer.c/tfm.c */
#define WOLFSSL_HAVE_SP_RSA
#define WOLFSSL_HAVE_SP_DH
#define WOLFSSL_HAVE_SP_ECC
//#define WOLFSSL_SP_NO_2048
//#define WOLFSSL_SP_NO_3072
#define WOLFSSL_SP_4096
//#define WOLFSSL_SP_NO_256
//#define WOLFSSL_SP_384
//#define WOLFSSL_SP_521
#define WOLFSSL_SP_SMALL /* use smaller version of code */
//#define WOLFSSL_SP_NO_MALLOC /* do not use heap */
//#define WOLFSSL_SP_DIV_32 /* do not use 64-bit divides */
#if MDK_CONF_MATH == 4
/* SP Assembly Speedups - specific to chip type */
#define WOLFSSL_SP_ASM
//#define WOLFSSL_SP_ARM32_ASM
//#define WOLFSSL_SP_ARM64_ASM
//#define WOLFSSL_SP_ARM_THUMB_ASM
//#define WOLFSSL_SP_ARM_CORTEX_M_ASM
#endif
#endif
// </e>
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
#define NO_WOLFSSL_SMALL_STACK
#else
#define WOLFSSL_SMALL_STACK
#endif
// </e>
// </e>
// </h>
// </h>
/**** wolfSSL Configuration ****/
@@ -465,6 +515,7 @@
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_FFDHE_2048
//#define HAVE_FFDHE_3072
#endif
// </e>

View File

@@ -1,4 +1,4 @@
/* wolfssl_KEIL_ARM.h
/* wolfssl_MDK_ARM.h
*
* Copyright (C) 2006-2023 wolfSSL Inc.
*
@@ -70,7 +70,7 @@ typedef int socklen_t ;
#define tcp_listen wolfssl_tcp_listen
#define connect(a,b,c) connect(a, (SOCKADDR *)(b), c)
#define SOCKADDR struct sockaddr
/** KEIL-RL TCPnet ****/
/* TCPnet BSD socket does not have following functions. */
extern char *inet_ntoa(struct in_addr in);

View File

@@ -233,7 +233,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\RTE\wolfSSL\user_settings.h</PathWithFileName>
<PathWithFileName>..\..\Conf\user_settings.h</PathWithFileName>
<FilenameWithoutPath>user_settings.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>

View File

@@ -334,7 +334,7 @@
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define>USE_STM32756G_EVAL USE_IOEXPANDER WOLFSSL_USER_SETTINGS</Define>
<Define>USE_STM32756G_EVAL USE_IOEXPANDER WOLFSSL_USER_SETTINGS MDK_CONF_NETWORK=0</Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
@@ -383,7 +383,7 @@
<File>
<FileName>user_settings.h</FileName>
<FileType>5</FileType>
<FilePath>.\RTE\wolfSSL\user_settings.h</FilePath>
<FilePath>..\..\Conf\user_settings.h</FilePath>
</File>
</Files>
</Group>
@@ -791,7 +791,7 @@
<targetInfos/>
</file>
<file attr="config" category="header" name="wolfssl\IDE\MDK5-ARM\Conf\user_settings.h" version="3.14.0">
<instance index="0">RTE\wolfSSL\user_settings.h</instance>
<instance index="0">..\..\Conf\user_settings.h</instance>
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.15.7" condition="wolfCrypt-Core"/>
<package license="wolfssl\IDE\MDK5-ARM\Docs\wolfSSL-License.txt" name="wolfSSL" schemaVersion="1.4" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.15.7"/>
<targetInfos>

View File

@@ -1,497 +0,0 @@
/* user_settings.h
*
* Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
* wolfSSL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfSSL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#define WOLFSSL_MDK5_COMPLv5
#define NO_MAIN_DRIVER
#define BENCH_EMBEDDED
#define NO_DEV_RANDOM
#define WOLFSSL_USER_CURRTIME
#define SIZEOF_LONG_LONG 8
#define NO_WRITEV
#define NO_DEV_RANDOM
#define TFM_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT
#define WC_RSA_BLINDING
#define WOLFSSL_USER_CURRTIME /* for benchmark */
#define WOLFSSL_CURRTIME_OSTICK /* use OS tich for current_time */
#define WOLFSSL_GMTIME
#define NO_MULTIBYTE_PRINT
// <<< Use Configuration Wizard in Context Menu >>>
// <h>Common options
// <o> MPU<0=>Undefined<1=>STM32F2xx<2=>STM32F4xx<3=>STM32F7xx
#define MDK_CONF_MPU 3
#if MDK_CONF_MPU == 0
#elif MDK_CONF_MPU == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32F2xx
#elif MDK_CONF_MPU == 2
#define WOLFSSL_STM32_CUBEMX
#define STM32F4xx
#elif MDK_CONF_MPU == 3
#define WOLFSSL_STM32_CUBEMX
#define STM32F7xx
#endif
// <o> Thread/RTOS<0=>Single Threaded <1=>FreeRTOS <3=>SafeRTOS<4=>Windows
// <5=>PThread <6=>ThreadX
// <7=>Micrium <8=>EBSnet<9=>MQX
// <10=>T-RTOS <11=>uITRON4<12=>uTKERNEL2
// <13=>Frosted <14=>CMSIS RTOS<15=>CMSIS RTOSv2<16=>Others
#define MDK_CONF_THREAD 15
#if MDK_CONF_THREAD== 0
#define SINGLE_THREADED
#elif MDK_CONF_THREAD == 1
#define FREERTOS
#elif MDK_CONF_THREAD == 3
#define WOLFSSL_SAFERTOS
#elif MDK_CONF_THREAD == 4
#define USE_WINDOWS_API
#elif MDK_CONF_THREAD == 5
#define WOLFSSL_PTHREADS
#elif MDK_CONF_THREAD == 6
#define THREADX
#define NETX
#elif MDK_CONF_THREAD == 7
#define MICRIUM
#elif MDK_CONF_THREAD == 8
#define EBSNET
#elif MDK_CONF_THREAD == 9
#define FREESCALE_MQX
#define FREESCALE_KSDK_MQX
#elif MDK_CONF_THREAD == 10
#define WOLFSSL_TIRTOS
#elif MDK_CONF_THREAD == 11
#define WOLFSSL_uITRON4
#elif MDK_CONF_THREAD == 12
#define WOLFSSL_uTKERNEL2
#elif MDK_CONF_THREAD == 13
#define WOLFSSL_FROSTED
#elif MDK_CONF_THREAD == 14
#define WOLFSSL_CMSIS_RTOS
#elif MDK_CONF_THREAD == 15
#define WOLFSSL_CMSIS_RTOSv2
#elif MDK_CONF_THREAD == 16
#define SINGLE_THREADED
#endif
// <e>File System
#define MDK_CONF_FILESYSTEM 1
#if MDK_CONF_FILESYSTEM == 0
#define NO_FILESYSTEM
#else
#define WOLFSSL_KEIL_FS
#define NO_WOLFSSL_DIR
#endif
// </e>
// <o> Network<0=>None <1=>RLnet <2=>User I/O
#define MDK_CONF_NETWORK 0
#if MDK_CONF_NETWORK == 0
#elif MDK_CONF_NETWORK == 1
#define WOLFSSL_KEIL_TCP_NET
#elif MDK_CONF_NETWORK == 2
#define WOLFSSL_USER_IO
#endif
// <h>Debug options
// <e>Debug Message
#define MDK_CONF_DebugMessage 0
#if MDK_CONF_DebugMessage == 1
#define DEBUG_WOLFSSL
#endif
// </e>
// <e>Check malloc
#define MDK_CONF_CheckMalloc 1
#if MDK_CONF_CheckMalloc == 1
#define WOLFSSL_MALLOC_CHECK
#define USE_WOLFSSL_MEMORY
#endif
// </e>
// <e>ErrNo.h
#define MDK_CONF_ErrNo 1
#if MDK_CONF_ErrNo == 1
#define HAVE_ERRNO
#endif
// </e>
// <e>Error Strings
#define MDK_CONF_ErrorStrings 1
#if MDK_CONF_ErrorStrings == 0
#define NO_ERROR_STRINGS
#endif
// </e>
//</h>
//</h>
// <h> wolfCrypt Configuration
// <h>Hash/Crypt Algrithm
// <e>MD2
#define MDK_CONF_MD2 0
#if MDK_CONF_MD2 == 1
#define WOLFSSL_MD2
#endif
// </e>
// <e>MD4
#define MDK_CONF_MD4 0
#if MDK_CONF_MD4 == 0
#define NO_MD4
#endif
// </e>
// <e>MD5
#define MDK_CONF_MD5 1
#if MDK_CONF_MD5 == 0
#define NO_MD5
#endif
// </e>
// <e>SHA
#define MDK_CONF_SHA 1
#if MDK_CONF_SHA == 0
#define NO_SHA
#endif
// </e>
// <e>SHA-256
#define MDK_CONF_SHA256 1
#if MDK_CONF_SHA256 == 0
#define NO_SHA256
#endif
// </e>
// <e>SHA-384
#define MDK_CONF_SHA384 1
#if MDK_CONF_SHA384 == 1
#define WOLFSSL_SHA384
#endif
// </e>
// <e>SHA-512
#define MDK_CONF_SHA512 1
#if MDK_CONF_SHA512 == 1
#define WOLFSSL_SHA512
#endif
// </e>
// <e>Hash DRBG
#define MDK_CONF_HASHDRBG 1
#if MDK_CONF_HASHDRBG == 1
#define HAVE_HASHDRBG
#endif
// </e>
// <e>RIPEMD
#define MDK_CONF_RIPEMD 1
#if MDK_CONF_RIPEMD == 1
#define WOLFSSL_RIPEMD
#endif
// </e>
// <e>BLAKE2
#define MDK_CONF_BLAKE2 0
#if MDK_CONF_BLAKE2 == 1
#define HAVE_BLAKE2
#endif
// </e>
// <e>HMAC
#define MDK_CONF_HMAC 1
#if MDK_CONF_HMAC == 0
#define NO_HMAC
#endif
// </e>
// <e>HMAC KDF
#define MDK_CONF_HKDF 1
#if MDK_CONF_HKDF == 1
#define HAVE_HKDF
#endif
// </e>
// <e>AES CCM
#define MDK_CONF_AESCCM 1
#if MDK_CONF_AESCCM == 1
#define HAVE_AESCCM
#endif
// </e>
// <e>AES GCM
#define MDK_CONF_AESGCM 1
#if MDK_CONF_AESGCM == 1
#define HAVE_AESGCM
#endif
// </e>
// <e>RC4
#define MDK_CONF_RC4 0
#if MDK_CONF_RC4 == 0
#define NO_RC4
#endif
// </e>
// <e>CHACHA
#define MDK_CONF_CHACHA 1
#if MDK_CONF_CHACHA == 1
#define HAVE_CHACHA
#endif
// </e>
// <e>POLY1305
#define MDK_CONF_POLY1305 1
#if MDK_CONF_POLY1305 == 1
#define HAVE_POLY1305
#define HAVE_ONE_TIME_AUTH
#endif
// </e>
// <e>DES3
#define MDK_CONF_DES3 1
#if MDK_CONF_DES3 == 0
#define NO_DES3
#endif
// </e>
// <e>AES
#define MDK_CONF_AES 1
#if MDK_CONF_AES == 0
#define NO_AES
#endif
// </e>
// <e>CAMELLIA
#define MDK_CONF_CAMELLIA 1
#if MDK_CONF_CAMELLIA == 1
#define HAVE_CAMELLIA
#endif
// </e>
// <e>DH
#define MDK_CONF_DH 1
#if MDK_CONF_DH == 0
#define NO_DH
#endif
// </e>
// <e>DSA
#define MDK_CONF_DSA 1
#if MDK_CONF_DSA == 0
#define NO_DSA
#endif
// </e>
// <e>SRP
#define MDK_CONF_SRP 1
#if MDK_CONF_SRP == 1
#define HAVE_SRP
#endif
// </e>
// <e>PWDBASED
#define MDK_CONF_PWDBASED 1
#if MDK_CONF_PWDBASED == 0
#define NO_PWDBASED
#endif
// </e>
// <e>ECC
#define MDK_CONF_ECC 1
#if MDK_CONF_ECC == 1
#define HAVE_ECC
#endif
// </e>
// <e>CURVE25519
#define MDK_CONF_CURVE25519 1
#if MDK_CONF_CURVE25519 == 1
#define HAVE_CURVE25519
#define CURVED25519_SMALL
#endif
// </e>
// <e>CURVE25519 SMALL
#define MDK_CONF_CURVE25519_SMALL 0
#if MDK_CONF_CURVE25519_SMALL == 1
#define CURVED25519_SMALL
#endif
// </e>
// <e>ED25519
#define MDK_CONF_ED25519 1
#if MDK_CONF_ED25519 == 1
#define HAVE_ED25519
#endif
// </e>
// <e>ED25519 SMALL
#define MDK_CONF_ED25519_SMALL 0
#if MDK_CONF_ED25519_SMALL == 1
#define ED25519_SMALL
#endif
// </e>
// <e>PKCS7
#define MDK_CONF_PKCS7 0
#if MDK_CONF_PKCS7 == 1
#define HAVE_PKCS7
#endif
// </e>
// </h>
// <e>Random Seed, for TEST Only
#define MDK_CONF_RNDSEED 1
#if MDK_CONF_RNDSEED == 1
#define WOLFSSL_GENSEED_FORTEST
#endif
// </e>
// <h>Hardware Crypt (See document for usage)
// <e>Hardware RNG
#define MDK_CONF_STM32F2_RNG 0
#if MDK_CONF_STM32F2_RNG == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_RNG
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Crypt
#define MDK_CONF_STM32F2_CRYPTO 0
#if MDK_CONF_STM32F2_CRYPTO == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_CRYPTO
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Hash
#define MDK_CONF_STM32F2_HASH 0
#if MDK_CONF_STM32F2_HASH == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_HASH
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// </h>
// <h>Cert/Key Strage
// <o>Cert Storage <0=> SD Card <1=> Mem Buff (1024bytes) <2=> Mem Buff (2048bytes)
#define MDK_CONF_CERT_BUFF 0
#if MDK_CONF_CERT_BUFF== 1
#define USE_CERT_BUFFERS_1024
#elif MDK_CONF_CERT_BUFF == 2
#define USE_CERT_BUFFERS_2048
#endif
//</h>
// <h>Cert/Key Generation
// <e>CertGen
#define MDK_CONF_CERT_GEN 0
#if MDK_CONF_CERT_GEN == 1
#define WOLFSSL_CERT_GEN
#endif
// </e>
// <e>KeyGen
#define MDK_CONF_KEY_GEN 0
#if MDK_CONF_KEY_GEN == 1
#define WOLFSSL_KEY_GEN
#endif
// </e>
// </h>
// <e>Use Fast Math
#define MDK_CONF_FASTMATH 1
#if MDK_CONF_FASTMATH == 1
#define USE_FAST_MATH
#define TFM_TIMING_RESISTANT
#endif
// </e>
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
#endif
// </e>
// </h>
/**** wolfSSL Configuration ****/
// <h> wolfSSL Configuration
// <e>TLS 1.3
#define MDK_CONF_TLS 1
#if MDK_CONF_TLS == 1
#define WOLFSSL_TLS13
#define HAVE_TLS_EXTENSIONS
#define HAVE_SUPPORTED_CURVES
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_FFDHE_2048
#endif
// </e>
// <e>Include Old TLS
#define MDK_CONF_NO_OLDTLS 0
#if MDK_CONF_NO_OLDTLS == 0
#define NO_OLD_TLS
#endif
// </e>
// <e>CRL
#define MDK_CONF_CRL 0
#if MDK_CONF_CRL == 1
#define HAVE_CRL
#define WOLFSSL_DER_LOAD
#endif
// </e>
// <e>OCSP
#define MDK_CONF_OCSP 0
#if MDK_CONF_OCSP == 1
#define HAVE_OCSP
#endif
// </e>
// <e>OpenSSL Extra
#define MDK_CONF_OPENSSL_EXTRA 0
#if MDK_CONF_OPENSSL_EXTRA == 1
#define OPENSSL_EXTRA
#endif
// </e>
//</h>

View File

@@ -37,11 +37,11 @@
#endif
/* Dummy definition for test RTC */
#define RTC_YEAR 2019
#define RTC_YEAR 2023
#define RTC_MONTH 1
#define RTC_DAY 1
#define RTC_DAY 1
#define RTC_MONTH 1
#define RTC_DAY 1
#define RTC_DAY 1
#if defined(STM32F7xx)
#include "stm32f7xx_hal.h"
@@ -72,22 +72,22 @@ extern uint32_t os_time;
uint32_t HAL_GetTick(void)
{
#if defined(WOLFSSL_CMSIS_RTOS)
return os_time;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return osKernelGetTickCount();
#endif
#if defined(WOLFSSL_CMSIS_RTOS)
return os_time;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return osKernelGetTickCount();
#endif
}
double current_time(int reset)
{
if (reset)
return 0;
#if defined(WOLFSSL_CMSIS_RTOS)
return (double)os_time / 1000.0;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return (double)osKernelGetTickCount() / 1000.0;
#endif
#if defined(WOLFSSL_CMSIS_RTOS)
return (double)os_time / 1000.0;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return (double)osKernelGetTickCount() / 1000.0;
#endif
}
#else
@@ -96,28 +96,28 @@ double current_time(int reset)
#define DWT ((DWT_Type *) (0xE0001000UL) )
typedef struct
{
uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
} DWT_Type;
extern uint32_t SystemCoreClock ;
extern uint32_t SystemCoreClock;
double current_time(int reset)
{
if(reset) DWT->CYCCNT = 0 ;
return ((double)DWT->CYCCNT/SystemCoreClock) ;
if (reset) DWT->CYCCNT = 0;
return ((double)DWT->CYCCNT/SystemCoreClock);
}
#endif
static time_t epochTime;
time_t time(time_t *t)
{
return epochTime;
return epochTime;
}
void setTime(time_t t)
{
epochTime = t;
epochTime = t;
}
/*-----------------------------------------------------------------------------
@@ -126,48 +126,51 @@ void setTime(time_t t)
#if !defined(NO_FILESYSTEM)
#include "rl_fs.h" /* FileSystem definitions */
static void init_filesystem (void) {
int32_t retv;
static void init_filesystem(void)
{
int32_t retv;
retv = finit ("M0:");
if (retv == fsOK) {
retv = fmount ("M0:");
retv = finit ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
retv = fmount ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
}
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
printf ("Drive M0 initialization failed!\n");
}
}
else {
printf ("Drive M0 initialization failed!\n");
}
}
#endif
/*-----------------------------------------------------------------------------
* mian entry
* main entry
*----------------------------------------------------------------------------*/
void benchmark_test(void *arg) ;
void benchmark_test(void *arg);
int main()
{
void * arg = NULL ;
MPU_Config();
void * arg = NULL;
MPU_Config();
CPU_CACHE_Enable();
HAL_Init(); /* Initialize the HAL Library */
SystemClock_Config(); /* Configure the System Clock */
#if !defined(NO_FILESYSTEM)
#if !defined(NO_FILESYSTEM)
init_filesystem ();
#endif
setTime((RTC_YEAR-1970)*365*24*60*60 + RTC_MONTH*30*24*60*60 + RTC_DAY*24*60*60);
#endif
printf("=== Start: Crypt Benchmark ===\n") ;
benchmark_test(arg) ;
printf("=== End: Crypt Benchmark ===\n") ;
setTime((RTC_YEAR-1970)*365*24*60*60 +
RTC_MONTH*30*24*60*60 +
RTC_DAY*24*60*60);
printf("=== Start: Crypt Benchmark ===\n");
benchmark_test(arg);
printf("=== End: Crypt Benchmark ===\n");
return 0;
}

View File

@@ -298,7 +298,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\RTE\wolfSSL\user_settings.h</PathWithFileName>
<PathWithFileName>..\..\Conf\user_settings.h</PathWithFileName>
<FilenameWithoutPath>user_settings.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>

View File

@@ -334,7 +334,7 @@
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define>USE_STM32756G_EVAL USE_IOEXPANDER WOLFSSL_USER_SETTINGS</Define>
<Define>USE_STM32756G_EVAL USE_IOEXPANDER WOLFSSL_USER_SETTINGS MDK_CONF_NETWORK=0</Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
@@ -413,7 +413,7 @@
<File>
<FileName>user_settings.h</FileName>
<FileType>5</FileType>
<FilePath>.\RTE\wolfSSL\user_settings.h</FilePath>
<FilePath>..\..\Conf\user_settings.h</FilePath>
</File>
</Files>
</Group>
@@ -760,14 +760,8 @@
<package name="MDK-Middleware" schemaVersion="1.4" url="http://www.keil.com/pack/" vendor="Keil" version="7.4.1"/>
<targetInfos/>
</file>
<file attr="config" category="header" name="wolfssl\IDE\MDK5-ARM\Conf\config-Crypt.h">
<instance index="0" removed="1">RTE\wolfSSL\config-Crypt.h</instance>
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="" condition="wolfCrypt-Core"/>
<package license="wolfssl\IDE\MDK5-ARM\Docs\wolfSSL-License.txt" name="wolfSSL" schemaVersion="1.4" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.13.0"/>
<targetInfos/>
</file>
<file attr="config" category="header" name="wolfssl\IDE\MDK5-ARM\Conf\user_settings.h" version="3.14.0">
<instance index="0">RTE\wolfSSL\user_settings.h</instance>
<instance index="0">..\..\Conf\user_settings.h</instance>
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.15.7" condition="wolfCrypt-Core"/>
<package license="wolfssl\IDE\MDK5-ARM\Docs\wolfSSL-License.txt" name="wolfSSL" schemaVersion="1.4" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.15.7"/>
<targetInfos>

View File

@@ -1,497 +0,0 @@
/* user_settings.h
*
* Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
* wolfSSL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfSSL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#define NO_MAIN_DRIVER
#define BENCH_EMBEDDED
#define NO_DEV_RANDOM
#define WOLFSSL_USER_CURRTIME
#define SIZEOF_LONG_LONG 8
#define NO_WRITEV
#define NO_DEV_RANDOM
#define TFM_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT
#define WC_RSA_BLINDING
#define WOLFSSL_USER_CURRTIME /* for benchmark */
#define WOLFSSL_CURRTIME_OSTICK /* use OS tich for current_time */
#define WOLFSSL_GMTIME
#define NO_MULTIBYTE_PRINT
// <<< Use Configuration Wizard in Context Menu >>>
// <h>Common options
// <o> MPU<0=>Undefined<1=>STM32F2xx<2=>STM32F4xx<3=>STM32F7xx
#define MDK_CONF_MPU 3
#if MDK_CONF_MPU == 0
#elif MDK_CONF_MPU == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32F2xx
#elif MDK_CONF_MPU == 2
#define WOLFSSL_STM32_CUBEMX
#define STM32F4xx
#elif MDK_CONF_MPU == 3
#define WOLFSSL_STM32_CUBEMX
#define STM32F7xx
#endif
// <o> Thread/RTOS<0=>Single Threaded <1=>FreeRTOS <3=>SafeRTOS <4=>Windows
// <5=>PThread <6=>ThreadX
// <7=>Micrium <8=>EBSnet <9=>MQX
// <10=>T-RTOS <11=>uITRON4 <12=>uTKERNEL2
// <13=>Frosted <14=>CMSIS RTOS <15=>CMSIS RTOSv2 <16=>Others
#define MDK_CONF_THREAD 15
#if MDK_CONF_THREAD== 0
#define SINGLE_THREADED
#elif MDK_CONF_THREAD == 1
#define FREERTOS
#elif MDK_CONF_THREAD == 3
#define WOLFSSL_SAFERTOS
#elif MDK_CONF_THREAD == 4
#define USE_WINDOWS_API
#elif MDK_CONF_THREAD == 5
#define WOLFSSL_PTHREADS
#elif MDK_CONF_THREAD == 6
#define THREADX
#define NETX
#elif MDK_CONF_THREAD == 7
#define MICRIUM
#elif MDK_CONF_THREAD == 8
#define EBSNET
#elif MDK_CONF_THREAD == 9
#define FREESCALE_MQX
#define FREESCALE_KSDK_MQX
#elif MDK_CONF_THREAD == 10
#define WOLFSSL_TIRTOS
#elif MDK_CONF_THREAD == 11
#define WOLFSSL_uITRON4
#elif MDK_CONF_THREAD == 12
#define WOLFSSL_uTKERNEL2
#elif MDK_CONF_THREAD == 13
#define WOLFSSL_FROSTED
#elif MDK_CONF_THREAD == 14
#define WOLFSSL_CMSIS_RTOS
#elif MDK_CONF_THREAD == 15
#define WOLFSSL_CMSIS_RTOSv2
#elif MDK_CONF_THREAD == 16
#define SINGLE_THREADED
#endif
// <e>File System
#define MDK_CONF_FILESYSTEM 1
#if MDK_CONF_FILESYSTEM == 0
#define NO_FILESYSTEM
#else
#define WOLFSSL_KEIL_FS
#define NO_WOLFSSL_DIR
#endif
// </e>
// <o> Network<0=>None <1=>RLnet <2=>User I/O
#define MDK_CONF_NETWORK 0
#if MDK_CONF_NETWORK == 0
#elif MDK_CONF_NETWORK == 1
#define WOLFSSL_KEIL_TCP_NET
#elif MDK_CONF_NETWORK == 2
#define WOLFSSL_USER_IO
#endif
// <h>Debug options
// <e>Debug Message
#define MDK_CONF_DebugMessage 0
#if MDK_CONF_DebugMessage == 1
#define DEBUG_WOLFSSL
#endif
// </e>
// <e>Check malloc
#define MDK_CONF_CheckMalloc 1
#if MDK_CONF_CheckMalloc == 1
#define WOLFSSL_MALLOC_CHECK
#define USE_WOLFSSL_MEMORY
#endif
// </e>
// <e>ErrNo.h
#define MDK_CONF_ErrNo 1
#if MDK_CONF_ErrNo == 1
#define HAVE_ERRNO
#endif
// </e>
// <e>Error Strings
#define MDK_CONF_ErrorStrings 1
#if MDK_CONF_ErrorStrings == 0
#define NO_ERROR_STRINGS
#endif
// </e>
//</h>
//</h>
// <h> wolfCrypt Configuration
// <h>Hash/Crypt Algrithm
// <e>MD2
#define MDK_CONF_MD2 0
#if MDK_CONF_MD2 == 1
#define WOLFSSL_MD2
#endif
// </e>
// <e>MD4
#define MDK_CONF_MD4 0
#if MDK_CONF_MD4 == 0
#define NO_MD4
#endif
// </e>
// <e>MD5
#define MDK_CONF_MD5 1
#if MDK_CONF_MD5 == 0
#define NO_MD5
#endif
// </e>
// <e>SHA
#define MDK_CONF_SHA 1
#if MDK_CONF_SHA == 0
#define NO_SHA
#endif
// </e>
// <e>SHA-256
#define MDK_CONF_SHA256 1
#if MDK_CONF_SHA256 == 0
#define NO_SHA256
#endif
// </e>
// <e>SHA-384
#define MDK_CONF_SHA384 1
#if MDK_CONF_SHA384 == 1
#define WOLFSSL_SHA384
#endif
// </e>
// <e>SHA-512
#define MDK_CONF_SHA512 1
#if MDK_CONF_SHA512 == 1
#define WOLFSSL_SHA512
#endif
// </e>
// <e>Hash DRBG
#define MDK_CONF_HASHDRBG 1
#if MDK_CONF_HASHDRBG == 1
#define HAVE_HASHDRBG
#endif
// </e>
// <e>RIPEMD
#define MDK_CONF_RIPEMD 1
#if MDK_CONF_RIPEMD == 1
#define WOLFSSL_RIPEMD
#endif
// </e>
// <e>BLAKE2
#define MDK_CONF_BLAKE2 0
#if MDK_CONF_BLAKE2 == 1
#define HAVE_BLAKE2
#endif
// </e>
// <e>HMAC
#define MDK_CONF_HMAC 1
#if MDK_CONF_HMAC == 0
#define NO_HMAC
#endif
// </e>
// <e>HMAC KDF
#define MDK_CONF_HKDF 1
#if MDK_CONF_HKDF == 1
#define HAVE_HKDF
#endif
// </e>
// <e>AES CCM
#define MDK_CONF_AESCCM 1
#if MDK_CONF_AESCCM == 1
#define HAVE_AESCCM
#endif
// </e>
// <e>AES GCM
#define MDK_CONF_AESGCM 1
#if MDK_CONF_AESGCM == 1
#define HAVE_AESGCM
#endif
// </e>
// <e>RC4
#define MDK_CONF_RC4 0
#if MDK_CONF_RC4 == 0
#define NO_RC4
#endif
// </e>
// <e>CHACHA
#define MDK_CONF_CHACHA 1
#if MDK_CONF_CHACHA == 1
#define HAVE_CHACHA
#endif
// </e>
// <e>POLY1305
#define MDK_CONF_POLY1305 1
#if MDK_CONF_POLY1305 == 1
#define HAVE_POLY1305
#define HAVE_ONE_TIME_AUTH
#endif
// </e>
// <e>DES3
#define MDK_CONF_DES3 1
#if MDK_CONF_DES3 == 0
#define NO_DES3
#endif
// </e>
// <e>AES
#define MDK_CONF_AES 1
#if MDK_CONF_AES == 0
#define NO_AES
#endif
// </e>
// <e>CAMELLIA
#define MDK_CONF_CAMELLIA 1
#if MDK_CONF_CAMELLIA == 1
#define HAVE_CAMELLIA
#endif
// </e>
// <e>DH
#define MDK_CONF_DH 1
#if MDK_CONF_DH == 0
#define NO_DH
#endif
// </e>
// <e>DSA
#define MDK_CONF_DSA 1
#if MDK_CONF_DSA == 0
#define NO_DSA
#endif
// </e>
// <e>SRP
#define MDK_CONF_SRP 1
#if MDK_CONF_SRP == 1
#define HAVE_SRP
#endif
// </e>
// <e>PWDBASED
#define MDK_CONF_PWDBASED 1
#if MDK_CONF_PWDBASED == 0
#define NO_PWDBASED
#endif
// </e>
// <e>ECC
#define MDK_CONF_ECC 1
#if MDK_CONF_ECC == 1
#define HAVE_ECC
#endif
// </e>
// <e>CURVE25519
#define MDK_CONF_CURVE25519 1
#if MDK_CONF_CURVE25519 == 1
#define HAVE_CURVE25519
#define CURVED25519_SMALL
#endif
// </e>
// <e>CURVE25519 SMALL
#define MDK_CONF_CURVE25519_SMALL 0
#if MDK_CONF_CURVE25519_SMALL == 1
#define CURVED25519_SMALL
#endif
// </e>
// <e>ED25519
#define MDK_CONF_ED25519 1
#if MDK_CONF_ED25519 == 1
#define HAVE_ED25519
#endif
// </e>
// <e>ED25519 SMALL
#define MDK_CONF_ED25519_SMALL 0
#if MDK_CONF_ED25519_SMALL == 1
#define ED25519_SMALL
#endif
// </e>
// <e>PKCS7
#define MDK_CONF_PKCS7 0
#if MDK_CONF_PKCS7 == 1
#define HAVE_PKCS7
#endif
// </e>
// </h>
// <e>Random Seed, for TEST Only
#define MDK_CONF_RNDSEED 1
#if MDK_CONF_RNDSEED == 1
#define WOLFSSL_GENSEED_FORTEST
#endif
// </e>
// <h>Hardware Crypt (See document for usage)
// <e>Hardware RNG
#define MDK_CONF_STM32F2_RNG 0
#if MDK_CONF_STM32F2_RNG == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_RNG
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Crypt
#define MDK_CONF_STM32F2_CRYPTO 0
#if MDK_CONF_STM32F2_CRYPTO == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_CRYPTO
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Hash
#define MDK_CONF_STM32F2_HASH 0
#if MDK_CONF_STM32F2_HASH == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_HASH
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// </h>
// <h>Cert/Key Strage
// <o>Cert Storage <0=> SD Card <1=> Mem Buff (1024bytes) <2=> Mem Buff (2048bytes)
#define MDK_CONF_CERT_BUFF 0
#if MDK_CONF_CERT_BUFF== 1
#define USE_CERT_BUFFERS_1024
#elif MDK_CONF_CERT_BUFF == 2
#define USE_CERT_BUFFERS_2048
#endif
//</h>
// <h>Cert/Key Generation
// <e>CertGen
#define MDK_CONF_CERT_GEN 0
#if MDK_CONF_CERT_GEN == 1
#define WOLFSSL_CERT_GEN
#endif
// </e>
// <e>KeyGen
#define MDK_CONF_KEY_GEN 0
#if MDK_CONF_KEY_GEN == 1
#define WOLFSSL_KEY_GEN
#endif
// </e>
// </h>
// <e>Use Fast Math
#define MDK_CONF_FASTMATH 1
#if MDK_CONF_FASTMATH == 1
#define USE_FAST_MATH
#define TFM_TIMING_RESISTANT
#endif
// </e>
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
#endif
// </e>
// </h>
/**** wolfSSL Configuration ****/
// <h> wolfSSL Configuration
// <e>TLS 1.3
#define MDK_CONF_TLS 1
#if MDK_CONF_TLS == 1
#define WOLFSSL_TLS13
#define HAVE_TLS_EXTENSIONS
#define HAVE_SUPPORTED_CURVES
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_FFDHE_2048
#endif
// </e>
// <e>Include Old TLS
#define MDK_CONF_NO_OLDTLS 0
#if MDK_CONF_NO_OLDTLS == 0
#define NO_OLD_TLS
#endif
// </e>
// <e>CRL
#define MDK_CONF_CRL 0
#if MDK_CONF_CRL == 1
#define HAVE_CRL
#define WOLFSSL_DER_LOAD
#endif
// </e>
// <e>OCSP
#define MDK_CONF_OCSP 0
#if MDK_CONF_OCSP == 1
#define HAVE_OCSP
#endif
// </e>
// <e>OpenSSL Extra
#define MDK_CONF_OPENSSL_EXTRA 0
#if MDK_CONF_OPENSSL_EXTRA == 1
#define OPENSSL_EXTRA
#endif
// </e>
//</h>

View File

@@ -34,9 +34,9 @@
#include "cmsis_os2.h"
#endif
/* Dummy definition for test RTC */
#define RTC_YEAR 2019
#define RTC_YEAR 2023
#define RTC_MONTH 1
#define RTC_DAY 1
#define RTC_DAY 1
#if defined(STM32F7xx)
#include "stm32f7xx_hal.h"
@@ -65,19 +65,19 @@ extern uint32_t os_time;
#endif
uint32_t HAL_GetTick(void) {
#if defined(WOLFSSL_CMSIS_RTOS)
return os_time;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return osKernelGetTickCount();
#endif
#if defined(WOLFSSL_CMSIS_RTOS)
return os_time;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return osKernelGetTickCount();
#endif
}
static time_t epochTime;
time_t time(time_t *t){
return epochTime ;
time_t time(time_t *t) {
return epochTime;
}
void setTime(time_t t){
void setTime(time_t t) {
epochTime = t;
}
@@ -87,48 +87,52 @@ void setTime(time_t t){
#if !defined(NO_FILESYSTEM)
#include "rl_fs.h" /* FileSystem definitions */
static void init_filesystem (void) {
int32_t retv;
static void init_filesystem(void)
{
int32_t retv;
retv = finit ("M0:");
if (retv == fsOK) {
retv = fmount ("M0:");
retv = finit ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
retv = fmount ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
}
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
printf ("Drive M0 initialization failed!\n");
}
}
else {
printf ("Drive M0 initialization failed!\n");
}
}
#endif
/*-----------------------------------------------------------------------------
* mian entry
* main entry
*----------------------------------------------------------------------------*/
void wolfcrypt_test(void *arg) ;
void wolfcrypt_test(void *arg);
int main()
{
void * arg = NULL ;
void * arg = NULL;
MPU_Config();
MPU_Config();
CPU_CACHE_Enable();
HAL_Init(); /* Initialize the HAL Library */
SystemClock_Config(); /* Configure the System Clock */
#if !defined(NO_FILESYSTEM)
#if !defined(NO_FILESYSTEM)
init_filesystem ();
#endif
#endif
setTime((RTC_YEAR-1970)*365*24*60*60 + RTC_MONTH*30*24*60*60 + RTC_DAY*24*60*60);
setTime((RTC_YEAR-1970)*365*24*60*60 +
RTC_MONTH*30*24*60*60 +
RTC_DAY*24*60*60);
printf("=== Start: Crypt test === \n") ;
wolfcrypt_test(arg) ;
printf("=== End: Crypt test ===\n") ;
printf("=== Start: Crypt test === \n");
wolfcrypt_test(arg);
printf("=== End: Crypt test ===\n");
return 0;
}

View File

@@ -328,7 +328,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\RTE\wolfSSL\user_settings.h</PathWithFileName>
<PathWithFileName>..\..\Conf\user_settings.h</PathWithFileName>
<FilenameWithoutPath>user_settings.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>

View File

@@ -413,7 +413,7 @@
<File>
<FileName>user_settings.h</FileName>
<FileType>5</FileType>
<FilePath>.\RTE\wolfSSL\user_settings.h</FilePath>
<FilePath>..\..\Conf\user_settings.h</FilePath>
</File>
</Files>
</Group>
@@ -880,7 +880,7 @@
<targetInfos/>
</file>
<file attr="config" category="header" name="wolfssl\IDE\MDK5-ARM\Conf\user_settings.h" version="3.14.0">
<instance index="0">RTE\wolfSSL\user_settings.h</instance>
<instance index="0">..\..\Conf\user_settings.h</instance>
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfSSL" Csub="Core" Cvendor="wolfSSL" Cversion="3.15.7" condition="wolfCrypt-Core"/>
<package license="wolfssl\IDE\MDK5-ARM\Docs\wolfSSL-License.txt" name="wolfSSL" schemaVersion="1.4" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.15.7"/>
<targetInfos>

View File

@@ -1,495 +0,0 @@
/* user_settings.h
*
* Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
* wolfSSL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfSSL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#define NO_MAIN_DRIVER
#define BENCH_EMBEDDED
#define NO_DEV_RANDOM
#define WOLFSSL_USER_CURRTIME
#define SIZEOF_LONG_LONG 8
#define NO_WRITEV
#define NO_DEV_RANDOM
#define TFM_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT
#define WC_RSA_BLINDING
#define WOLFSSL_USER_CURRTIME /* for benchmark */
#define WOLFSSL_CURRTIME_OSTICK /* use OS tich for current_time */
#define WOLFSSL_GMTIME
#define NO_MULTIBYTE_PRINT
// <<< Use Configuration Wizard in Context Menu >>>
// <h>Common options
// <o> MPU<0=>Undefined<1=>STM32F2xx<2=>STM32F4xx<3=>STM32F7xx
#define MDK_CONF_MPU 3
#if MDK_CONF_MPU == 0
#elif MDK_CONF_MPU == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32F2xx
#elif MDK_CONF_MPU == 2
#define WOLFSSL_STM32_CUBEMX
#define STM32F4xx
#elif MDK_CONF_MPU == 3
#define WOLFSSL_STM32_CUBEMX
#define STM32F7xx
#endif
// <o> Thread/RTOS<0=>Single Threaded <1=>FreeRTOS <3=>SafeRTOS <4=>Windows
// <5=>PThread <6=>ThreadX
// <7=>Micrium <8=>EBSnet <9=>MQX
// <10=>T-RTOS <11=>uITRON4 <12=>uTKERNEL2
// <13=>Frosted <14=>CMSIS RTOS <15=>CMSIS RTOSv2 <16=>Others
#define MDK_CONF_THREAD 14
#if MDK_CONF_THREAD== 0
#define SINGLE_THREADED
#elif MDK_CONF_THREAD == 1
#define FREERTOS
#elif MDK_CONF_THREAD == 3
#define WOLFSSL_SAFERTOS
#elif MDK_CONF_THREAD == 4
#define USE_WINDOWS_API
#elif MDK_CONF_THREAD == 5
#define WOLFSSL_PTHREADS
#elif MDK_CONF_THREAD == 6
#define THREADX
#define NETX
#elif MDK_CONF_THREAD == 7
#define MICRIUM
#elif MDK_CONF_THREAD == 8
#define EBSNET
#elif MDK_CONF_THREAD == 9
#define FREESCALE_MQX
#define FREESCALE_KSDK_MQX
#elif MDK_CONF_THREAD == 10
#define WOLFSSL_TIRTOS
#elif MDK_CONF_THREAD == 11
#define WOLFSSL_uITRON4
#elif MDK_CONF_THREAD == 12
#define WOLFSSL_uTKERNEL2
#elif MDK_CONF_THREAD == 13
#define WOLFSSL_FROSTED
#elif MDK_CONF_THREAD == 14
#define WOLFSSL_CMSIS_RTOS
#elif MDK_CONF_THREAD == 15
#define SINGLE_THREADED
#endif
// <e>File System
#define MDK_CONF_FILESYSTEM 1
#if MDK_CONF_FILESYSTEM == 0
#define NO_FILESYSTEM
#else
#define WOLFSSL_KEIL_FS
#define NO_WOLFSSL_DIR
#endif
// </e>
// <o> Network<0=>None <1=>RLnet <2=>User I/O
#define MDK_CONF_NETWORK 1
#if MDK_CONF_NETWORK == 0
#elif MDK_CONF_NETWORK == 1
#define WOLFSSL_KEIL_TCP_NET
#elif MDK_CONF_NETWORK == 2
#define WOLFSSL_USER_IO
#endif
// <h>Debug options
// <e>Debug Message
#define MDK_CONF_DebugMessage 0
#if MDK_CONF_DebugMessage == 1
#define DEBUG_WOLFSSL
#endif
// </e>
// <e>Check malloc
#define MDK_CONF_CheckMalloc 1
#if MDK_CONF_CheckMalloc == 1
#define WOLFSSL_MALLOC_CHECK
#define USE_WOLFSSL_MEMORY
#endif
// </e>
// <e>ErrNo.h
#define MDK_CONF_ErrNo 1
#if MDK_CONF_ErrNo == 1
#define HAVE_ERRNO
#endif
// </e>
// <e>Error Strings
#define MDK_CONF_ErrorStrings 1
#if MDK_CONF_ErrorStrings == 0
#define NO_ERROR_STRINGS
#endif
// </e>
//</h>
//</h>
// <h> wolfCrypt Configuration
// <h>Hash/Crypt Algrithm
// <e>MD2
#define MDK_CONF_MD2 0
#if MDK_CONF_MD2 == 1
#define WOLFSSL_MD2
#endif
// </e>
// <e>MD4
#define MDK_CONF_MD4 0
#if MDK_CONF_MD4 == 0
#define NO_MD4
#endif
// </e>
// <e>MD5
#define MDK_CONF_MD5 1
#if MDK_CONF_MD5 == 0
#define NO_MD5
#endif
// </e>
// <e>SHA
#define MDK_CONF_SHA 1
#if MDK_CONF_SHA == 0
#define NO_SHA
#endif
// </e>
// <e>SHA-256
#define MDK_CONF_SHA256 1
#if MDK_CONF_SHA256 == 0
#define NO_SHA256
#endif
// </e>
// <e>SHA-384
#define MDK_CONF_SHA384 1
#if MDK_CONF_SHA384 == 1
#define WOLFSSL_SHA384
#endif
// </e>
// <e>SHA-512
#define MDK_CONF_SHA512 1
#if MDK_CONF_SHA512 == 1
#define WOLFSSL_SHA512
#endif
// </e>
// <e>Hash DRBG
#define MDK_CONF_HASHDRBG 1
#if MDK_CONF_HASHDRBG == 1
#define HAVE_HASHDRBG
#endif
// </e>
// <e>RIPEMD
#define MDK_CONF_RIPEMD 1
#if MDK_CONF_RIPEMD == 1
#define WOLFSSL_RIPEMD
#endif
// </e>
// <e>BLAKE2
#define MDK_CONF_BLAKE2 0
#if MDK_CONF_BLAKE2 == 1
#define HAVE_BLAKE2
#endif
// </e>
// <e>HMAC
#define MDK_CONF_HMAC 1
#if MDK_CONF_HMAC == 0
#define NO_HMAC
#endif
// </e>
// <e>HMAC KDF
#define MDK_CONF_HKDF 1
#if MDK_CONF_HKDF == 1
#define HAVE_HKDF
#endif
// </e>
// <e>AES CCM
#define MDK_CONF_AESCCM 1
#if MDK_CONF_AESCCM == 1
#define HAVE_AESCCM
#endif
// </e>
// <e>AES GCM
#define MDK_CONF_AESGCM 1
#if MDK_CONF_AESGCM == 1
#define HAVE_AESGCM
#endif
// </e>
// <e>RC4
#define MDK_CONF_RC4 0
#if MDK_CONF_RC4 == 0
#define NO_RC4
#endif
// </e>
// <e>CHACHA
#define MDK_CONF_CHACHA 1
#if MDK_CONF_CHACHA == 1
#define HAVE_CHACHA
#endif
// </e>
// <e>POLY1305
#define MDK_CONF_POLY1305 1
#if MDK_CONF_POLY1305 == 1
#define HAVE_POLY1305
#define HAVE_ONE_TIME_AUTH
#endif
// </e>
// <e>DES3
#define MDK_CONF_DES3 1
#if MDK_CONF_DES3 == 0
#define NO_DES3
#endif
// </e>
// <e>AES
#define MDK_CONF_AES 1
#if MDK_CONF_AES == 0
#define NO_AES
#endif
// </e>
// <e>CAMELLIA
#define MDK_CONF_CAMELLIA 1
#if MDK_CONF_CAMELLIA == 1
#define HAVE_CAMELLIA
#endif
// </e>
// <e>DH
#define MDK_CONF_DH 1
#if MDK_CONF_DH == 0
#define NO_DH
#endif
// </e>
// <e>DSA
#define MDK_CONF_DSA 1
#if MDK_CONF_DSA == 0
#define NO_DSA
#endif
// </e>
// <e>SRP
#define MDK_CONF_SRP 1
#if MDK_CONF_SRP == 1
#define HAVE_SRP
#endif
// </e>
// <e>PWDBASED
#define MDK_CONF_PWDBASED 1
#if MDK_CONF_PWDBASED == 0
#define NO_PWDBASED
#endif
// </e>
// <e>ECC
#define MDK_CONF_ECC 1
#if MDK_CONF_ECC == 1
#define HAVE_ECC
#endif
// </e>
// <e>CURVE25519
#define MDK_CONF_CURVE25519 1
#if MDK_CONF_CURVE25519 == 1
#define HAVE_CURVE25519
#define CURVED25519_SMALL
#endif
// </e>
// <e>CURVE25519 SMALL
#define MDK_CONF_CURVE25519_SMALL 0
#if MDK_CONF_CURVE25519_SMALL == 1
#define CURVED25519_SMALL
#endif
// </e>
// <e>ED25519
#define MDK_CONF_ED25519 1
#if MDK_CONF_ED25519 == 1
#define HAVE_ED25519
#endif
// </e>
// <e>ED25519 SMALL
#define MDK_CONF_ED25519_SMALL 0
#if MDK_CONF_ED25519_SMALL == 1
#define ED25519_SMALL
#endif
// </e>
// <e>PKCS7
#define MDK_CONF_PKCS7 0
#if MDK_CONF_PKCS7 == 1
#define HAVE_PKCS7
#endif
// </e>
// </h>
// <e>Random Seed, for TEST Only
#define MDK_CONF_RNDSEED 1
#if MDK_CONF_RNDSEED == 1
#define WOLFSSL_GENSEED_FORTEST
#endif
// </e>
// <h>Hardware Crypt (See document for usage)
// <e>Hardware RNG
#define MDK_CONF_STM32F2_RNG 0
#if MDK_CONF_STM32F2_RNG == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_RNG
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Crypt
#define MDK_CONF_STM32F2_CRYPTO 0
#if MDK_CONF_STM32F2_CRYPTO == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_CRYPTO
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Hash
#define MDK_CONF_STM32F2_HASH 0
#if MDK_CONF_STM32F2_HASH == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_HASH
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// </h>
// <h>Cert/Key Strage
// <o>Cert Storage <0=> SD Card <1=> Mem Buff (1024bytes) <2=> Mem Buff (2048bytes)
#define MDK_CONF_CERT_BUFF 0
#if MDK_CONF_CERT_BUFF== 1
#define USE_CERT_BUFFERS_1024
#elif MDK_CONF_CERT_BUFF == 2
#define USE_CERT_BUFFERS_2048
#endif
//</h>
// <h>Cert/Key Generation
// <e>CertGen
#define MDK_CONF_CERT_GEN 0
#if MDK_CONF_CERT_GEN == 1
#define WOLFSSL_CERT_GEN
#endif
// </e>
// <e>KeyGen
#define MDK_CONF_KEY_GEN 0
#if MDK_CONF_KEY_GEN == 1
#define WOLFSSL_KEY_GEN
#endif
// </e>
// </h>
// <e>Use Fast Math
#define MDK_CONF_FASTMATH 1
#if MDK_CONF_FASTMATH == 1
#define USE_FAST_MATH
#define TFM_TIMING_RESISTANT
#endif
// </e>
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
#endif
// </e>
// </h>
/**** wolfSSL Configuration ****/
// <h> wolfSSL Configuration
// <e>TLS 1.3
#define MDK_CONF_TLS 1
#if MDK_CONF_TLS == 1
#define WOLFSSL_TLS13
#define HAVE_TLS_EXTENSIONS
#define HAVE_SUPPORTED_CURVES
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_FFDHE_2048
#endif
// </e>
// <e>Include Old TLS
#define MDK_CONF_NO_OLDTLS 0
#if MDK_CONF_NO_OLDTLS == 0
#define NO_OLD_TLS
#endif
// </e>
// <e>CRL
#define MDK_CONF_CRL 0
#if MDK_CONF_CRL == 1
#define HAVE_CRL
#define WOLFSSL_DER_LOAD
#endif
// </e>
// <e>OCSP
#define MDK_CONF_OCSP 0
#if MDK_CONF_OCSP == 1
#define HAVE_OCSP
#endif
// </e>
// <e>OpenSSL Extra
#define MDK_CONF_OPENSSL_EXTRA 0
#if MDK_CONF_OPENSSL_EXTRA == 1
#define OPENSSL_EXTRA
#endif
// </e>
//</h>

View File

@@ -26,7 +26,7 @@
#include "wolfssl/wolfcrypt/settings.h"
#include "cmsis_os.h" /* CMSIS RTOS definitions */
#include "rl_net.h" /* Network definitions */
#include "rl_net.h" /* Network definitions */
#include <time.h>
#if defined(STM32F7xx)
@@ -40,12 +40,9 @@
//-------- <<< Use Configuration Wizard in Context Menu >>> -----------------
// <h>RTC: for validate certificate date
// <o>Year <1970-2099>
#define RTC_YEAR 2018
// <o>Month <1=>Jan<2=>Feb<3=>Mar<4=>Apr<5=>May<6=>Jun<7=>Jul<8=>Aut<9=>Sep<10=>Oct<11=>Nov<12=>Dec
#define RTC_YEAR 2023
#define RTC_MONTH 1
// <o>Day <1-31>
#define RTC_DAY 1
#define RTC_DAY 1
// </h>
//------------- <<< end of configuration section >>> -----------------------
@@ -69,29 +66,30 @@ static void CPU_CACHE_Enable (void) {
#if !defined(NO_FILESYSTEM)
#include "rl_fs.h" /* FileSystem definitions */
static void init_filesystem (void) {
int32_t retv;
static void init_filesystem(void)
{
int32_t retv;
retv = finit ("M0:");
if (retv == fsOK) {
retv = fmount ("M0:");
retv = finit ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
retv = fmount ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
}
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
printf ("Drive M0 initialization failed!\n");
}
}
else {
printf ("Drive M0 initialization failed!\n");
}
}
#endif
void net_loop(void const *arg)
{
while(1) {
while (1) {
net_main ();
osThreadYield ();
}
@@ -103,8 +101,8 @@ osThreadDef(net_loop, osPriorityLow, 2, 0);
extern uint32_t os_time;
static time_t epochTime;
uint32_t HAL_GetTick(void) {
return os_time;
uint32_t HAL_GetTick(void) {
return os_time;
}
time_t time(time_t *t){
@@ -133,15 +131,15 @@ double current_time(int reset)
#define DWT ((DWT_Type *) (0xE0001000UL) )
typedef struct
{
uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
} DWT_Type;
extern uint32_t SystemCoreClock ;
double current_time(int reset)
{
if(reset) DWT->CYCCNT = 0 ;
if (reset) DWT->CYCCNT = 0 ;
return ((double)DWT->CYCCNT/SystemCoreClock) ;
}
#endif
@@ -160,20 +158,21 @@ extern void echoclient_test(func_args * args) ;
int myoptind = 0;
char* myoptarg = NULL;
int main (void) {
int main (void)
{
static char *argv[] =
{ "client" } ;
static func_args args =
{ 1, argv } ;
MPU_Config(); /* Configure the MPU */
CPU_CACHE_Enable(); /* Enable the CPU Cache */
HAL_Init(); /* Initialize the HAL Library */
SystemClock_Config(); /* Configure the System Clock */
MPU_Config(); /* Configure the MPU */
CPU_CACHE_Enable(); /* Enable the CPU Cache */
HAL_Init(); /* Initialize the HAL Library */
SystemClock_Config(); /* Configure the System Clock */
#if !defined(NO_FILESYSTEM)
#if !defined(NO_FILESYSTEM)
init_filesystem ();
#endif
#endif
net_initialize ();
#if defined(DEBUG_WOLFSSL)
@@ -181,14 +180,15 @@ int main (void) {
wolfSSL_Debugging_ON() ;
#endif
setTime((RTC_YEAR-1970)*365*24*60*60 + RTC_MONTH*30*24*60*60 + RTC_DAY*24*60*60);
setTime((RTC_YEAR-1970)*365*24*60*60 +
RTC_MONTH*30*24*60*60 +
RTC_DAY*24*60*60);
osThreadCreate (osThread(net_loop), NULL);
echoclient_test(&args) ;
while(1)
while (1) {
osDelay(1000);
}
}

View File

@@ -279,7 +279,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\RTE\wolfSSL\user_settings.h</PathWithFileName>
<PathWithFileName>..\..\Conf\user_settings.h</PathWithFileName>
<FilenameWithoutPath>user_settings.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>

View File

@@ -413,7 +413,7 @@
<File>
<FileName>user_settings.h</FileName>
<FileType>5</FileType>
<FilePath>.\RTE\wolfSSL\user_settings.h</FilePath>
<FilePath>..\..\Conf\user_settings.h</FilePath>
</File>
</Files>
</Group>
@@ -886,7 +886,7 @@
<targetInfos/>
</file>
<file attr="config" category="header" name="wolfssl\IDE\MDK5-ARM\Conf\user_settings.h" version="3.14.0">
<instance index="0">RTE\wolfSSL\user_settings.h</instance>
<instance index="0">..\..\Conf\user_settings.h</instance>
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfSSL" Csub="Core" Cvendor="wolfSSL" Cversion="3.15.7" condition="wolfCrypt-Core"/>
<package license="wolfssl\IDE\MDK5-ARM\Docs\wolfSSL-License.txt" name="wolfSSL" schemaVersion="1.4" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.15.7"/>
<targetInfos>

View File

@@ -1,497 +0,0 @@
/* user_settings.h
*
* Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
* wolfSSL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfSSL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#define NO_MAIN_DRIVER
#define BENCH_EMBEDDED
#define NO_DEV_RANDOM
#define WOLFSSL_USER_CURRTIME
#define SIZEOF_LONG_LONG 8
#define NO_WRITEV
#define NO_DEV_RANDOM
#define TFM_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT
#define WC_RSA_BLINDING
#define WOLFSSL_USER_CURRTIME /* for benchmark */
#define WOLFSSL_CURRTIME_OSTICK /* use OS tich for current_time */
#define WOLFSSL_GMTIME
#define NO_MULTIBYTE_PRINT
// <<< Use Configuration Wizard in Context Menu >>>
// <h>Common options
// <o> MPU<0=>Undefined<1=>STM32F2xx<2=>STM32F4xx<3=>STM32F7xx
#define MDK_CONF_MPU 3
#if MDK_CONF_MPU == 0
#elif MDK_CONF_MPU == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32F2xx
#elif MDK_CONF_MPU == 2
#define WOLFSSL_STM32_CUBEMX
#define STM32F4xx
#elif MDK_CONF_MPU == 3
#define WOLFSSL_STM32_CUBEMX
#define STM32F7xx
#endif
// <o> Thread/RTOS<0=>Single Threaded <1=>FreeRTOS <3=>SafeRTOS <4=>Windows
// <5=>PThread <6=>ThreadX
// <7=>Micrium <8=>EBSnet <9=>MQX
// <10=>T-RTOS <11=>uITRON4 <12=>uTKERNEL2
// <13=>Frosted <14=>CMSIS RTOS <15=>CMSIS RTOSv2 <16=>Others
#define MDK_CONF_THREAD 14
#if MDK_CONF_THREAD== 0
#define SINGLE_THREADED
#elif MDK_CONF_THREAD == 1
#define FREERTOS
#elif MDK_CONF_THREAD == 3
#define WOLFSSL_SAFERTOS
#elif MDK_CONF_THREAD == 4
#define USE_WINDOWS_API
#elif MDK_CONF_THREAD == 5
#define WOLFSSL_PTHREADS
#elif MDK_CONF_THREAD == 6
#define THREADX
#define NETX
#elif MDK_CONF_THREAD == 7
#define MICRIUM
#elif MDK_CONF_THREAD == 8
#define EBSNET
#elif MDK_CONF_THREAD == 9
#define FREESCALE_MQX
#define FREESCALE_KSDK_MQX
#elif MDK_CONF_THREAD == 10
#define WOLFSSL_TIRTOS
#elif MDK_CONF_THREAD == 11
#define WOLFSSL_uITRON4
#elif MDK_CONF_THREAD == 12
#define WOLFSSL_uTKERNEL2
#elif MDK_CONF_THREAD == 13
#define WOLFSSL_FROSTED
#elif MDK_CONF_THREAD == 14
#define WOLFSSL_CMSIS_RTOS
#elif MDK_CONF_THREAD == 15
#define WOLFSSL_CMSIS_RTOSv2
#elif MDK_CONF_THREAD == 16
#define SINGLE_THREADED
#endif
// <e>File System
#define MDK_CONF_FILESYSTEM 1
#if MDK_CONF_FILESYSTEM == 0
#define NO_FILESYSTEM
#else
#define WOLFSSL_KEIL_FS
#define NO_WOLFSSL_DIR
#endif
// </e>
// <o> Network<0=>None <1=>RLnet <2=>User I/O
#define MDK_CONF_NETWORK 1
#if MDK_CONF_NETWORK == 0
#elif MDK_CONF_NETWORK == 1
#define WOLFSSL_KEIL_TCP_NET
#elif MDK_CONF_NETWORK == 2
#define WOLFSSL_USER_IO
#endif
// <h>Debug options
// <e>Debug Message
#define MDK_CONF_DebugMessage 0
#if MDK_CONF_DebugMessage == 1
#define DEBUG_WOLFSSL
#endif
// </e>
// <e>Check malloc
#define MDK_CONF_CheckMalloc 1
#if MDK_CONF_CheckMalloc == 1
#define WOLFSSL_MALLOC_CHECK
#define USE_WOLFSSL_MEMORY
#endif
// </e>
// <e>ErrNo.h
#define MDK_CONF_ErrNo 1
#if MDK_CONF_ErrNo == 1
#define HAVE_ERRNO
#endif
// </e>
// <e>Error Strings
#define MDK_CONF_ErrorStrings 1
#if MDK_CONF_ErrorStrings == 0
#define NO_ERROR_STRINGS
#endif
// </e>
//</h>
//</h>
// <h> wolfCrypt Configuration
// <h>Hash/Crypt Algrithm
// <e>MD2
#define MDK_CONF_MD2 0
#if MDK_CONF_MD2 == 1
#define WOLFSSL_MD2
#endif
// </e>
// <e>MD4
#define MDK_CONF_MD4 0
#if MDK_CONF_MD4 == 0
#define NO_MD4
#endif
// </e>
// <e>MD5
#define MDK_CONF_MD5 1
#if MDK_CONF_MD5 == 0
#define NO_MD5
#endif
// </e>
// <e>SHA
#define MDK_CONF_SHA 1
#if MDK_CONF_SHA == 0
#define NO_SHA
#endif
// </e>
// <e>SHA-256
#define MDK_CONF_SHA256 1
#if MDK_CONF_SHA256 == 0
#define NO_SHA256
#endif
// </e>
// <e>SHA-384
#define MDK_CONF_SHA384 1
#if MDK_CONF_SHA384 == 1
#define WOLFSSL_SHA384
#endif
// </e>
// <e>SHA-512
#define MDK_CONF_SHA512 1
#if MDK_CONF_SHA512 == 1
#define WOLFSSL_SHA512
#endif
// </e>
// <e>Hash DRBG
#define MDK_CONF_HASHDRBG 1
#if MDK_CONF_HASHDRBG == 1
#define HAVE_HASHDRBG
#endif
// </e>
// <e>RIPEMD
#define MDK_CONF_RIPEMD 1
#if MDK_CONF_RIPEMD == 1
#define WOLFSSL_RIPEMD
#endif
// </e>
// <e>BLAKE2
#define MDK_CONF_BLAKE2 0
#if MDK_CONF_BLAKE2 == 1
#define HAVE_BLAKE2
#endif
// </e>
// <e>HMAC
#define MDK_CONF_HMAC 1
#if MDK_CONF_HMAC == 0
#define NO_HMAC
#endif
// </e>
// <e>HMAC KDF
#define MDK_CONF_HKDF 1
#if MDK_CONF_HKDF == 1
#define HAVE_HKDF
#endif
// </e>
// <e>AES CCM
#define MDK_CONF_AESCCM 1
#if MDK_CONF_AESCCM == 1
#define HAVE_AESCCM
#endif
// </e>
// <e>AES GCM
#define MDK_CONF_AESGCM 1
#if MDK_CONF_AESGCM == 1
#define HAVE_AESGCM
#endif
// </e>
// <e>RC4
#define MDK_CONF_RC4 0
#if MDK_CONF_RC4 == 0
#define NO_RC4
#endif
// </e>
// <e>CHACHA
#define MDK_CONF_CHACHA 1
#if MDK_CONF_CHACHA == 1
#define HAVE_CHACHA
#endif
// </e>
// <e>POLY1305
#define MDK_CONF_POLY1305 1
#if MDK_CONF_POLY1305 == 1
#define HAVE_POLY1305
#define HAVE_ONE_TIME_AUTH
#endif
// </e>
// <e>DES3
#define MDK_CONF_DES3 1
#if MDK_CONF_DES3 == 0
#define NO_DES3
#endif
// </e>
// <e>AES
#define MDK_CONF_AES 1
#if MDK_CONF_AES == 0
#define NO_AES
#endif
// </e>
// <e>CAMELLIA
#define MDK_CONF_CAMELLIA 1
#if MDK_CONF_CAMELLIA == 1
#define HAVE_CAMELLIA
#endif
// </e>
// <e>DH
#define MDK_CONF_DH 1
#if MDK_CONF_DH == 0
#define NO_DH
#endif
// </e>
// <e>DSA
#define MDK_CONF_DSA 1
#if MDK_CONF_DSA == 0
#define NO_DSA
#endif
// </e>
// <e>SRP
#define MDK_CONF_SRP 1
#if MDK_CONF_SRP == 1
#define HAVE_SRP
#endif
// </e>
// <e>PWDBASED
#define MDK_CONF_PWDBASED 1
#if MDK_CONF_PWDBASED == 0
#define NO_PWDBASED
#endif
// </e>
// <e>ECC
#define MDK_CONF_ECC 1
#if MDK_CONF_ECC == 1
#define HAVE_ECC
#endif
// </e>
// <e>CURVE25519
#define MDK_CONF_CURVE25519 1
#if MDK_CONF_CURVE25519 == 1
#define HAVE_CURVE25519
#define CURVED25519_SMALL
#endif
// </e>
// <e>CURVE25519 SMALL
#define MDK_CONF_CURVE25519_SMALL 0
#if MDK_CONF_CURVE25519_SMALL == 1
#define CURVED25519_SMALL
#endif
// </e>
// <e>ED25519
#define MDK_CONF_ED25519 1
#if MDK_CONF_ED25519 == 1
#define HAVE_ED25519
#endif
// </e>
// <e>ED25519 SMALL
#define MDK_CONF_ED25519_SMALL 0
#if MDK_CONF_ED25519_SMALL == 1
#define ED25519_SMALL
#endif
// </e>
// <e>PKCS7
#define MDK_CONF_PKCS7 0
#if MDK_CONF_PKCS7 == 1
#define HAVE_PKCS7
#endif
// </e>
// </h>
// <e>Random Seed, for TEST Only
#define MDK_CONF_RNDSEED 1
#if MDK_CONF_RNDSEED == 1
#define WOLFSSL_GENSEED_FORTEST
#endif
// </e>
// <h>Hardware Crypt (See document for usage)
// <e>Hardware RNG
#define MDK_CONF_STM32F2_RNG 0
#if MDK_CONF_STM32F2_RNG == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_RNG
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Crypt
#define MDK_CONF_STM32F2_CRYPTO 0
#if MDK_CONF_STM32F2_CRYPTO == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_CRYPTO
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Hash
#define MDK_CONF_STM32F2_HASH 0
#if MDK_CONF_STM32F2_HASH == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_HASH
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// </h>
// <h>Cert/Key Strage
// <o>Cert Storage <0=> SD Card <1=> Mem Buff (1024bytes) <2=> Mem Buff (2048bytes)
#define MDK_CONF_CERT_BUFF 0
#if MDK_CONF_CERT_BUFF== 1
#define USE_CERT_BUFFERS_1024
#elif MDK_CONF_CERT_BUFF == 2
#define USE_CERT_BUFFERS_2048
#endif
//</h>
// <h>Cert/Key Generation
// <e>CertGen
#define MDK_CONF_CERT_GEN 0
#if MDK_CONF_CERT_GEN == 1
#define WOLFSSL_CERT_GEN
#endif
// </e>
// <e>KeyGen
#define MDK_CONF_KEY_GEN 0
#if MDK_CONF_KEY_GEN == 1
#define WOLFSSL_KEY_GEN
#endif
// </e>
// </h>
// <e>Use Fast Math
#define MDK_CONF_FASTMATH 1
#if MDK_CONF_FASTMATH == 1
#define USE_FAST_MATH
#define TFM_TIMING_RESISTANT
#endif
// </e>
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
#endif
// </e>
// </h>
/**** wolfSSL Configuration ****/
// <h> wolfSSL Configuration
// <e>TLS 1.3
#define MDK_CONF_TLS 1
#if MDK_CONF_TLS == 1
#define WOLFSSL_TLS13
#define HAVE_TLS_EXTENSIONS
#define HAVE_SUPPORTED_CURVES
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_FFDHE_2048
#endif
// </e>
// <e>Include Old TLS
#define MDK_CONF_NO_OLDTLS 0
#if MDK_CONF_NO_OLDTLS == 0
#define NO_OLD_TLS
#endif
// </e>
// <e>CRL
#define MDK_CONF_CRL 0
#if MDK_CONF_CRL == 1
#define HAVE_CRL
#define WOLFSSL_DER_LOAD
#endif
// </e>
// <e>OCSP
#define MDK_CONF_OCSP 0
#if MDK_CONF_OCSP == 1
#define HAVE_OCSP
#endif
// </e>
// <e>OpenSSL Extra
#define MDK_CONF_OPENSSL_EXTRA 0
#if MDK_CONF_OPENSSL_EXTRA == 1
#define OPENSSL_EXTRA
#endif
// </e>
//</h>

View File

@@ -26,7 +26,7 @@
#include "wolfssl/wolfcrypt/settings.h"
#include "cmsis_os.h" /* CMSIS RTOS definitions */
#include "rl_net.h" /* Network definitions */
#include "rl_net.h" /* Network definitions */
#include <time.h>
#if defined(STM32F7xx)
@@ -58,12 +58,9 @@
// </h>
// <h>RTC: for validate certificate date
// <o>Year <1970-2099>
#define RTC_YEAR 2018
// <o>Month <1=>Jan<2=>Feb<3=>Mar<4=>Apr<5=>May<6=>Jun<7=>Jul<8=>Aut<9=>Sep<10=>Oct<11=>Nov<12=>Dec
#define RTC_YEAR 2023
#define RTC_MONTH 1
// <o>Day <1-31>
#define RTC_DAY 1
#define RTC_DAY 1
// </h>
//------------- <<< end of configuration section >>> -----------------------
@@ -88,22 +85,23 @@ static void CPU_CACHE_Enable (void) {
#if !defined(NO_FILESYSTEM)
#include "rl_fs.h" /* FileSystem definitions */
static void init_filesystem (void) {
int32_t retv;
static void init_filesystem(void)
{
int32_t retv;
retv = finit ("M0:");
if (retv == fsOK) {
retv = fmount ("M0:");
retv = finit ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
retv = fmount ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
}
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
printf ("Drive M0 initialization failed!\n");
}
}
else {
printf ("Drive M0 initialization failed!\n");
}
}
#endif
@@ -120,20 +118,20 @@ osThreadDef(net_loop, osPriorityLow, 2, 0);
#ifdef RTE_CMSIS_RTOS_RTX
extern uint32_t os_time;
static time_t epochTime;
static time_t epochTime;
uint32_t HAL_GetTick(void) {
return os_time;
uint32_t HAL_GetTick(void) {
return os_time;
}
time_t time(time_t *t){
return epochTime ;
time_t time(time_t *t) {
return epochTime;
}
void setTime(time_t t){
void setTime(time_t t) {
epochTime = t;
}
#endif
#endif /* RTE_CMSIS_RTOS_RTX */
#ifdef WOLFSSL_CURRTIME_OSTICK
@@ -143,28 +141,27 @@ extern uint32_t os_time;
double current_time(int reset)
{
if(reset) os_time = 0 ;
return (double)os_time /1000.0;
if (reset) os_time = 0;
return (double)os_time /1000.0;
}
#else
#include <stdint.h>
#define DWT ((DWT_Type *) (0xE0001000UL) )
typedef struct
{
uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
typedef struct {
uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
} DWT_Type;
extern uint32_t SystemCoreClock ;
extern uint32_t SystemCoreClock;
double current_time(int reset)
{
if(reset) DWT->CYCCNT = 0 ;
return ((double)DWT->CYCCNT/SystemCoreClock) ;
if (reset) DWT->CYCCNT = 0;
return ((double)DWT->CYCCNT/SystemCoreClock);
}
#endif
#endif /* WOLFSSL_CURRTIME_OSTICK */
/*----------------------------------------------------------------------------
Main Thread 'main': Run Network
@@ -175,39 +172,42 @@ typedef struct func_args {
char** argv;
} func_args;
extern void echoserver_test(func_args * args) ;
extern void echoserver_test(func_args * args);
int myoptind = 0;
char* myoptarg = NULL;
int main (void) {
int main (void)
{
static char *argv[] =
{ "server" } ;
static func_args args = { 1, argv } ;
{ "server" };
static func_args args = { 1, argv };
MPU_Config(); /* Configure the MPU */
CPU_CACHE_Enable(); /* Enable the CPU Cache */
HAL_Init(); /* Initialize the HAL Library */
SystemClock_Config(); /* Configure the System Clock */
MPU_Config(); /* Configure the MPU */
CPU_CACHE_Enable(); /* Enable the CPU Cache */
HAL_Init(); /* Initialize the HAL Library */
SystemClock_Config(); /* Configure the System Clock */
#if !defined(NO_FILESYSTEM)
#if !defined(NO_FILESYSTEM)
init_filesystem ();
#endif
#endif
net_initialize ();
#if defined(DEBUG_WOLFSSL)
printf("Turning ON Debug message\n") ;
wolfSSL_Debugging_ON() ;
#endif
#if defined(DEBUG_WOLFSSL)
printf("Turning ON Debug message\n");
wolfSSL_Debugging_ON();
#endif
setTime((RTC_YEAR-1970)*365*24*60*60 + RTC_MONTH*30*24*60*60 + RTC_DAY*24*60*60);
setTime((RTC_YEAR-1970)*365*24*60*60 +
RTC_MONTH*30*24*60*60 +
RTC_DAY*24*60*60);
osThreadCreate (osThread(net_loop), NULL);
echoserver_test(&args) ;
printf("echoserver: Terminated\n") ;
while(1)
echoserver_test(&args);
printf("echoserver: Terminated\n");
while (1) {
osDelay(1000);
}
}

View File

@@ -1,497 +0,0 @@
/* user_settings.h
*
* Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
* wolfSSL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfSSL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#define NO_MAIN_DRIVER
#define BENCH_EMBEDDED
#define NO_DEV_RANDOM
#define WOLFSSL_USER_CURRTIME
#define SIZEOF_LONG_LONG 8
#define NO_WRITEV
#define NO_DEV_RANDOM
#define TFM_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT
#define WC_RSA_BLINDING
#define WOLFSSL_USER_CURRTIME /* for benchmark */
#define WOLFSSL_CURRTIME_OSTICK /* use OS tich for current_time */
#define WOLFSSL_GMTIME
#define NO_MULTIBYTE_PRINT
// <<< Use Configuration Wizard in Context Menu >>>
// <h>Common options
// <o> MPU<0=>Undefined<1=>STM32F2xx<2=>STM32F4xx<3=>STM32F7xx
#define MDK_CONF_MPU 3
#if MDK_CONF_MPU == 0
#elif MDK_CONF_MPU == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32F2xx
#elif MDK_CONF_MPU == 2
#define WOLFSSL_STM32_CUBEMX
#define STM32F4xx
#elif MDK_CONF_MPU == 3
#define WOLFSSL_STM32_CUBEMX
#define STM32F7xx
#endif
// <o> Thread/RTOS<0=>Single Threaded <1=>FreeRTOS <3=>SafeRTOS <4=>Windows
// <5=>PThread <6=>ThreadX
// <7=>Micrium <8=>EBSnet <9=>MQX
// <10=>T-RTOS <11=>uITRON4 <12=>uTKERNEL2
// <13=>Frosted <14=>CMSIS RTOS <15=>CMSIS RTOSv2 <16=>Others
#define MDK_CONF_THREAD 15
#if MDK_CONF_THREAD== 0
#define SINGLE_THREADED
#elif MDK_CONF_THREAD == 1
#define FREERTOS
#elif MDK_CONF_THREAD == 3
#define WOLFSSL_SAFERTOS
#elif MDK_CONF_THREAD == 4
#define USE_WINDOWS_API
#elif MDK_CONF_THREAD == 5
#define WOLFSSL_PTHREADS
#elif MDK_CONF_THREAD == 6
#define THREADX
#define NETX
#elif MDK_CONF_THREAD == 7
#define MICRIUM
#elif MDK_CONF_THREAD == 8
#define EBSNET
#elif MDK_CONF_THREAD == 9
#define FREESCALE_MQX
#define FREESCALE_KSDK_MQX
#elif MDK_CONF_THREAD == 10
#define WOLFSSL_TIRTOS
#elif MDK_CONF_THREAD == 11
#define WOLFSSL_uITRON4
#elif MDK_CONF_THREAD == 12
#define WOLFSSL_uTKERNEL2
#elif MDK_CONF_THREAD == 13
#define WOLFSSL_FROSTED
#elif MDK_CONF_THREAD == 14
#define WOLFSSL_CMSIS_RTOS
#elif MDK_CONF_THREAD == 15
#define WOLFSSL_CMSIS_RTOSv2
#elif MDK_CONF_THREAD == 16
#define SINGLE_THREADED
#endif
// <e>File System
#define MDK_CONF_FILESYSTEM 1
#if MDK_CONF_FILESYSTEM == 0
#define NO_FILESYSTEM
#else
#define WOLFSSL_KEIL_FS
#define NO_WOLFSSL_DIR
#endif
// </e>
// <o> Network<0=>None <1=>RLnet <2=>User I/O
#define MDK_CONF_NETWORK 1
#if MDK_CONF_NETWORK == 0
#elif MDK_CONF_NETWORK == 1
#define WOLFSSL_KEIL_TCP_NET
#elif MDK_CONF_NETWORK == 2
#define WOLFSSL_USER_IO
#endif
// <h>Debug options
// <e>Debug Message
#define MDK_CONF_DebugMessage 0
#if MDK_CONF_DebugMessage == 1
#define DEBUG_WOLFSSL
#endif
// </e>
// <e>Check malloc
#define MDK_CONF_CheckMalloc 1
#if MDK_CONF_CheckMalloc == 1
#define WOLFSSL_MALLOC_CHECK
#define USE_WOLFSSL_MEMORY
#endif
// </e>
// <e>ErrNo.h
#define MDK_CONF_ErrNo 1
#if MDK_CONF_ErrNo == 1
#define HAVE_ERRNO
#endif
// </e>
// <e>Error Strings
#define MDK_CONF_ErrorStrings 1
#if MDK_CONF_ErrorStrings == 0
#define NO_ERROR_STRINGS
#endif
// </e>
//</h>
//</h>
// <h> wolfCrypt Configuration
// <h>Hash/Crypt Algrithm
// <e>MD2
#define MDK_CONF_MD2 0
#if MDK_CONF_MD2 == 1
#define WOLFSSL_MD2
#endif
// </e>
// <e>MD4
#define MDK_CONF_MD4 0
#if MDK_CONF_MD4 == 0
#define NO_MD4
#endif
// </e>
// <e>MD5
#define MDK_CONF_MD5 1
#if MDK_CONF_MD5 == 0
#define NO_MD5
#endif
// </e>
// <e>SHA
#define MDK_CONF_SHA 1
#if MDK_CONF_SHA == 0
#define NO_SHA
#endif
// </e>
// <e>SHA-256
#define MDK_CONF_SHA256 1
#if MDK_CONF_SHA256 == 0
#define NO_SHA256
#endif
// </e>
// <e>SHA-384
#define MDK_CONF_SHA384 1
#if MDK_CONF_SHA384 == 1
#define WOLFSSL_SHA384
#endif
// </e>
// <e>SHA-512
#define MDK_CONF_SHA512 1
#if MDK_CONF_SHA512 == 1
#define WOLFSSL_SHA512
#endif
// </e>
// <e>Hash DRBG
#define MDK_CONF_HASHDRBG 1
#if MDK_CONF_HASHDRBG == 1
#define HAVE_HASHDRBG
#endif
// </e>
// <e>RIPEMD
#define MDK_CONF_RIPEMD 1
#if MDK_CONF_RIPEMD == 1
#define WOLFSSL_RIPEMD
#endif
// </e>
// <e>BLAKE2
#define MDK_CONF_BLAKE2 0
#if MDK_CONF_BLAKE2 == 1
#define HAVE_BLAKE2
#endif
// </e>
// <e>HMAC
#define MDK_CONF_HMAC 1
#if MDK_CONF_HMAC == 0
#define NO_HMAC
#endif
// </e>
// <e>HMAC KDF
#define MDK_CONF_HKDF 1
#if MDK_CONF_HKDF == 1
#define HAVE_HKDF
#endif
// </e>
// <e>AES CCM
#define MDK_CONF_AESCCM 1
#if MDK_CONF_AESCCM == 1
#define HAVE_AESCCM
#endif
// </e>
// <e>AES GCM
#define MDK_CONF_AESGCM 1
#if MDK_CONF_AESGCM == 1
#define HAVE_AESGCM
#endif
// </e>
// <e>RC4
#define MDK_CONF_RC4 0
#if MDK_CONF_RC4 == 0
#define NO_RC4
#endif
// </e>
// <e>CHACHA
#define MDK_CONF_CHACHA 1
#if MDK_CONF_CHACHA == 1
#define HAVE_CHACHA
#endif
// </e>
// <e>POLY1305
#define MDK_CONF_POLY1305 1
#if MDK_CONF_POLY1305 == 1
#define HAVE_POLY1305
#define HAVE_ONE_TIME_AUTH
#endif
// </e>
// <e>DES3
#define MDK_CONF_DES3 1
#if MDK_CONF_DES3 == 0
#define NO_DES3
#endif
// </e>
// <e>AES
#define MDK_CONF_AES 1
#if MDK_CONF_AES == 0
#define NO_AES
#endif
// </e>
// <e>CAMELLIA
#define MDK_CONF_CAMELLIA 1
#if MDK_CONF_CAMELLIA == 1
#define HAVE_CAMELLIA
#endif
// </e>
// <e>DH
#define MDK_CONF_DH 1
#if MDK_CONF_DH == 0
#define NO_DH
#endif
// </e>
// <e>DSA
#define MDK_CONF_DSA 1
#if MDK_CONF_DSA == 0
#define NO_DSA
#endif
// </e>
// <e>SRP
#define MDK_CONF_SRP 1
#if MDK_CONF_SRP == 1
#define HAVE_SRP
#endif
// </e>
// <e>PWDBASED
#define MDK_CONF_PWDBASED 1
#if MDK_CONF_PWDBASED == 0
#define NO_PWDBASED
#endif
// </e>
// <e>ECC
#define MDK_CONF_ECC 1
#if MDK_CONF_ECC == 1
#define HAVE_ECC
#endif
// </e>
// <e>CURVE25519
#define MDK_CONF_CURVE25519 1
#if MDK_CONF_CURVE25519 == 1
#define HAVE_CURVE25519
#define CURVED25519_SMALL
#endif
// </e>
// <e>CURVE25519 SMALL
#define MDK_CONF_CURVE25519_SMALL 0
#if MDK_CONF_CURVE25519_SMALL == 1
#define CURVED25519_SMALL
#endif
// </e>
// <e>ED25519
#define MDK_CONF_ED25519 1
#if MDK_CONF_ED25519 == 1
#define HAVE_ED25519
#endif
// </e>
// <e>ED25519 SMALL
#define MDK_CONF_ED25519_SMALL 0
#if MDK_CONF_ED25519_SMALL == 1
#define ED25519_SMALL
#endif
// </e>
// <e>PKCS7
#define MDK_CONF_PKCS7 0
#if MDK_CONF_PKCS7 == 1
#define HAVE_PKCS7
#endif
// </e>
// </h>
// <e>Random Seed, for TEST Only
#define MDK_CONF_RNDSEED 1
#if MDK_CONF_RNDSEED == 1
#define WOLFSSL_GENSEED_FORTEST
#endif
// </e>
// <h>Hardware Crypt (See document for usage)
// <e>Hardware RNG
#define MDK_CONF_STM32F2_RNG 0
#if MDK_CONF_STM32F2_RNG == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_RNG
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Crypt
#define MDK_CONF_STM32F2_CRYPTO 0
#if MDK_CONF_STM32F2_CRYPTO == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_CRYPTO
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Hash
#define MDK_CONF_STM32F2_HASH 0
#if MDK_CONF_STM32F2_HASH == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_HASH
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// </h>
// <h>Cert/Key Strage
// <o>Cert Storage <0=> SD Card <1=> Mem Buff (1024bytes) <2=> Mem Buff (2048bytes)
#define MDK_CONF_CERT_BUFF 0
#if MDK_CONF_CERT_BUFF== 1
#define USE_CERT_BUFFERS_1024
#elif MDK_CONF_CERT_BUFF == 2
#define USE_CERT_BUFFERS_2048
#endif
//</h>
// <h>Cert/Key Generation
// <e>CertGen
#define MDK_CONF_CERT_GEN 0
#if MDK_CONF_CERT_GEN == 1
#define WOLFSSL_CERT_GEN
#endif
// </e>
// <e>KeyGen
#define MDK_CONF_KEY_GEN 0
#if MDK_CONF_KEY_GEN == 1
#define WOLFSSL_KEY_GEN
#endif
// </e>
// </h>
// <e>Use Fast Math
#define MDK_CONF_FASTMATH 1
#if MDK_CONF_FASTMATH == 1
#define USE_FAST_MATH
#define TFM_TIMING_RESISTANT
#endif
// </e>
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
#endif
// </e>
// </h>
/**** wolfSSL Configuration ****/
// <h> wolfSSL Configuration
// <e>TLS 1.3
#define MDK_CONF_TLS 1
#if MDK_CONF_TLS == 1
#define WOLFSSL_TLS13
#define HAVE_TLS_EXTENSIONS
#define HAVE_SUPPORTED_CURVES
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_FFDHE_2048
#endif
// </e>
// <e>Include Old TLS
#define MDK_CONF_NO_OLDTLS 0
#if MDK_CONF_NO_OLDTLS == 0
#define NO_OLD_TLS
#endif
// </e>
// <e>CRL
#define MDK_CONF_CRL 0
#if MDK_CONF_CRL == 1
#define HAVE_CRL
#define WOLFSSL_DER_LOAD
#endif
// </e>
// <e>OCSP
#define MDK_CONF_OCSP 0
#if MDK_CONF_OCSP == 1
#define HAVE_OCSP
#endif
// </e>
// <e>OpenSSL Extra
#define MDK_CONF_OPENSSL_EXTRA 0
#if MDK_CONF_OPENSSL_EXTRA == 1
#define OPENSSL_EXTRA
#endif
// </e>
//</h>

View File

@@ -298,7 +298,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\RTE\wolfSSL\user_settings.h</PathWithFileName>
<PathWithFileName>..\..\Conf\user_settings.h</PathWithFileName>
<FilenameWithoutPath>user_settings.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>

View File

@@ -413,7 +413,7 @@
<File>
<FileName>user_settings.h</FileName>
<FileType>5</FileType>
<FilePath>.\RTE\wolfSSL\user_settings.h</FilePath>
<FilePath>..\..\Conf\user_settings.h</FilePath>
</File>
</Files>
</Group>
@@ -912,7 +912,7 @@
<targetInfos/>
</file>
<file attr="config" category="header" name="wolfssl\IDE\MDK5-ARM\Conf\user_settings.h" version="3.15.7">
<instance index="0">RTE\wolfSSL\user_settings.h</instance>
<instance index="0">..\..\Conf\user_settings.h</instance>
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfSSL" Csub="Core" Cvendor="wolfSSL" Cversion="3.15.7" condition="wolfCrypt-Core"/>
<package license="wolfssl\IDE\MDK5-ARM\Docs\wolfSSL-License.txt" name="wolfSSL" schemaVersion="1.4" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.15.7"/>
<targetInfos>

View File

@@ -68,12 +68,9 @@
// </h>
// <h>RTC: for validate certificate date
// <o>Year <1970-2099>
#define RTC_YEAR 2019
// <o>Month <1=>Jan<2=>Feb<3=>Mar<4=>Apr<5=>May<6=>Jun<7=>Jul<8=>Aug<9=>Sep<10=>Oct<11=>Nov<12=>Dec
#define RTC_YEAR 2023
#define RTC_MONTH 1
// <o>Day <1-31>
#define RTC_DAY 1
#define RTC_DAY 1
// </h>
//------------- <<< end of configuration section >>> -----------------------
@@ -96,19 +93,19 @@ extern uint32_t os_time;
#endif
uint32_t HAL_GetTick(void) {
#if defined(WOLFSSL_CMSIS_RTOS)
return os_time;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return osKernelGetTickCount();
#endif
#if defined(WOLFSSL_CMSIS_RTOS)
return os_time;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return osKernelGetTickCount();
#endif
}
static time_t epochTime;
time_t time(time_t *t){
return epochTime ;
time_t time(time_t *t) {
return epochTime;
}
void setTime(time_t t){
void setTime(time_t t) {
epochTime = t;
}
@@ -129,22 +126,23 @@ double current_time(int reset)
#if !defined(NO_FILESYSTEM)
#include "rl_fs.h" /* FileSystem definitions */
static void init_filesystem (void) {
int32_t retv;
static void init_filesystem(void)
{
int32_t retv;
retv = finit ("M0:");
if (retv == fsOK) {
retv = fmount ("M0:");
retv = finit ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
retv = fmount ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
}
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
printf ("Drive M0 initialization failed!\n");
}
}
else {
printf ("Drive M0 initialization failed!\n");
}
}
#endif
@@ -156,9 +154,10 @@ void app_main(void *arg)
void app_main(void const*arg)
#endif
{
if(netInitialize () == netOK)
client_test(arg);
else printf("ERROR: netInitialize\n");
if (netInitialize () == netOK)
client_test(arg);
else
printf("ERROR: netInitialize\n");
}
#if defined(WOLFSSL_CMSIS_RTOS)
@@ -178,48 +177,51 @@ typedef struct func_args {
int myoptind = 0;
char* myoptarg = NULL;
int main (void) {
int main (void)
{
static char *argv[] =
{ "client", "-h", REMOTE_IP, "-p", REMOTE_PORT,
"-v", " ", OTHER_OPTIONS } ;
"-v", " ", OTHER_OPTIONS };
static func_args args =
{ sizeof(argv)/sizeof(*argv[0]), argv } ;
{ sizeof(argv)/sizeof(*argv[0]), argv };
char *verStr[] = { "SSL3", "TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"};
#define VERSIZE 2
static char ver[VERSIZE];
MPU_Config(); /* Configure the MPU */
CPU_CACHE_Enable(); /* Enable the CPU Cache */
HAL_Init(); /* Initialize the HAL Library */
SystemClock_Config(); /* Configure the System Clock */
#if defined(WOLFSSL_CMSIS_RTOSv2)
osKernelInitialize();
#endif
#if !defined(NO_FILESYSTEM)
init_filesystem ();
#endif
#if defined(DEBUG_WOLFSSL)
printf("Turning ON Debug message\n") ;
wolfSSL_Debugging_ON() ;
#endif
MPU_Config(); /* Configure the MPU */
CPU_CACHE_Enable(); /* Enable the CPU Cache */
HAL_Init(); /* Initialize the HAL Library */
SystemClock_Config(); /* Configure the System Clock */
#if defined(WOLFSSL_CMSIS_RTOSv2)
osKernelInitialize();
#endif
#if !defined(NO_FILESYSTEM)
init_filesystem ();
#endif
#if defined(DEBUG_WOLFSSL)
printf("Turning ON Debug message\n");
wolfSSL_Debugging_ON();
#endif
snprintf(ver, VERSIZE, "%d", TLS_VER);
argv[6] = ver;
printf("SSL/TLS Client(%d)\n ", (int)(sizeof(argv)/sizeof(argv[0]))) ;
printf(" Remote IP: %s, Port: %s\n Version: %s\n", argv[2], argv[4], verStr[TLS_VER]) ;
printf(" Other options: %s\n", OTHER_OPTIONS);
setTime((time_t)((RTC_YEAR-1970)*365*24*60*60) + RTC_MONTH*30*24*60*60 + RTC_DAY*24*60*60);
#if defined(WOLFSSL_CMSIS_RTOS)
osThreadCreate (osThread(app_main), (void *)&args);
#elif defined(WOLFSSL_CMSIS_RTOSv2)
osThreadNew(app_main, (void *)&args, NULL);
#endif
osKernelStart();
printf("SSL/TLS Client(%d)\n ", (int)(sizeof(argv)/sizeof(argv[0])));
printf(" Remote IP: %s, Port: %s\n Version: %s\n",
argv[2], argv[4], verStr[TLS_VER]);
printf(" Other options: %s\n", OTHER_OPTIONS);
setTime((time_t)((RTC_YEAR-1970)*365*24*60*60) +
RTC_MONTH*30*24*60*60 +
RTC_DAY*24*60*60);
#if defined(WOLFSSL_CMSIS_RTOS)
osThreadCreate (osThread(app_main), (void *)&args);
#elif defined(WOLFSSL_CMSIS_RTOSv2)
osThreadNew(app_main, (void *)&args, NULL);
#endif
osKernelStart();
}

View File

@@ -1,497 +0,0 @@
/* user_settings.h
*
* Copyright (C) 2006-2023 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
* wolfSSL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfSSL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#define NO_MAIN_DRIVER
#define BENCH_EMBEDDED
#define NO_DEV_RANDOM
#define WOLFSSL_USER_CURRTIME
#define SIZEOF_LONG_LONG 8
#define NO_WRITEV
#define NO_DEV_RANDOM
#define TFM_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT
#define WC_RSA_BLINDING
#define WOLFSSL_USER_CURRTIME /* for benchmark */
#define WOLFSSL_CURRTIME_OSTICK /* use OS tich for current_time */
#define WOLFSSL_GMTIME
#define NO_MULTIBYTE_PRINT
// <<< Use Configuration Wizard in Context Menu >>>
// <h>Common options
// <o> MPU<0=>Undefined<1=>STM32F2xx<2=>STM32F4xx<3=>STM32F7xx
#define MDK_CONF_MPU 3
#if MDK_CONF_MPU == 0
#elif MDK_CONF_MPU == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32F2xx
#elif MDK_CONF_MPU == 2
#define WOLFSSL_STM32_CUBEMX
#define STM32F4xx
#elif MDK_CONF_MPU == 3
#define WOLFSSL_STM32_CUBEMX
#define STM32F7xx
#endif
// <o> Thread/RTOS<0=>Single Threaded <1=>FreeRTOS <3=>SafeRTOS <4=>Windows
// <5=>PThread <6=>ThreadX
// <7=>Micrium <8=>EBSnet <9=>MQX
// <10=>T-RTOS <11=>uITRON4 <12=>uTKERNEL2
// <13=>Frosted <14=>CMSIS RTOS <15=>CMSIS RTOSv2 <16=>Others
#define MDK_CONF_THREAD 15
#if MDK_CONF_THREAD== 0
#define SINGLE_THREADED
#elif MDK_CONF_THREAD == 1
#define FREERTOS
#elif MDK_CONF_THREAD == 3
#define WOLFSSL_SAFERTOS
#elif MDK_CONF_THREAD == 4
#define USE_WINDOWS_API
#elif MDK_CONF_THREAD == 5
#define WOLFSSL_PTHREADS
#elif MDK_CONF_THREAD == 6
#define THREADX
#define NETX
#elif MDK_CONF_THREAD == 7
#define MICRIUM
#elif MDK_CONF_THREAD == 8
#define EBSNET
#elif MDK_CONF_THREAD == 9
#define FREESCALE_MQX
#define FREESCALE_KSDK_MQX
#elif MDK_CONF_THREAD == 10
#define WOLFSSL_TIRTOS
#elif MDK_CONF_THREAD == 11
#define WOLFSSL_uITRON4
#elif MDK_CONF_THREAD == 12
#define WOLFSSL_uTKERNEL2
#elif MDK_CONF_THREAD == 13
#define WOLFSSL_FROSTED
#elif MDK_CONF_THREAD == 14
#define WOLFSSL_CMSIS_RTOS
#elif MDK_CONF_THREAD == 15
#define WOLFSSL_CMSIS_RTOSv2
#elif MDK_CONF_THREAD == 16
#define SINGLE_THREADED
#endif
// <e>File System
#define MDK_CONF_FILESYSTEM 1
#if MDK_CONF_FILESYSTEM == 0
#define NO_FILESYSTEM
#else
#define WOLFSSL_KEIL_FS
#define NO_WOLFSSL_DIR
#endif
// </e>
// <o> Network<0=>None <1=>RLnet <2=>User I/O
#define MDK_CONF_NETWORK 1
#if MDK_CONF_NETWORK == 0
#elif MDK_CONF_NETWORK == 1
#define WOLFSSL_KEIL_TCP_NET
#elif MDK_CONF_NETWORK == 2
#define WOLFSSL_USER_IO
#endif
// <h>Debug options
// <e>Debug Message
#define MDK_CONF_DebugMessage 0
#if MDK_CONF_DebugMessage == 1
#define DEBUG_WOLFSSL
#endif
// </e>
// <e>Check malloc
#define MDK_CONF_CheckMalloc 1
#if MDK_CONF_CheckMalloc == 1
#define WOLFSSL_MALLOC_CHECK
#define USE_WOLFSSL_MEMORY
#endif
// </e>
// <e>ErrNo.h
#define MDK_CONF_ErrNo 1
#if MDK_CONF_ErrNo == 1
#define HAVE_ERRNO
#endif
// </e>
// <e>Error Strings
#define MDK_CONF_ErrorStrings 1
#if MDK_CONF_ErrorStrings == 0
#define NO_ERROR_STRINGS
#endif
// </e>
//</h>
//</h>
// <h> wolfCrypt Configuration
// <h>Hash/Crypt Algrithm
// <e>MD2
#define MDK_CONF_MD2 0
#if MDK_CONF_MD2 == 1
#define WOLFSSL_MD2
#endif
// </e>
// <e>MD4
#define MDK_CONF_MD4 0
#if MDK_CONF_MD4 == 0
#define NO_MD4
#endif
// </e>
// <e>MD5
#define MDK_CONF_MD5 1
#if MDK_CONF_MD5 == 0
#define NO_MD5
#endif
// </e>
// <e>SHA
#define MDK_CONF_SHA 1
#if MDK_CONF_SHA == 0
#define NO_SHA
#endif
// </e>
// <e>SHA-256
#define MDK_CONF_SHA256 1
#if MDK_CONF_SHA256 == 0
#define NO_SHA256
#endif
// </e>
// <e>SHA-384
#define MDK_CONF_SHA384 1
#if MDK_CONF_SHA384 == 1
#define WOLFSSL_SHA384
#endif
// </e>
// <e>SHA-512
#define MDK_CONF_SHA512 1
#if MDK_CONF_SHA512 == 1
#define WOLFSSL_SHA512
#endif
// </e>
// <e>Hash DRBG
#define MDK_CONF_HASHDRBG 1
#if MDK_CONF_HASHDRBG == 1
#define HAVE_HASHDRBG
#endif
// </e>
// <e>RIPEMD
#define MDK_CONF_RIPEMD 1
#if MDK_CONF_RIPEMD == 1
#define WOLFSSL_RIPEMD
#endif
// </e>
// <e>BLAKE2
#define MDK_CONF_BLAKE2 0
#if MDK_CONF_BLAKE2 == 1
#define HAVE_BLAKE2
#endif
// </e>
// <e>HMAC
#define MDK_CONF_HMAC 1
#if MDK_CONF_HMAC == 0
#define NO_HMAC
#endif
// </e>
// <e>HMAC KDF
#define MDK_CONF_HKDF 1
#if MDK_CONF_HKDF == 1
#define HAVE_HKDF
#endif
// </e>
// <e>AES CCM
#define MDK_CONF_AESCCM 1
#if MDK_CONF_AESCCM == 1
#define HAVE_AESCCM
#endif
// </e>
// <e>AES GCM
#define MDK_CONF_AESGCM 1
#if MDK_CONF_AESGCM == 1
#define HAVE_AESGCM
#endif
// </e>
// <e>RC4
#define MDK_CONF_RC4 0
#if MDK_CONF_RC4 == 0
#define NO_RC4
#endif
// </e>
// <e>CHACHA
#define MDK_CONF_CHACHA 1
#if MDK_CONF_CHACHA == 1
#define HAVE_CHACHA
#endif
// </e>
// <e>POLY1305
#define MDK_CONF_POLY1305 1
#if MDK_CONF_POLY1305 == 1
#define HAVE_POLY1305
#define HAVE_ONE_TIME_AUTH
#endif
// </e>
// <e>DES3
#define MDK_CONF_DES3 1
#if MDK_CONF_DES3 == 0
#define NO_DES3
#endif
// </e>
// <e>AES
#define MDK_CONF_AES 1
#if MDK_CONF_AES == 0
#define NO_AES
#endif
// </e>
// <e>CAMELLIA
#define MDK_CONF_CAMELLIA 1
#if MDK_CONF_CAMELLIA == 1
#define HAVE_CAMELLIA
#endif
// </e>
// <e>DH
#define MDK_CONF_DH 1
#if MDK_CONF_DH == 0
#define NO_DH
#endif
// </e>
// <e>DSA
#define MDK_CONF_DSA 1
#if MDK_CONF_DSA == 0
#define NO_DSA
#endif
// </e>
// <e>SRP
#define MDK_CONF_SRP 1
#if MDK_CONF_SRP == 1
#define HAVE_SRP
#endif
// </e>
// <e>PWDBASED
#define MDK_CONF_PWDBASED 1
#if MDK_CONF_PWDBASED == 0
#define NO_PWDBASED
#endif
// </e>
// <e>ECC
#define MDK_CONF_ECC 1
#if MDK_CONF_ECC == 1
#define HAVE_ECC
#endif
// </e>
// <e>CURVE25519
#define MDK_CONF_CURVE25519 1
#if MDK_CONF_CURVE25519 == 1
#define HAVE_CURVE25519
#define CURVED25519_SMALL
#endif
// </e>
// <e>CURVE25519 SMALL
#define MDK_CONF_CURVE25519_SMALL 0
#if MDK_CONF_CURVE25519_SMALL == 1
#define CURVED25519_SMALL
#endif
// </e>
// <e>ED25519
#define MDK_CONF_ED25519 1
#if MDK_CONF_ED25519 == 1
#define HAVE_ED25519
#endif
// </e>
// <e>ED25519 SMALL
#define MDK_CONF_ED25519_SMALL 0
#if MDK_CONF_ED25519_SMALL == 1
#define ED25519_SMALL
#endif
// </e>
// <e>PKCS7
#define MDK_CONF_PKCS7 0
#if MDK_CONF_PKCS7 == 1
#define HAVE_PKCS7
#endif
// </e>
// </h>
// <e>Random Seed, for TEST Only
#define MDK_CONF_RNDSEED 1
#if MDK_CONF_RNDSEED == 1
#define WOLFSSL_GENSEED_FORTEST
#endif
// </e>
// <h>Hardware Crypt (See document for usage)
// <e>Hardware RNG
#define MDK_CONF_STM32F2_RNG 0
#if MDK_CONF_STM32F2_RNG == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_RNG
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Crypt
#define MDK_CONF_STM32F2_CRYPTO 0
#if MDK_CONF_STM32F2_CRYPTO == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_CRYPTO
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// <e>Hardware Hash
#define MDK_CONF_STM32F2_HASH 0
#if MDK_CONF_STM32F2_HASH == 1
#define WOLFSSL_STM32_CUBEMX
#define STM32_HASH
#define WC_ASYNC_DEV_SIZE 320+24
#define STM32_HAL_TIMEOUT 0xFF
#if defined(STM32F2xx)
#define WOLFSSL_STM32F2
#elif defined(STM32F4xx)
#define WOLFSSL_STM32F4
#elif defined(STM32F7xx)
#define WOLFSSL_STM32F7
#endif
#endif
// </e>
// </h>
// <h>Cert/Key Strage
// <o>Cert Storage <0=> SD Card <1=> Mem Buff (1024bytes) <2=> Mem Buff (2048bytes)
#define MDK_CONF_CERT_BUFF 0
#if MDK_CONF_CERT_BUFF== 1
#define USE_CERT_BUFFERS_1024
#elif MDK_CONF_CERT_BUFF == 2
#define USE_CERT_BUFFERS_2048
#endif
//</h>
// <h>Cert/Key Generation
// <e>CertGen
#define MDK_CONF_CERT_GEN 0
#if MDK_CONF_CERT_GEN == 1
#define WOLFSSL_CERT_GEN
#endif
// </e>
// <e>KeyGen
#define MDK_CONF_KEY_GEN 0
#if MDK_CONF_KEY_GEN == 1
#define WOLFSSL_KEY_GEN
#endif
// </e>
// </h>
// <e>Use Fast Math
#define MDK_CONF_FASTMATH 1
#if MDK_CONF_FASTMATH == 1
#define USE_FAST_MATH
#define TFM_TIMING_RESISTANT
#endif
// </e>
// <e>Small Stack
#define MDK_CONF_SmallStack 1
#if MDK_CONF_SmallStack == 0
#define NO_WOLFSSL_SMALL_STACK
#endif
// </e>
// </h>
/**** wolfSSL Configuration ****/
// <h> wolfSSL Configuration
// <e>TLS 1.3
#define MDK_CONF_TLS 1
#if MDK_CONF_TLS == 1
#define WOLFSSL_TLS13
#define HAVE_TLS_EXTENSIONS
#define HAVE_SUPPORTED_CURVES
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_FFDHE_2048
#endif
// </e>
// <e>Include Old TLS
#define MDK_CONF_NO_OLDTLS 0
#if MDK_CONF_NO_OLDTLS == 0
#define NO_OLD_TLS
#endif
// </e>
// <e>CRL
#define MDK_CONF_CRL 0
#if MDK_CONF_CRL == 1
#define HAVE_CRL
#define WOLFSSL_DER_LOAD
#endif
// </e>
// <e>OCSP
#define MDK_CONF_OCSP 0
#if MDK_CONF_OCSP == 1
#define HAVE_OCSP
#endif
// </e>
// <e>OpenSSL Extra
#define MDK_CONF_OPENSSL_EXTRA 0
#if MDK_CONF_OPENSSL_EXTRA == 1
#define OPENSSL_EXTRA
#endif
// </e>
//</h>

View File

@@ -298,7 +298,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\RTE\wolfSSL\user_settings.h</PathWithFileName>
<PathWithFileName>..\..\Conf\user_settings.h</PathWithFileName>
<FilenameWithoutPath>user_settings.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>

View File

@@ -413,7 +413,7 @@
<File>
<FileName>user_settings.h</FileName>
<FileType>5</FileType>
<FilePath>.\RTE\wolfSSL\user_settings.h</FilePath>
<FilePath>..\..\Conf\user_settings.h</FilePath>
</File>
</Files>
</Group>
@@ -912,7 +912,7 @@
<targetInfos/>
</file>
<file attr="config" category="header" name="wolfssl\IDE\MDK5-ARM\Conf\user_settings.h" version="3.15.7">
<instance index="0">RTE\wolfSSL\user_settings.h</instance>
<instance index="0">..\..\Conf\user_settings.h</instance>
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfSSL" Csub="Core" Cvendor="wolfSSL" Cversion="3.15.7" condition="wolfCrypt-Core"/>
<package license="wolfssl\IDE\MDK5-ARM\Docs\wolfSSL-License.txt" name="wolfSSL" schemaVersion="1.4" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.15.7"/>
<targetInfos>

View File

@@ -66,11 +66,9 @@
// <h>RTC: for validate certificate date
// <o>Year <1970-2099>
#define RTC_YEAR 2019
// <o>Month <1=>Jan<2=>Feb<3=>Mar<4=>Apr<5=>May<6=>Jun<7=>Jul<8=>Aut<9=>Sep<10=>Oct<11=>Nov<12=>Dec
#define RTC_YEAR 2023
#define RTC_MONTH 1
// <o>Day <1-31>
#define RTC_DAY 1
#define RTC_DAY 1
// </h>
//------------- <<< end of configuration section >>> -----------------------
@@ -94,22 +92,23 @@ static void CPU_CACHE_Enable (void) {
#if !defined(NO_FILESYSTEM)
#include "rl_fs.h" /* FileSystem definitions */
static void init_filesystem (void) {
int32_t retv;
static void init_filesystem(void)
{
int32_t retv;
retv = finit ("M0:");
if (retv == fsOK) {
retv = fmount ("M0:");
retv = finit ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
retv = fmount ("M0:");
if (retv == fsOK) {
printf ("Drive M0 ready!\n");
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
}
}
else {
printf ("Drive M0 mount failed(%d)!\n", retv);
printf ("Drive M0 initialization failed!\n");
}
}
else {
printf ("Drive M0 initialization failed!\n");
}
}
#endif
@@ -121,20 +120,20 @@ extern uint32_t os_time;
uint32_t HAL_GetTick(void)
{
#if defined(WOLFSSL_CMSIS_RTOS)
return os_time;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return osKernelGetTickCount();
#endif
#if defined(WOLFSSL_CMSIS_RTOS)
return os_time;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return osKernelGetTickCount();
#endif
}
double current_time(int reset)
{
#if defined(WOLFSSL_CMSIS_RTOS)
return (double)os_time / 1000.0;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return (double)osKernelGetTickCount() / 1000.0;
#endif
#if defined(WOLFSSL_CMSIS_RTOS)
return (double)os_time / 1000.0;
#elif defined(WOLFSSL_CMSIS_RTOSv2)
return (double)osKernelGetTickCount() / 1000.0;
#endif
}
#else
@@ -143,8 +142,8 @@ double current_time(int reset)
#define DWT ((DWT_Type *) (0xE0001000UL) )
typedef struct
{
uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
} DWT_Type;
extern uint32_t SystemCoreClock;
@@ -203,22 +202,22 @@ int main(void)
{
static char *argv[] =
{ "server", "-p", SERVER_PORT,
"-v", " ", OTHER_OPTIONS } ;
"-v", " ", OTHER_OPTIONS };
static func_args args =
{ sizeof(argv)/sizeof(*argv[0]), argv } ;
{ sizeof(argv)/sizeof(*argv[0]), argv };
char *verStr[] = { "SSL3", "TLS1.0", "TLS1.1", "TLS1.2", "TLS1.3"};
#define VERSIZE 2
char ver[VERSIZE];
MPU_Config(); /* Configure the MPU */
CPU_CACHE_Enable(); /* Enable the CPU Cache */
HAL_Init(); /* Initialize the HAL Library */
SystemClock_Config(); /* Configure the System Clock */
#if !defined(NO_FILESYSTEM)
#if !defined(NO_FILESYSTEM)
init_filesystem ();
#endif
#endif
#if defined(WOLFSSL_CMSIS_RTOSv2)
osKernelInitialize();
@@ -232,10 +231,12 @@ int main(void)
snprintf(ver, VERSIZE, "%d", TLS_VER);
argv[4] = ver;
printf("SSL/TLS Server\n ") ;
printf(" Server Port: %s\n Version: %s\n", argv[2], verStr[TLS_VER]) ;
printf(" Other options: %s\n", OTHER_OPTIONS);
setTime((RTC_YEAR-1970)*365*24*60*60 + RTC_MONTH*30*24*60*60 + RTC_DAY*24*60*60);
printf("SSL/TLS Server\n ");
printf(" Server Port: %s\n Version: %s\n", argv[2], verStr[TLS_VER]);
printf(" Other options: %s\n", OTHER_OPTIONS);
setTime((RTC_YEAR-1970)*365*24*60*60 +
RTC_MONTH*30*24*60*60 +
RTC_DAY*24*60*60);
#if defined(WOLFSSL_CMSIS_RTOS)
osThreadCreate(osThread(app_main), (void *)&args);

Some files were not shown because too many files have changed in this diff Show More