Commit Graph

7027 Commits

Author SHA1 Message Date
JacobBarthelmeh
cb422bfaf7 Merge pull request #6242 from julek-wolfssl/harden-tls
Implement TLS recommendations from RFC 9325
2023-04-04 10:13:27 -06:00
David Garske
b1e4d4922e Merge pull request #6259 from SparkiDev/cppcheck_fixes_9
cppcheck fixes
2023-04-03 15:35:35 -07:00
Daniel Pouzzner
c08878ac94 configure.ac: include both -I. and -I$srcdir for "circular dependency" test, so that ${build_pwd}/wolfssl/options.h is found in out-of-tree builds; streamline scripting that dynamically sets $TRIM;
linuxkm/module_exports.c.template: include wolfssl/wolfcrypt/wolfmath.h, to bring in wc_GetMathInfo() prototype;

src/ssl.c: move "Global pointer to constant BN on" to src/ssl_bn.c; and in wolfSSL_Cleanup(), call the new wolfSSL_BN_free_one() rather than using ad hoc cleanup logic;

src/ssl_bn.c: add bn_one and wolfSSL_BN_free_one();

src/ssl_asn1.c: fix bugprone-macro-parentheses in bufLenOrNull(); refactor wolfSSL_ASN1_TIME_diff() to avoid floating point math; use intermediate tm_year variable in wolfssl_asn1_time_to_tm() to avoid target-specific type conflicts on tm->tm_year; use "FALL_THROUGH", not "/* fall-through */", in wolfSSL_ASN1_TYPE_set (clang-diagnostic-implicit-fallthrough);

wolfcrypt/src/ecc.c: fix identicalInnerCondition in ecc_mul2add();

wolfcrypt/src/integer.c: refactor OPT_CAST()s in mp_grow() to unconditional casts as elsewhere, to mollify a confused cppcheck-all-intmath;

tests/api.c: reformat some overlong lines.
2023-04-03 15:49:39 -05:00
Sean Parkinson
8851065848 cppcheck fixes
Fix checking of negative with unsigned variables.
Check digestSz for 0 in wc_SSH_KDF() so that no possibility of dividing
by zero.
Change XMEMCPY to XMEMSET in renesas_sce_util.c.
Fix test.c to free prvTmp and pubTmp on read error.
Remove unused variables.
XFREE checks for NULL so don't check before call.
Move variable declarations to reduce scope.
2023-04-03 16:59:58 +10:00
Andras Fekete
c8e1731cb7 Fix dependency issues 2023-03-31 13:21:13 -04:00
Andras Fekete
7138b66b5e Compiler error 2023-03-31 11:22:58 -04:00
Juliusz Sosinowicz
9f41ed8c72 Add missing guards 2023-03-31 16:11:58 +02:00
Sean Parkinson
8489095057 Move ASN.1 APIs out to separate file: ssl_asn1.c
Implementations of ASN.1 APIs reworked.

Added tests.

Added wolfssl_bn_set_neg for ASN.1 code.
Added wolfssl_sk_new_type() and wolfssl_sk_pop_type() to generically
handle creating and popping a stack of elements of a type.

No longer freeing pathlen field of ASN1 OBJECT in
wolfSSL_X509_EXTENSION_free(). This is happening in
wolfSSL_ASN1_OBJECT_free().
Stop wolfSSL_i2d_X509_NAME_canon from double freeing ASN.1 STRING's data
field.

