├── .github └── workflows │ ├── ci.yml │ └── release-pypi.yml ├── .gitignore ├── LICENSE ├── README.md ├── assets ├── ML-DSA-keyGen-FIPS204 │ ├── expectedResults.json │ ├── internalProjection.json │ ├── prompt.json │ ├── registration.json │ └── validation.json ├── ML-DSA-sigGen-FIPS204 │ ├── expectedResults.json │ ├── internalProjection.json │ ├── prompt.json │ ├── registration.json │ └── validation.json ├── ML-DSA-sigVer-FIPS204 │ ├── expectedResults.json │ ├── internalProjection.json │ ├── prompt.json │ ├── registration.json │ └── validation.json ├── PQCsignKAT_Dilithium2.rsp ├── PQCsignKAT_Dilithium3.rsp └── PQCsignKAT_Dilithium5.rsp ├── benchmarks ├── benchmark_bit_packing.py ├── benchmark_dilithium.py └── benchmark_ml_dsa.py ├── pyproject.toml ├── pytest.ini ├── requirements.txt ├── src └── dilithium_py │ ├── __init__.py │ ├── dilithium │ ├── __init__.py │ ├── default_parameters.py │ └── dilithium.py │ ├── drbg │ ├── __init__.py │ └── aes256_ctr_drbg.py │ ├── ml_dsa │ ├── __init__.py │ ├── default_parameters.py │ ├── hash_ml_dsa.py │ ├── ml_dsa.py │ └── pkcs.py │ ├── modules │ ├── __init__.py │ ├── modules.py │ └── modules_generic.py │ ├── polynomials │ ├── __init__.py │ ├── polynomials.py │ └── polynomials_generic.py │ ├── shake │ └── shake_wrapper.py │ └── utilities │ ├── __init__.py │ └── utils.py └── tests ├── __init__.py ├── test_dilithium.py ├── test_drbg.py ├── test_hash_ml_dsa.py ├── test_ml_dsa.py ├── test_module_generic.py ├── test_pkcs.py ├── test_polynomial_generic.py ├── test_shake.py └── test_utils.py /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/release-pypi.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/.github/workflows/release-pypi.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/README.md -------------------------------------------------------------------------------- /assets/ML-DSA-keyGen-FIPS204/expectedResults.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-keyGen-FIPS204/expectedResults.json -------------------------------------------------------------------------------- /assets/ML-DSA-keyGen-FIPS204/internalProjection.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-keyGen-FIPS204/internalProjection.json -------------------------------------------------------------------------------- /assets/ML-DSA-keyGen-FIPS204/prompt.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-keyGen-FIPS204/prompt.json -------------------------------------------------------------------------------- /assets/ML-DSA-keyGen-FIPS204/registration.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-keyGen-FIPS204/registration.json -------------------------------------------------------------------------------- /assets/ML-DSA-keyGen-FIPS204/validation.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-keyGen-FIPS204/validation.json -------------------------------------------------------------------------------- /assets/ML-DSA-sigGen-FIPS204/expectedResults.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-sigGen-FIPS204/expectedResults.json -------------------------------------------------------------------------------- /assets/ML-DSA-sigGen-FIPS204/internalProjection.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-sigGen-FIPS204/internalProjection.json -------------------------------------------------------------------------------- /assets/ML-DSA-sigGen-FIPS204/prompt.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-sigGen-FIPS204/prompt.json -------------------------------------------------------------------------------- /assets/ML-DSA-sigGen-FIPS204/registration.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-sigGen-FIPS204/registration.json -------------------------------------------------------------------------------- /assets/ML-DSA-sigGen-FIPS204/validation.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-sigGen-FIPS204/validation.json -------------------------------------------------------------------------------- /assets/ML-DSA-sigVer-FIPS204/expectedResults.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-sigVer-FIPS204/expectedResults.json -------------------------------------------------------------------------------- /assets/ML-DSA-sigVer-FIPS204/internalProjection.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-sigVer-FIPS204/internalProjection.json -------------------------------------------------------------------------------- /assets/ML-DSA-sigVer-FIPS204/prompt.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-sigVer-FIPS204/prompt.json -------------------------------------------------------------------------------- /assets/ML-DSA-sigVer-FIPS204/registration.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-sigVer-FIPS204/registration.json -------------------------------------------------------------------------------- /assets/ML-DSA-sigVer-FIPS204/validation.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/ML-DSA-sigVer-FIPS204/validation.json -------------------------------------------------------------------------------- /assets/PQCsignKAT_Dilithium2.rsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/PQCsignKAT_Dilithium2.rsp -------------------------------------------------------------------------------- /assets/PQCsignKAT_Dilithium3.rsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/PQCsignKAT_Dilithium3.rsp -------------------------------------------------------------------------------- /assets/PQCsignKAT_Dilithium5.rsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/assets/PQCsignKAT_Dilithium5.rsp -------------------------------------------------------------------------------- /benchmarks/benchmark_bit_packing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/benchmarks/benchmark_bit_packing.py -------------------------------------------------------------------------------- /benchmarks/benchmark_dilithium.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/benchmarks/benchmark_dilithium.py -------------------------------------------------------------------------------- /benchmarks/benchmark_ml_dsa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/benchmarks/benchmark_ml_dsa.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/pyproject.toml -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | pythonpath = src 3 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pycryptodome == 3.14.1 2 | xoflib 3 | -------------------------------------------------------------------------------- /src/dilithium_py/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/dilithium_py/dilithium/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/dilithium/__init__.py -------------------------------------------------------------------------------- /src/dilithium_py/dilithium/default_parameters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/dilithium/default_parameters.py -------------------------------------------------------------------------------- /src/dilithium_py/dilithium/dilithium.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/dilithium/dilithium.py -------------------------------------------------------------------------------- /src/dilithium_py/drbg/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/dilithium_py/drbg/aes256_ctr_drbg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/drbg/aes256_ctr_drbg.py -------------------------------------------------------------------------------- /src/dilithium_py/ml_dsa/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/ml_dsa/__init__.py -------------------------------------------------------------------------------- /src/dilithium_py/ml_dsa/default_parameters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/ml_dsa/default_parameters.py -------------------------------------------------------------------------------- /src/dilithium_py/ml_dsa/hash_ml_dsa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/ml_dsa/hash_ml_dsa.py -------------------------------------------------------------------------------- /src/dilithium_py/ml_dsa/ml_dsa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/ml_dsa/ml_dsa.py -------------------------------------------------------------------------------- /src/dilithium_py/ml_dsa/pkcs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/ml_dsa/pkcs.py -------------------------------------------------------------------------------- /src/dilithium_py/modules/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/dilithium_py/modules/modules.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/modules/modules.py -------------------------------------------------------------------------------- /src/dilithium_py/modules/modules_generic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/modules/modules_generic.py -------------------------------------------------------------------------------- /src/dilithium_py/polynomials/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/dilithium_py/polynomials/polynomials.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/polynomials/polynomials.py -------------------------------------------------------------------------------- /src/dilithium_py/polynomials/polynomials_generic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/polynomials/polynomials_generic.py -------------------------------------------------------------------------------- /src/dilithium_py/shake/shake_wrapper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/shake/shake_wrapper.py -------------------------------------------------------------------------------- /src/dilithium_py/utilities/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/dilithium_py/utilities/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/src/dilithium_py/utilities/utils.py -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_dilithium.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/tests/test_dilithium.py -------------------------------------------------------------------------------- /tests/test_drbg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/tests/test_drbg.py -------------------------------------------------------------------------------- /tests/test_hash_ml_dsa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/tests/test_hash_ml_dsa.py -------------------------------------------------------------------------------- /tests/test_ml_dsa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/tests/test_ml_dsa.py -------------------------------------------------------------------------------- /tests/test_module_generic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/tests/test_module_generic.py -------------------------------------------------------------------------------- /tests/test_pkcs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/tests/test_pkcs.py -------------------------------------------------------------------------------- /tests/test_polynomial_generic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/tests/test_polynomial_generic.py -------------------------------------------------------------------------------- /tests/test_shake.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/tests/test_shake.py -------------------------------------------------------------------------------- /tests/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GiacomoPope/dilithium-py/HEAD/tests/test_utils.py --------------------------------------------------------------------------------