Commit Graph

4854 Commits

Author SHA1 Message Date
David Cooper
d1531cdf60 Support decrypting TLS 1.3 handshakes with PQ key exchange
This commit modifies testssl.sh so that TLS 1.3 handshakes that use post-quantum algorithms for key exchange can be decrypted, if $OPENSSL supports the algorithms.
2025-04-10 14:05:30 -07:00
Dirk Wetter
459ccee589 Merge pull request #2737 from dcooper16/tls13_pq_sigalg
Support ML-DSA server keys
2025-04-10 20:49:29 +02:00
David Cooper
ecaa7878e5 Support ML-DSA server keys
This commit adds support for server certificates that have ML-DSA pubilc keys. It also adds supports for certificates that are signed with ML-DSA or SLH-DSA. The ML-DSA code points for the signature_algorithms extension are taken from https://datatracker.ietf.org/doc/draft-tls-westerbaan-mldsa/ and are the ones used by OpenSSL 3.5.0.
2025-04-10 09:15:04 -07:00
Dirk Wetter
3fbceada58 Merge pull request #2736 from testssl/rm_krb
Remove KRB cipher info
2025-04-10 13:23:16 +02:00
Dirk
7b6a7d7ade Remove KRB cipher info 2025-04-10 13:22:09 +02:00
Dirk Wetter
04a592307a Merge pull request #2732 from dcooper16/supported_cuves_list
Get supported groups list from OpenSSL 3.5.0
2025-04-10 09:57:20 +02:00
Dirk Wetter
8b1339b29d Merge pull request #2734 from PeterDaveHello/FixDockerHubReadmeBadge
Fix Docker Hub badge in Readme.md
2025-04-09 18:51:08 +02:00
David Cooper
9f48c51dc7 Get supported groups list from OpenSSL 3.5.0
In OpenSSL 3.5.0 the `list` command can be used to obtain a list of supported groups for TLS. The commit makes use of this command when $OPENSSL is OpenSSL 3.5.0 or later. This should be faster than testing curves one at a time.
2025-04-09 09:21:54 -07:00
Dirk Wetter
bc0c9f9c4b Merge pull request #2733 from dcooper16/ossl35_client_sim
OpenSSL 3.5.0 client simulation
2025-04-09 10:46:20 +02:00
David Cooper
3a8038636d OpenSSL 3.5.0 client simulation
Add OpenSSL 3.5.0 to etc/client-simulation.txt.
2025-04-08 15:26:41 -07:00
Peter Dave Hello
be4aa6ec6c Fix Docker Hub badge in Readme.md 2025-04-07 05:08:59 +08:00
Dirk Wetter
06682990ba GHCR clearer 2025-04-06 20:29:18 +02:00
Dirk Wetter
f7f35fe4c6 Merge pull request #2729 from testssl/ghcr.io-doc
Add minimal doc for GHCR
2025-04-06 18:29:07 +02:00
Dirk Wetter
ac0419eaad Add minimal doc for GHCR 2025-04-06 18:27:37 +02:00
Dirk Wetter
b20add1d12 Merge pull request #2684 from testssl/new_binaries
Start working on a set of new binaries
2025-04-04 14:15:00 +02:00
Dirk Wetter
b7f9ff1bf2 Merge pull request #2727 from dcooper16/chacha20
ChaCha20 decryption
2025-04-04 11:54:05 +02:00
Dirk Wetter
be9a85c1f7 Merge pull request #2726 from dcooper16/fix_has_uds_checks
Fix checks with HAS_UDS and HAS_UDS2
2025-04-02 21:47:41 +02:00
David Cooper
f6ff390799 Fix checks with HAS_UDS and HAS_UDS2
This commit fixes a check where the Boolean variables $HAS_UDS and $HAS_UDS2 are checked for whether they are empty rather than for whether they are true.
2025-04-02 08:03:58 -07:00
David Cooper
e2accb6442 ChaCha20 decryption
Decryption is TLS 1.3 handshakes is very slow if the response is encrypted using ChaCha20 and the $OPENSSL enc command does not support ChaCha20. This commit mitigates that problem by using $OPENSSL2 for ChaCha20 decryption if such decryption is needed and $OPENSSL does not support it.

This commit also changes testssl.sh to make use of $OPENSSL2 for AES-GCM decryption, when $OPENSSL2 supports it, but $OPENSSL does not. However, this change is not as important. Implementing AES-GCM in Bash using $OPENSSL for AES ECB operations isn't nearly as slow as fully implementing ChaCha20 in Bash.
2025-04-02 07:55:31 -07:00
Dirk
672d253981 Fix typo 2025-04-01 18:58:12 +02:00
Dirk
b149fc4da4 Reorder, rephrase, timing
Also provide a runtime table, from a little research.
2025-04-01 15:24:40 +02:00
Dirk
45a264e4e4 Fix typo 2025-03-31 18:08:27 +02:00
Dirk
f55abf56af Add new 64 Bit binaries (Linux, FreeBSD)
... from https://github.com/testssl/openssl-1.0.2.bad .
2025-03-31 17:54:40 +02:00
Dirk
093e8ddd10 Remove redundant statements 2025-03-31 17:54:01 +02:00
Dirk Wetter
2dfd192f27 Typos / when needed 2025-03-30 19:59:23 +02:00
Dirk
3a414d60bf Comment the removal of binaries 2025-03-30 18:14:41 +02:00
Dirk
f208c09803 Rename file 2025-03-30 18:11:21 +02:00
Dirk
0e765986dc Remove output from openssl Kerberos binary
... as we don't supply the kerberos binary anymore
2025-03-30 18:08:58 +02:00
Dirk
1852ef6a1d Remove 32 Bit Linux binary
... as it is a niche thing. It might be available @ the contibuted
build directory @ https://testssl.sh
2025-03-30 18:06:58 +02:00
Dirk
5a1d90f310 Fix link 2025-03-28 18:33:14 +01:00
Dirk Wetter
a348839f60 Merge pull request #2720 from testssl/add_comment_get_server_cert
Comment the first lines get_server_certificate()
2025-03-25 21:56:32 +01:00
Dirk Wetter
040ef1e0c9 Comment the first lines get_server_certificate()
See https://github.com/testssl/testssl.sh/issues/2707#issuecomment-2741053487
2025-03-25 17:22:10 +01:00
Dirk Wetter
5359befc60 Merge pull request #2716 from testssl/sanitze_http_header_better
Sanitze HTTP header early and better
2025-03-20 15:44:28 +01:00
Dirk Wetter
a17bb42a37 Sanitze HTTP header early and better
On MacOS `run_http_header()` hiccuped when in any place of the web site unprintable chars were returned, see https://github.com/testssl/testssl.sh/issues/2708#issuecomment-2738347784 .