Fixed up GetFormattedTime() to be better code.
Added ASN_CLASS_MASK to mask off the class part of an ASN.1 tag.
NO_ASN_TIME means no implementation to get the current time. Disable
features that won'r work without time.
2023-03-31 09:36:01 +10:00
Chris Conlon
7fae945ee6 Merge pull request #6214 from miyazakh/altname_next_reset 2023-03-30 16:58:09 -06:00
Juliusz Sosinowicz
9120712438 Address code review 2023-03-30 15:35:52 +02:00
Juliusz Sosinowicz
4a75d78682 Add flags to disable certain checks 2023-03-29 14:22:31 +02:00
Juliusz Sosinowicz
7116f1e005 Add comment. 2023-03-28 14:14:40 +02:00
Juliusz Sosinowicz
f0ad01f552 Send secure renegotiation extension by default
- Add test for terminating the connection
- Add ProcessReplyEx(ssl, 1) to wolfSSL_accept
2023-03-28 12:43:53 +02:00
Lealem Amedie
591089664d Fixes for sniffer with enable all 2023-03-27 16:37:14 -06:00
Chris Conlon
496a15037b Merge pull request #6166 from TakayukiMatsuo/tsip117 2023-03-27 11:49:18 -06:00
JacobBarthelmeh
e0e590f126 Merge pull request #6223 from lealem47/misc_fixes
Async build typos and miscellaneous fixes
2023-03-23 23:55:20 +07:00
David Garske
aeffe6cfa7 Merge pull request #6222 from JacobBarthelmeh/alerts
don't try to send an alert to a disconnected peer
2023-03-23 09:49:15 -07:00
JacobBarthelmeh
e9214e07cf Merge pull request #6219 from RSmatRA/RSmatRA/zeroing-input-buffer
Do not ForceZero the part of the buffer that has not been used.
2023-03-23 21:13:37 +07:00
Sean Parkinson
d1e4349661 MemZero check fixes
ForceZero the client and server secret regardless of whether TLS 1.3 as
it may change but have been copied in.
ForceZero the input buffer in wolfSSL_Clear() when encryption was on.

Changed wc_PRF_TLS to only check the parts of data used.
Changed where scatch is added for checking in wc_AesCtrEncrypt.
Change wc_MakeRsaKey to memset p, q, tmp1, tmp2 and tmp3 to all zeros so
that MemZero check works. Memset not needed otherwise.
Changes for new compiler - thinks uninitialized.
2023-03-23 12:27:38 +10:00
Lealem Amedie
a31ca24bb0 Fix for async build with enable all 2023-03-22 17:30:38 -06:00
JacobBarthelmeh
7734588669 don't try to send an alert to a disconnected peer 2023-03-22 14:20:07 -07:00
JacobBarthelmeh
c11f5d0ee5 fixes for static analysis reports 2023-03-22 12:34:37 -07:00
JacobBarthelmeh
7e8d027a17 Merge pull request #6217 from douzzer/20230321-fixes
20230321-fixes
2023-03-22 10:23:07 -06:00
Radim Smat
e618bb9686 Do not ForceZero the part of the buffer that has not been used. 2023-03-22 14:48:18 +01:00
Daniel Pouzzner
49cd3ff872 wolfssl/internal.h: fixes for -Wpedantic "redefinition of typedef" around typedef ... TLSX and Options;
src/internal.c: fix for -Wdeclaration-after-statement and clang-diagnostic-unreachable-code-break;

tests/api.c: fix for -Wunused-variable and clang-analyzer-deadcode.DeadStores;

olfcrypt/src/pkcs12.c: fixes for cppcheck uselessAssignmentPtrArg and arrayIndexThenCheck, and clang-tidy clang-analyzer-deadcode.DeadStores and clang-analyzer-core.NonNullParamChecker;

wolfssl/src/tls.c: fix for clang-analyzer-deadcode.DeadStores;

wolfcrypt/src/tfm.c: fix for clang-diagnostic-newline-eof;

src/tls13.c: fix for clang-analyzer-core.NonNullParamChecker.
2023-03-21 22:52:56 -05:00
JacobBarthelmeh
147395476f Merge pull request #6213 from SparkiDev/regression_fixes_6
Regression testing fixes
2023-03-21 20:17:30 -06:00
Hideki Miyazaki
51040b1f07 reset alt name list to head 2023-03-22 10:31:58 +09:00
Sean Parkinson
9ec742b11f Regression testing fixes
HAVE_ECH only used by TLS 1.3 add protection around all code.
ssl->options.onlyPskDheKe only available when HAVE_SUPPORTED_CURVES.
CleanupClientTickets() defined when HAVE_SUPPORTED_CURVES.
TLSX_KeyShare_DeriveSecret only defined when HAVE_SUPPORTED_CURVES.
DecodeResponseData - initialize variable single.
New OpenSSL compatibility BN code requires mp_read_radix - turn on in
integer.c, sp_int.c when OPENSSL_EXTRA defined.
rsa.c:_CheckProbablePrime - make sure tmp1 and tmp2 are initialized
before error handling jumps to freeing them.

