From c6d79d4ad31ecb3f895ea8e5aa424e8d4e31b369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szil=C3=A1rd=20Pfeiffer?= Date: Wed, 1 Jan 2025 19:20:02 +0100 Subject: [PATCH 1/7] chore!: Switch to pyproject.toml (#154) --- .flake8 | 2 + .gitignore | 7 +- .gitlab-ci.yml | 5 +- .pylintrc | 17 ++--- .readthedocs.yaml | 6 +- CONTRIBUTING.rst | 2 +- Dockerfile | 3 +- MANIFEST.in | 1 - cryptolyzer/__setup__.py | 16 +++-- dev-requirements.txt | 2 - docs-requirements.txt | 2 - pyproject.toml | 138 +++++++++++++++++++++++++++++++++++++++ requirements.txt | 11 ---- setup.py | 102 +---------------------------- submodules/cryptoparser | 2 +- tox.ini | 38 ----------- 16 files changed, 175 insertions(+), 179 deletions(-) create mode 100644 .flake8 delete mode 100644 dev-requirements.txt delete mode 100644 docs-requirements.txt create mode 100644 pyproject.toml delete mode 100644 requirements.txt delete mode 100644 tox.ini diff --git a/.flake8 b/.flake8 new file mode 100644 index 00000000..6deafc26 --- /dev/null +++ b/.flake8 @@ -0,0 +1,2 @@ +[flake8] +max-line-length = 120 diff --git a/.gitignore b/.gitignore index f173c7a9..cd73c23a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,11 +6,10 @@ *.pyc -.coverage -.idea -.mypy_cache +*.egg-info + +/.coverage -/*.egg-info /.eggs /.tox /Pipfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c3e25486..a99db09f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,7 @@ stages: before_script: - apt-get update && apt-get install --no-install-recommends -y git-core -- pip install -r dev-requirements.txt +- pip install tox .[tests] variables: GIT_SUBMODULE_DEPTH: 1 @@ -67,7 +67,8 @@ coveralls: stage: deploy script: - pip install coveralls - - pip install -r requirements.txt + - pip install . + - pip install .[tests] - coverage run -m unittest -v -f - coveralls only: diff --git a/.pylintrc b/.pylintrc index 4548a5d0..2618c9ba 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,10 +1,6 @@ -[BASIC] +[MAIN] -good-names = e,_,ip - -class-attribute-rgx = ([A-Za-z_][A-Za-z0-9_]{2,50}|(__.*__))$ -method-rgx = [a-z_][a-z0-9_]{2,50}$ -variable-rgx = [a-z_][a-z0-9_]{2,50}$ +jobs=0 [MASTER] @@ -12,8 +8,13 @@ load-plugins = pylint.extensions.no_self_use [FORMAT] -max-line-length = 120 +max-line-length=120 [MESSAGES CONTROL] -disable = missing-docstring,too-few-public-methods +disable= + missing-docstring, + too-few-public-methods, + too-many-function-args, + too-many-ancestors, + duplicate-code, diff --git a/.readthedocs.yaml b/.readthedocs.yaml index dc0fa1ea..a27f1e8a 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -11,5 +11,7 @@ build: python: install: - - requirements: docs-requirements.txt - - requirements: requirements.txt + - method: pip + path: . + extra_requirements: + - docs diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index aed27a07..67a2b0d6 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -143,7 +143,7 @@ Preparing your Fork 3. ``cd theproject`` 4. `Create and activate a virtual environment `__. -5. Install the development requirements: ``pip install -r dev-requirements.txt``. +5. Install the development requirements: ``pip install .[tests]``. 6. Create a branch: ``git checkout -b foo-the-bars 1.3``. Making your Changes diff --git a/Dockerfile b/Dockerfile index 46a7466f..27877712 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,8 @@ ADD . /usr/src/cryptolyzer RUN apt-get update && apt-get install --no-install-recommends -y git-core \ && pip3 install --no-cache-dir /usr/src/cryptolyzer \ - && pip3 install --no-cache-dir --force-reinstall /usr/src/cryptolyzer/submodules/cryptoparser + && pip3 install --no-cache-dir --force-reinstall /usr/src/cryptolyzer/submodules/cryptoparser \ + && pip3 install --no-cache-dir --force-reinstall /usr/src/cryptolyzer/submodules/cryptoparser/submodules/cryptodatahub USER nobody diff --git a/MANIFEST.in b/MANIFEST.in index bb73d962..bb37a272 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1 @@ include *.rst -include requirements.txt diff --git a/cryptolyzer/__setup__.py b/cryptolyzer/__setup__.py index 80ad049b..b39bc2d2 100644 --- a/cryptolyzer/__setup__.py +++ b/cryptolyzer/__setup__.py @@ -1,10 +1,14 @@ # -*- coding: utf-8 -*- -__title__ = 'CryptoLyzer' +import importlib.metadata + +metadata = importlib.metadata.metadata('cryptolyzer') + +__title__ = metadata['Name'] __technical_name__ = __title__.lower() -__version__ = '0.12.6' -__description__ = 'A comprehensive cryptographic settings analyzer' -__author__ = 'Szilárd Pfeiffer' -__author_email__ = 'coroner@pfeifferszilard.hu' +__version__ = metadata['Version'] +__description__ = metadata['Summary'] +__author__ = metadata['Author'] +__author_email__ = metadata['Author-email'] __url__ = 'https://gitlab.com/coroner/' + __technical_name__ -__license__ = 'MPL-2.0' +__license__ = metadata['License'] diff --git a/dev-requirements.txt b/dev-requirements.txt deleted file mode 100644 index 01a14148..00000000 --- a/dev-requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -tox -coverage diff --git a/docs-requirements.txt b/docs-requirements.txt deleted file mode 100644 index 8f314218..00000000 --- a/docs-requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -sphinx -sphinx-sitemap diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..1c8a6f63 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,138 @@ +[build-system] +requires = ['setuptools', 'setuptools-scm'] +build-backend = 'setuptools.build_meta' + +[project] +name = 'CryptoLyzer' +version = '0.12.6' +description = 'A comprehensive cryptographic settings analyzer' +authors = [ + {name = 'Szilárd Pfeiffer', email = 'coroner@pfeifferszilard.hu'} +] +maintainers = [ + {name = 'Szilárd Pfeiffer', email = 'coroner@pfeifferszilard.hu'} +] +classifiers=[ + 'Development Status :: 4 - Beta', + 'Environment :: Console', + 'Framework :: tox', + 'Intended Audience :: Developers', + 'Intended Audience :: Information Technology', + 'Intended Audience :: Science/Research', + 'Intended Audience :: System Administrators', + 'License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)', + 'Natural Language :: English', + 'Operating System :: MacOS', + 'Operating System :: Microsoft :: Windows', + 'Operating System :: POSIX', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', + 'Programming Language :: Python :: Implementation :: CPython', + 'Programming Language :: Python :: Implementation :: PyPy', + 'Programming Language :: Python', + 'Topic :: Internet', + 'Topic :: Internet :: File Transfer Protocol (FTP)', + 'Topic :: Internet :: XMPP', + 'Topic :: Security', + 'Topic :: Security :: Cryptography', + 'Topic :: Software Development :: Libraries :: Python Modules', + 'Topic :: Software Development :: Testing :: Traffic Generation', + 'Topic :: Software Development :: Testing', +] + +keywords = [ + 'ssl', + 'tls', + 'gost', + 'ja3', + 'hassh', + 'https', + 'pop3', + 'smtp', + 'imap', + 'ftp', + 'rdp', + 'xmpp', + 'jabber', + 'ldap', + 'sieve', + 'ssh', + 'hsts', + 'dnssec', +] +readme = {file = 'README.rst', content-type = 'text/x-rst'} +license = {text = 'MPL-2.0'} + +dependencies = [ + 'oscrypto @ git+https://github.com/wbond/oscrypto.git@d5f3437', + 'attrs', + 'bs4', + 'certvalidator', + 'colorama', + 'cryptoparser==0.12.6', + 'pyfakefs', + 'python-dateutil', + 'requests', + 'dnspython', + 'urllib3', +] + +[project.optional-dependencies] +tests = [ + 'pyfakefs', +] +docs = [ + 'sphinx', + 'sphinx-sitemap', +] + +[project.scripts] +cryptolyze = 'cryptolyzer.__main__:main' + +[project.urls] +Homepage = 'https://gitlab.com/coroner/cryptolyzer' +Changelog = 'https://cryptolyzer.readthedocs.io/en/latest/changelog' +Documentation = 'https://cryptolyzer.readthedocs.io/en/latest/' +Issues = 'https://gitlab.com/coroner/cryptolyzer/-/issues' +Source = 'https://gitlab.com/coroner/cryptolyzer' + +[tool.variables] +technical_name = 'cryptolyzer' + +[tool.setuptools] +license-files = ['LICENSE.txt'] + +[tool.setuptools.packages.find] +exclude = ['submodules'] + +[tool.tox] +envlist = [ + 'pep8', + 'pylint', + 'pypy3', + 'py39', + 'py310', + 'py311', + 'py312', + 'py313', + 'pythonrc', +] + +[tool.tox.env_run_base] +deps = ['coverage', '.[tests]'] +commands = [ + ['coverage', 'erase'], + ['coverage', 'run', '-m', 'unittest', 'discover', '-v'], + ['coverage', 'report'] +] + +[tool.tox.env.pep8] +deps = ['flake8'] +commands = [['flake8', 'cryptolyzer', 'docs', 'test']] + +[tool.tox.env.pylint] +deps = ['pylint', '.[tests]'] +commands = [['pylint', '--rcfile', '.pylintrc', 'cryptolyzer', 'docs', 'test']] diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 4ba9b5fc..00000000 --- a/requirements.txt +++ /dev/null @@ -1,11 +0,0 @@ -oscrypto @ git+https://github.com/wbond/oscrypto.git@d5f3437 -attrs -bs4 -certvalidator -colorama -cryptoparser>=0.12.6 -pyfakefs -python-dateutil -requests -dnspython -urllib3 diff --git a/setup.py b/setup.py index 54eca686..5ec1dfbd 100644 --- a/setup.py +++ b/setup.py @@ -1,103 +1,5 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- -import codecs -import os -import unittest +import setuptools -from setuptools import setup - -from cryptolyzer import __setup__ - - -this_directory = os.getenv('REQUIREMENTS_DIR', '') -with open(os.path.join(this_directory, 'requirements.txt')) as f: - install_requirements = f.read().splitlines() -this_directory = os.path.abspath(os.path.dirname(__file__)) -with codecs.open(os.path.join(this_directory, 'README.rst'), encoding='utf-8') as f: - long_description = f.read() - - -def test_discover(): - test_loader = unittest.TestLoader() - test_suite = test_loader.discover('test', pattern='test_*.py') - return test_suite - - -setup( - name=__setup__.__title__, - version=__setup__.__version__, - description=__setup__.__description__, - long_description=long_description, - long_description_content_type='text/x-rst', - author=__setup__.__author__, - author_email=__setup__.__author_email__, - maintainer=__setup__.__author__, - maintainer_email=__setup__.__author_email__, - license=__setup__.__license__, - license_files=['LICENSE.txt', ], - project_urls={ - 'Homepage': __setup__.__url__, - 'Changelog': 'https://' + __setup__.__technical_name__ + '.readthedocs.io/en/latest/changelog', - 'Documentation': 'https://' + __setup__.__technical_name__ + '.readthedocs.io/en/latest/', - 'Issues': __setup__.__url__ + '/-/issues', - 'Source': __setup__.__url__, - }, - keywords='ssl tls gost ja3 hassh https pop3 smtp imap ftp rdp xmpp jabber ldap sieve ssh hsts dnssec', - entry_points={ - 'console_scripts': [ - 'cryptolyze = cryptolyzer.__main__:main', - 'handshake_to_json = tools.tls_client.__main__:main' - ] - }, - install_requires=install_requirements, - extras_require={ - "test": ["coverage", ], - "pep8": ["flake8", ], - "pylint": ["pylint", ], - }, - - packages=[ - 'cryptolyzer', - 'cryptolyzer.common', - 'cryptolyzer.dnsrec', - 'cryptolyzer.hassh', - 'cryptolyzer.httpx', - 'cryptolyzer.ja3', - 'cryptolyzer.ssh', - 'cryptolyzer.tls', - ], - - test_suite='setup.test_discover', - - classifiers=[ - 'Development Status :: 4 - Beta', - 'Environment :: Console', - 'Framework :: tox', - 'Intended Audience :: Developers', - 'Intended Audience :: Information Technology', - 'Intended Audience :: Science/Research', - 'Intended Audience :: System Administrators', - 'License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)', - 'Natural Language :: English', - 'Operating System :: MacOS', - 'Operating System :: Microsoft :: Windows', - 'Operating System :: POSIX', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - 'Programming Language :: Python :: 3.12', - 'Programming Language :: Python :: 3.13', - 'Programming Language :: Python :: Implementation :: CPython', - 'Programming Language :: Python :: Implementation :: PyPy', - 'Programming Language :: Python', - 'Topic :: Internet', - 'Topic :: Internet :: File Transfer Protocol (FTP)', - 'Topic :: Internet :: XMPP', - 'Topic :: Security', - 'Topic :: Security :: Cryptography', - 'Topic :: Software Development :: Libraries :: Python Modules', - 'Topic :: Software Development :: Testing :: Traffic Generation', - 'Topic :: Software Development :: Testing', - ], -) +setuptools.setup() diff --git a/submodules/cryptoparser b/submodules/cryptoparser index feac42f9..d74fbe3a 160000 --- a/submodules/cryptoparser +++ b/submodules/cryptoparser @@ -1 +1 @@ -Subproject commit feac42f90af613e4fa64ef476ca75d4740c0bcb3 +Subproject commit d74fbe3acd1a183a6736ddc823aeb27908662787 diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 243bc6f6..00000000 --- a/tox.ini +++ /dev/null @@ -1,38 +0,0 @@ -[metadata] -description-file = README.rst - -[tox] -envlist = - py{39,310,311,312,313} - pypy3 - pep8 - pylint - -[testenv] -extras = - test -setenv = - PYTHONPATH = {toxinidir}/submodules/cryptoparser:{toxinidir}/submodules/cryptoparser/submodules/cryptodatahub - REQUIREMENTS_DIR = {toxinidir} -commands = - coverage erase - coverage run -m unittest discover -v - coverage report -deps = - -rrequirements.txt - -rdev-requirements.txt - -[testenv:pep8] -extras = - pep8 -commands = - flake8 {posargs} cryptolyzer docs test tools - -[testenv:pylint] -extras = - pylint -commands = - pylint -j0 -rn --disable=duplicate-code,consider-using-f-string --rcfile=.pylintrc cryptolyzer docs test tools - -[flake8] -max-line-length = 120 -- GitLab From d8bfdf970fb1b53f27d7b1daffdc6fdc278ebfb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szil=C3=A1rd=20Pfeiffer?= Date: Tue, 7 Jan 2025 22:41:07 +0100 Subject: [PATCH 2/7] test: Follow the configuration of servers used to test --- test/tls/test_all.py | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/test/tls/test_all.py b/test/tls/test_all.py index c1121dcc..3a1b7fe3 100644 --- a/test/tls/test_all.py +++ b/test/tls/test_all.py @@ -161,7 +161,7 @@ class TestTlsAll(TestTlsCases.TestTlsBase): ]) self.assertNotEqual(result.dhparams.dhparam, None) - result = self.get_result('tls13.1d.pw', 443) + result = self.get_result('comodo.com', 443) self.assertTrue(all(map( lambda version: version > TlsProtocolVersion(TlsVersion.TLS1_2), result.versions.versions ))) @@ -170,18 +170,8 @@ class TestTlsAll(TestTlsCases.TestTlsBase): TlsCipherSuite.TLS_AES_256_GCM_SHA384, TlsCipherSuite.TLS_CHACHA20_POLY1305_SHA256, ])) - self.assertEqual(result.dhparams.groups, [TlsNamedCurve.FFDHE3072,]) - self.assertEqual(result.dhparams.dhparam, None) - self.assertEqual(set(result.curves.curves), set([ - TlsNamedCurve.SECP256R1, - TlsNamedCurve.SECP256R1_KYBER_768_R3, - TlsNamedCurve.SECP384R1, - TlsNamedCurve.SECP384R1_KYBER_768_R3, - TlsNamedCurve.SECP521R1, - TlsNamedCurve.X25519, - TlsNamedCurve.X25519_KYBER_768_R3, - TlsNamedCurve.X25519_ML_KEM_768, - ])) + self.assertEqual(result.dhparams, None) + self.assertEqual(set(result.curves.curves), set([TlsNamedCurve.SECP256R1, TlsNamedCurve.X25519])) result = self.get_result('pq.cloudflareresearch.com', 443) self.assertTrue(all(map( -- GitLab From b5d1fe37f0daac303f9b70f4a19fdcf8d3d8cc32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szil=C3=A1rd=20Pfeiffer?= Date: Fri, 10 Jan 2025 16:03:20 +0100 Subject: [PATCH 3/7] test: Follow the configuration of servers used to test --- test/tls/test_all.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/test/tls/test_all.py b/test/tls/test_all.py index 3a1b7fe3..29ff29a5 100644 --- a/test/tls/test_all.py +++ b/test/tls/test_all.py @@ -161,7 +161,7 @@ class TestTlsAll(TestTlsCases.TestTlsBase): ]) self.assertNotEqual(result.dhparams.dhparam, None) - result = self.get_result('comodo.com', 443) + result = self.get_result('xenproject.org', 443) self.assertTrue(all(map( lambda version: version > TlsProtocolVersion(TlsVersion.TLS1_2), result.versions.versions ))) @@ -170,8 +170,21 @@ class TestTlsAll(TestTlsCases.TestTlsBase): TlsCipherSuite.TLS_AES_256_GCM_SHA384, TlsCipherSuite.TLS_CHACHA20_POLY1305_SHA256, ])) - self.assertEqual(result.dhparams, None) - self.assertEqual(set(result.curves.curves), set([TlsNamedCurve.SECP256R1, TlsNamedCurve.X25519])) + self.assertEqual(result.dhparams.dhparam, None) + self.assertEqual(result.dhparams.groups, [ + TlsNamedCurve.FFDHE2048, + TlsNamedCurve.FFDHE3072, + TlsNamedCurve.FFDHE4096, + TlsNamedCurve.FFDHE6144, + TlsNamedCurve.FFDHE8192 + ]) + self.assertEqual(set(result.curves.curves), set([ + TlsNamedCurve.X25519, + TlsNamedCurve.SECP256R1, + TlsNamedCurve.X448, + TlsNamedCurve.SECP521R1, + TlsNamedCurve.SECP384R1, + ])) result = self.get_result('pq.cloudflareresearch.com', 443) self.assertTrue(all(map( -- GitLab From 64d2f65db3bef848ff15b530b86a9377a2a61962 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szil=C3=A1rd=20Pfeiffer?= Date: Fri, 10 Jan 2025 16:59:57 +0100 Subject: [PATCH 4/7] fix(test)!: Increase connection timeout to make tests more stable --- test/tls/test_client.py | 4 ++-- test/tls/test_simulations.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/tls/test_client.py b/test/tls/test_client.py index ce53805a..c8d94ab3 100644 --- a/test/tls/test_client.py +++ b/test/tls/test_client.py @@ -1175,7 +1175,7 @@ class TestClientOpenVpn(TestL7ClientBase): def test_openvpn_tcp_client(self): _, result = self.get_result( 'openvpntcp', 'gr1.vpnjantit.com', 992, - L4TransferSocketParams(timeout=5), analyzer=AnalyzerDHParams() + L4TransferSocketParams(timeout=10), analyzer=AnalyzerDHParams() ) self.assertEqual(result.dhparam.well_known, DHParamWellKnown.RFC2539_1024_BIT_MODP_GROUP) @@ -1201,7 +1201,7 @@ class TestClientOpenVpn(TestL7ClientBase): def test_openvpn_udp_client(self): _, result = self.get_result( 'openvpn', 'gr1.vpnjantit.com', 1194, - L4TransferSocketParams(timeout=10), analyzer=AnalyzerDHParams() + L4TransferSocketParams(timeout=15), analyzer=AnalyzerDHParams() ) self.assertEqual(result.dhparam.well_known, DHParamWellKnown.RFC2539_1024_BIT_MODP_GROUP) diff --git a/test/tls/test_simulations.py b/test/tls/test_simulations.py index 00a1427d..b3deac15 100644 --- a/test/tls/test_simulations.py +++ b/test/tls/test_simulations.py @@ -96,7 +96,7 @@ class TestTlsSimulations(TestLoggerBase): self.assertTrue(result) def test_dh_well_known(self): - result = self.get_result('kaspersky.com', 443) + result = self.get_result('kaspersky.com', 443, l4_socket_params=L4TransferSocketParams(timeout=10)) self.assertTrue(all( analyzer_result.cipher_suite.value.key_exchange in [KeyExchange.DHE, KeyExchange.ECDHE] for analyzer_result in result.succeeded_clients.values() -- GitLab From e8e06e9fe1cd6701d09804207378184b82a28174 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szil=C3=A1rd=20Pfeiffer?= Date: Sun, 5 Jan 2025 16:02:09 +0100 Subject: [PATCH 5/7] chore(release): Bump version number to 1.0.0 and update changelog --- CHANGELOG.rst | 12 ++++++++++++ pyproject.toml | 6 +++--- submodules/cryptoparser | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 6f317840..2dcf4880 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,18 @@ Changelog ========= +------------------- +1.0.0 - 2025-01-05 +------------------- + +Refactor +======== + +- Generic + + - Support only Python version greater or euqal than 3.9 + - Use pyproject.toml instead of setup.py + ------------------- 0.12.6 - 2024-12-08 ------------------- diff --git a/pyproject.toml b/pyproject.toml index 1c8a6f63..96a0fa89 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta' [project] name = 'CryptoLyzer' -version = '0.12.6' +version = '1.0.0' description = 'A comprehensive cryptographic settings analyzer' authors = [ {name = 'Szilárd Pfeiffer', email = 'coroner@pfeifferszilard.hu'} @@ -13,7 +13,7 @@ maintainers = [ {name = 'Szilárd Pfeiffer', email = 'coroner@pfeifferszilard.hu'} ] classifiers=[ - 'Development Status :: 4 - Beta', + 'Development Status :: 5 - Production/Stable', 'Environment :: Console', 'Framework :: tox', 'Intended Audience :: Developers', @@ -72,7 +72,7 @@ dependencies = [ 'bs4', 'certvalidator', 'colorama', - 'cryptoparser==0.12.6', + 'cryptoparser==1.0.0', 'pyfakefs', 'python-dateutil', 'requests', diff --git a/submodules/cryptoparser b/submodules/cryptoparser index d74fbe3a..fc7fa79d 160000 --- a/submodules/cryptoparser +++ b/submodules/cryptoparser @@ -1 +1 @@ -Subproject commit d74fbe3acd1a183a6736ddc823aeb27908662787 +Subproject commit fc7fa79da8cd251f56af4f25ceeac8f10586a2c7 -- GitLab From e86391de82de80b32ccb34ad683a2573fb2911b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szil=C3=A1rd=20Pfeiffer?= Date: Sun, 2 Mar 2025 12:51:26 +0100 Subject: [PATCH 6/7] fix(docs/features)!: Add missing PQC named curves --- docs/features.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/features.rst b/docs/features.rst index d4943270..38e3e4f0 100644 --- a/docs/features.rst +++ b/docs/features.rst @@ -142,7 +142,11 @@ Curves | ``KYBER_512_R3``, ``KYBER_768_R3``, ``KYBER_1024_R3``, | ``SECP256R1_KYBER_512_R3``, ``SECP256R1_KYBER_768_R3``, | ``SECP384R1_KYBER_768_R3``, ``SECP521R1_KYBER_1024_R3``, - | ``X25519_KYBER_512_R3``, ``X25519_KYBER_768_R3`` + | ``SECP256R1_ML_KEM_768``, + | ``X25519_KYBER_512_R3``, ``X25519_KYBER_768_R3``, + | ``X25519_KYBER_512_R3_CLOUDFLARE``, + | ``X25519_KYBER_768_R3_CLOUDFLARE``, + | ``X25519_ML_KEM_768`` Extensions """""""""" -- GitLab From 5ba89bc0bcc23fc7e8cd3eefb2d78b5a63f4fc66 Mon Sep 17 00:00:00 2001 From: Ivan Mincik Date: Wed, 17 Sep 2025 14:44:15 +0200 Subject: [PATCH 7/7] Fix directories exclude from package * correctly exclude submodules directory * also exclude docs directory --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 96a0fa89..a26ee257 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -106,7 +106,7 @@ technical_name = 'cryptolyzer' license-files = ['LICENSE.txt'] [tool.setuptools.packages.find] -exclude = ['submodules'] +exclude = ['submodules*', 'docs'] [tool.tox] envlist = [ -- GitLab