Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v6.1.0 #687

Merged
merged 56 commits into from
Jan 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
152728f
Contectivity->Connectivity
Oct 22, 2023
cf4d767
Handle errors in OCSPResponse json validation
FestiveKyle Apr 11, 2024
dd7e3b8
Small doc fix: tls_wrapped_protocol->tls_opportunistic_encryption
mxsasha Jan 23, 2024
7c38a4e
Add support for custom SMTP EHLO hostname
mxsasha Jan 23, 2024
9d07c22
Support pydantic v2.7
Jun 7, 2024
bddced6
Refactor Containerfile
Proto1337 Jun 14, 2024
0ad77c1
Merge pull request #653 from jvandermey/#652-pydantic-2_7
nabla-c0d3 Jun 23, 2024
1b2e3f8
Merge pull request #647 from FestiveKyle/handle-ocsp-json-validation
nabla-c0d3 Jun 23, 2024
86f49ad
Merge pull request #626 from dipsylala/Minor-spelling-issue
nabla-c0d3 Jun 23, 2024
3730719
Build: add linux/arm64 to docker build workflow (#648)
gostega Jun 24, 2024
6a8d48f
Handle certificate unknown error
SG420 Aug 1, 2024
f262aa8
Make sensitivity of is_vulnerable_to_client_renegotiation_dos configu…
mxsasha Aug 20, 2024
e9cd72d
Add support for custom HTTP user agent
mxsasha Apr 2, 2024
01ca04d
Switch to smtplib.SMTP for more compliant SMTP handling
mxsasha Oct 8, 2024
fca777b
Add tracking of session renegotiation successs count and test
mxsasha Oct 8, 2024
ab27cc4
Load CA bundle as bytes, not text
yrro Nov 1, 2024
1222566
#672-fix-type-issue-while-handling-network-exception-option-2
msecrfe Nov 2, 2024
5a2e0fd
Merge pull request #671 from yrro/load-ca-bundle-as-bytes
nabla-c0d3 Dec 24, 2024
00f2ee7
Merge pull request #654 from Proto1337/release
nabla-c0d3 Dec 24, 2024
0a2f1ed
[#677][#652]Update dependencies
nabla-c0d3 Dec 26, 2024
b2c2209
[#668]Drop support for Python 3.8
nabla-c0d3 Dec 26, 2024
ccc143e
Update trust stores
nabla-c0d3 Dec 26, 2024
aadd18c
Merge pull request #674 from msecrfe/#672-fix-type-issue-while-handli…
nabla-c0d3 Dec 26, 2024
b8b8edb
Fix warning
nabla-c0d3 Dec 26, 2024
2c93794
[#681]Loosen version requirement on pydantic
nabla-c0d3 Dec 26, 2024
5130801
Merge pull request #655 from gostega/build/add-arm64-docker-build-to-…
nabla-c0d3 Dec 26, 2024
9c75f12
Merge pull request #644 from mxsasha/http-user-agent
nabla-c0d3 Dec 26, 2024
071ea31
Reject invalid ServerNetworkConfiguration and update HTTP user agent
nabla-c0d3 Dec 26, 2024
f9c3146
Fix workflow
nabla-c0d3 Dec 26, 2024
3e0015c
Merge branch 'smtp-improvements' of https://github.com/mxsasha/sslyze…
nabla-c0d3 Dec 26, 2024
2557fa7
Refactor SMTP logic
nabla-c0d3 Dec 26, 2024
8d256ce
Fix import
nabla-c0d3 Dec 26, 2024
f0976a4
Fix typing
nabla-c0d3 Dec 26, 2024
49ee6ed
Merge pull request #682 from nabla-c0d3/mxsasha-smtp-improvements
nabla-c0d3 Dec 26, 2024
5feec98
Re-enable Mozilla check for TLS curves
nabla-c0d3 Dec 27, 2024
8a22a65
Clarify output for multiple cert deployments
nabla-c0d3 Dec 27, 2024
964c5d4
[#683]Implement Mozilla HSTS check but disable it
nabla-c0d3 Dec 27, 2024
7fd482c
Fix cryptography warnings
nabla-c0d3 Dec 27, 2024
a0ec707
Merge pull request #661 from mxsasha/configurable-renegotiation-limit
nabla-c0d3 Dec 27, 2024
386eb93
[#675]Fix --certinfo when using an IPv6 server string
nabla-c0d3 Jan 2, 2025
90e88f3
Fix linting and cryptography compatibility
nabla-c0d3 Jan 2, 2025
aec8a6d
[#680]Plugin for Extended Master Secret support
nabla-c0d3 Jan 3, 2025
bb5ce43
Merge pull request #684 from nabla-c0d3/#680-plugin-for-ems-support
nabla-c0d3 Jan 3, 2025
7112e3d
Merge pull request #660 from SG420/release
nabla-c0d3 Jan 3, 2025
73f235a
Fix tests, warnings and linting
nabla-c0d3 Jan 3, 2025
6e1e213
Fix crash
nabla-c0d3 Jan 3, 2025
dc55efe
Try to fix IPv6 test
nabla-c0d3 Jan 3, 2025
bae4c56
Update trust stores
nabla-c0d3 Jan 3, 2025
2ecc2c1
Bump version number
nabla-c0d3 Jan 3, 2025
0cf1e46
Update documentation
nabla-c0d3 Jan 3, 2025
657d190
Re-generate documentation
nabla-c0d3 Jan 3, 2025
dc0ed52
Update JSON output
nabla-c0d3 Jan 3, 2025
863fa05
Re-generate JSON output schema
nabla-c0d3 Jan 3, 2025
79377bf
Fix JSON output
nabla-c0d3 Jan 3, 2025
b74dba2
[#668]Enable Python 3.13 in CI
nabla-c0d3 Jan 3, 2025
bfaeaf0
Fix test
nabla-c0d3 Jan 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
**/__pycache__
/tests
/docs
/.github
/.github
/.git
2 changes: 1 addition & 1 deletion .github/workflows/build_windows_exe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ jobs:
- name: Build Windows executable
run: python setup.py build_exe

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
with:
path: ./build/*
2 changes: 1 addition & 1 deletion .github/workflows/release_to_docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
with:
context: ./
file: ./Dockerfile
platforms: linux/amd64
platforms: linux/amd64, linux/arm64
push: true
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
4 changes: 2 additions & 2 deletions .github/workflows/run_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]

steps:
- uses: actions/checkout@v4
Expand All @@ -34,7 +34,7 @@ jobs:

- name: Run linters
# Only do linting once
if: matrix.python-version == 3.8
if: matrix.python-version == 3.9
run: python -m invoke lint

- name: Run tests
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/run_tests_with_lowest_pydantic_version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: 3.9

- name: Install sslyze dependencies
run: |
python -m pip install --upgrade pip setuptools
python -m pip install -e .

- name: Install pydantic 2.2
run: python -m pip install "pydantic==2.2"
- name: Install pydantic 2.3
run: python -m pip install "pydantic==2.3"

- name: Install dev dependencies
run: python -m pip install -r requirements-dev.txt
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scan_apache2_server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: 3.9

- name: Install Apache2
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scan_iis_server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: 3.9

- name: Install IIS
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scan_nginx_server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: 3.9

- name: Install Nginx
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_module_setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: 3.9

- name: Install pip
run: |
Expand Down
26 changes: 17 additions & 9 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
FROM python:3.9-slim
# set python version
ARG PYTHON_VERSION="3.12"

FROM docker.io/python:${PYTHON_VERSION}-slim AS build
COPY . /sslyze/
# install latest updates as root
RUN apt-get update \
&& apt-get install -y sudo
WORKDIR /sslyze
# use a venv
RUN python -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
# install sslyze based on sourcecode
RUN python -m pip install --upgrade pip setuptools wheel
RUN python /sslyze/setup.py install
RUN pip install --upgrade pip setuptools wheel
RUN pip install .

FROM docker.io/python:${PYTHON_VERSION}-slim AS run
# set user to a non-root user sslyze
RUN adduser --no-create-home --disabled-password --gecos "" --uid 1001 sslyze
USER sslyze
# restrict execution to sslyze
WORKDIR /sslyze
ENTRYPOINT ["python", "-m", "sslyze"]
CMD ["-h"]
# copy sslyze from build stage
COPY --from=build /opt/venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
ENTRYPOINT ["sslyze"]
CMD ["-h"]
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ $ python -m sslyze www.yahoo.com www.google.com "[2607:f8b0:400a:807::2004]:443"
It can also be used via Docker:

```
$ docker run --rm -it nablac0d3/sslyze:6.0.0 www.google.com
$ docker run --rm -it nablac0d3/sslyze:6.1.0 www.google.com
```

Lastly, a pre-compiled Windows executable can be downloaded from [the Releases
Expand Down Expand Up @@ -104,7 +104,7 @@ $ invoke test
License
-------

Copyright (c) 2024 Alban Diquet
Copyright (c) 2025 Alban Diquet

SSLyze is made available under the terms of the GNU Affero General Public License (AGPL). See LICENSE.txt for details and exceptions.

Expand Down
6 changes: 3 additions & 3 deletions api_sample.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from datetime import datetime
from datetime import datetime, timezone
from pathlib import Path
from typing import List

Expand All @@ -25,7 +25,7 @@ def _print_failed_scan_command_attempt(scan_command_attempt: ScanCommandAttempt)

def main() -> None:
print("=> Starting the scans")
date_scans_started = datetime.utcnow()
date_scans_started = datetime.now(timezone.utc)

# First create the scan requests for each server that we want to scan
try:
Expand Down Expand Up @@ -104,7 +104,7 @@ def main() -> None:
# Lastly, save the all the results to a JSON file
json_file_out = Path("api_sample_results.json")
print(f"\n\n=> Saving scan results to {json_file_out}")
example_json_result_output(json_file_out, all_server_scan_results, date_scans_started, datetime.utcnow())
example_json_result_output(json_file_out, all_server_scan_results, date_scans_started, datetime.now(timezone.utc))

# And ensure we are able to parse them
print(f"\n\n=> Parsing scan results from {json_file_out}")
Expand Down
12 changes: 11 additions & 1 deletion docs/available-scan-commands.rst
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,6 @@ Result class

.. autoclass:: HttpHeadersScanResult
.. autoclass:: StrictTransportSecurityHeader
.. autoclass:: ExpectCtHeader

OpenSSL CCS Injection
*********************
Expand All @@ -170,3 +169,14 @@ Result class
============

.. autoclass:: SessionRenegotiationScanResult


Extended Master Secret
**********************

**ScanCommand.TLS_EXTENDED_MASTER_SECRET**: Test a server for TLS Extended Master Secret extension support.

Result class
============

.. autoclass:: EmsExtensionScanResult
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
language = "en"

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
Expand Down
4 changes: 2 additions & 2 deletions docs/documentation/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: f71b8d947628f4c16f8ec17ec85934ab
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 094768c3cd394a7960733fba4a2e0033
tags: 645f666f9bcd5a90fca523b33c5a78b7
Loading
Loading