test_remove_hs_message uses 1024-bit DH key which is not supported when
using SP math with SP.
2023-03-22 08:57:20 +10:00
JacobBarthelmeh
2af55903c5 Merge pull request #6187 from SparkiDev/tls13_server_id
Server ID - long id, TLS 1.3 - cache client session for tickets
2023-03-21 16:48:05 -06:00
Sean Parkinson
17e20b8c36 Server ID - long id, TLS 1.3 - cache client session for tickets
Long server IDs were being truncated. Hash long IDs instead.
TLS 1.3 session ticket on client side no longer added session to client
cache. Explicit call added.
2023-03-21 15:29:07 +10:00
TakayukiMatsuo
7d2a9136b6 Add support for TSIP v1.17 2023-03-21 11:28:07 +09:00
Marco Oliverio
84d8245e58 internal: move SendAlerts outside of GetRecordHeader
This will give a chance to DTLS logic to ignore an error.
2023-03-20 10:50:00 +00:00
Marco Oliverio
aabd665e73 SendAlert: propagate return error in non-fatal SendAlert 2023-03-20 10:50:00 +00:00
JacobBarthelmeh
327692b09f Merge pull request #6200 from kareem-wolfssl/zd15324_2
Fix IAR warnings.
2023-03-17 15:04:35 -06:00
JacobBarthelmeh
9c3cfab328 Merge pull request #6196 from bandi13/zd15783
OCSP_CERT_UNKNOWN
2023-03-17 14:33:57 -06:00
JacobBarthelmeh
06d970c999 Merge pull request #6181 from kareem-wolfssl/zd15767
Fix not ignoring date errors when VERIFY_SKIP_DATE is set
2023-03-17 10:53:41 -06:00
Kareem
5126dc87e6 Fix IAR warnings. 2023-03-16 15:46:41 -07:00
Kareem
cc51b2d52e Add additional fix for absolute URN issue from PR #5964 and add test. 2023-03-16 14:56:44 -07:00
JacobBarthelmeh
fb6f2d1790 cast on input of XISALNUM 2023-03-15 15:43:28 -07:00
Andras Fekete
69024d121f Revert change 2023-03-15 10:16:34 -04:00
Andras Fekete
682354628b Better return value 2023-03-15 09:58:39 -04:00
Andras Fekete
1967375ea5 Pass up the error 2023-03-14 18:11:00 -04:00
Andras Fekete
c6e7ea685e Add in CERT_UNKNOWN detection 2023-03-14 18:09:45 -04:00
Sean Parkinson
a268222167 Merge pull request #6169 from rizlik/wssl-alerts
Wssl alerts
2023-03-15 07:48:57 +10:00
Marco Oliverio
4227f763a8 ssl: send alert on bad psk 2023-03-14 09:27:19 +00:00
Marco Oliverio
7b53baea62 refactor: more centralized extra alerts
on handshake messages' errors:

- don't send alerts on WANT_READ, WANT_WRITE and WC_PENDING_E "errors"
- use return error code to decide which alert description
  to send
- use alert description handshake_failure in the general case
- if a fatal alert was already sent, do not send any new alerts. This allow
  a more specific alert description in case the exact description can't be
  derived from the return code
2023-03-14 09:27:18 +00:00
Marco Oliverio
f666a7d4b7 internal.c: fix fall_through compilation issues
src/internal.c: In function 'SendCertificateVerify':
./wolfssl/wolfcrypt/types.h:345:40: error: attribute 'fallthrough' not preceding a case label or default label [-Werror]
  345 |                 #define FALL_THROUGH ; __attribute__ ((fallthrough))

In file included from ./wolfssl/internal.h:27,
                 from src/internal.c:92:
src/internal.c: In function 'SendCertificateVerify':
./wolfssl/wolfcrypt/types.h:345:40: error: attribute 'fallthrough' not preceding a case label or default label [-Werror]
  345 |                 #define FALL_THROUGH ; __attribute__ ((fallthrough))
2023-03-14 09:27:18 +00:00
JacobBarthelmeh
d7cd7bc256 adjust guards around PreSharedKey structure for non tls13 builds 2023-03-13 14:47:25 -07:00
Juliusz Sosinowicz
4c7aa5c8dd Address code review 2023-03-09 19:00:25 +01:00
Juliusz Sosinowicz
335722c586 Async fixes 2023-03-07 12:04:54 +01:00