This PR fixes that by moving the sanitization to a separate function and run it earlier before any processing of the returned content (header plus body) takes place.

Output was:

```
'HTTP Status Code           awk: towc: multibyte conversion failure on: '� disabilitato");

 input record number 36, file /tmp/testssl.FHu8E0/AAA.BBB.CCC.DDD.http_header.txt
 source line number 1
'wk: towc: multibyte conversion failure on: '� disabilitato");

 input record number 36, file /tmp/testssl.FHu8E0/AAA.BBB.CCC.DDD.http_header.txt
 source line number 1
  200 OK
```
2025-03-20 13:34:46 +01:00
Dirk Wetter
692b9c9260 Merge pull request #2710 from testssl/fix_2708_TLS_FALLBACK_SCSV
Set POODLE var when exiting run_ssl_poodle()
2025-03-20 10:45:57 +01:00
Dirk Wetter
70dacdf9fa Merge pull request #2709 from testssl/nameopt_utf8_2705
Fix LibreSSL parsing (-nameopt utf8)
2025-03-19 23:41:47 +01:00
Dirk Wetter
e4bbd6b517 Set POODLE var when exiting run_ssl_poodle()
... so that run_tls_fallback_scsv() doesn't exit with a warning.

This fixes #2708 .
2025-03-19 23:30:06 +01:00
Dirk Wetter
8d8f83ace5 Fix LibreSSL parsing (-nameopt utf8)
When parsing the intermediate cerificates there was a parser problem when using
LibreSSL and not OpenSSL.

This PR fixes the issue #2705 and addresses the problem by using the -nameopt multiline command
of LibreSSL/OpenSSL .
2025-03-19 22:36:37 +01:00
Dirk Wetter
a43261fc6f Merge pull request #2703 from dcooper16/ocsp_check_rev_ossl_ver
OpenSSL version check in check_revocation_ocsp()
2025-03-18 13:04:23 +01:00
David Cooper
ebeb3e7b9d OpenSSL version check in check_revocation_ocsp()
The current code for setting $host_header in check_revocation_ocsp() will not work for LibreSSL 3.* or for upcoming versions of OpenSSL (version 4 or greater). The check will also not work correctly if $OPENSSL2 is used and $OPENSSL2 is not /usr/bin/openssl. This commit fixes these issues.
2025-03-17 08:53:19 -07:00
Dirk Wetter
0c64e09203 Merge pull request #2702 from testssl/dependabot/github_actions/docker/login-action-3.4.0
Bump docker/login-action from 3.3.0 to 3.4.0
2025-03-17 10:26:57 +01:00
dependabot[bot]
997646570e Bump docker/login-action from 3.3.0 to 3.4.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-17 01:00:40 +00:00
Dirk Wetter
87d57bbf2f Merge pull request #2700 from testssl/unitttest_revocation
Unit test revocation
2025-03-15 21:38:57 +01:00
Dirk
52476b8a46 Fix finger confusion ;-) 2025-03-15 17:27:28 +01:00
Dirk
c7e095305f Add unit test for certificate revocation
One positive, one negative

This should detect failures in the future like in #2667, #2516
and #1275 .
2025-03-15 17:24:22 +01:00
Dirk Wetter
2090bdc849 Merge pull request #2698 from testssl/fixDockerOcspCall
Fix --phone-out + ocsp, also in docker container
2025-03-15 17:11:52 +01:00
Dirk
633503cd17 Fix complaint wrt Lowercase "as" 2025-03-15 16:02:32 +01:00
Dirk
430c5c8d09 Fix --phone-out + ocsp, also in docker container
Previously in 4f1a91f92e there was a
double header sent to the server to check whether the certificate
was revoked.

This PR addresses that and fixes #2667 .
2025-03-15 15:58:28 +01:00
Dirk Wetter
098aa4ad8b Merge pull request #2697 from dcooper16/fix_ossl_version_check
Fix OpenSSL version check
2025-03-15 09:22:26 +01:00
David Cooper
ad8684d324 Fix OpenSSL version check
Before version 3.0.0, OpenSSL versions includes letters (e.g., 1.1.1w). Such version numbers confuse [[ ${OSSL_VER//./} -ge 210 ]]. Since this check is only needed for LibreSSL, this commit adds a conditional so that the check is only performed for LibreSSL.
2025-03-14 14:06:17 -07:00