Skip to content

Commit 5ddd8cc

Browse files
committed
Added 2 new key exchanges: mlkem768nistp256-sha256, mlkem1024nistp384-sha384.
1 parent b90db2c commit 5ddd8cc

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ For convenience, a web front-end on top of the command-line tool is available at
221221
- Migrated from deprecated `getopt` module to `argparse`; partial credit [oam7575](https://github.com/oam7575).
222222
- When running against multiple hosts, now prints each target host regardless of output level.
223223
- Batch mode (`-b`) no longer automatically enables verbose mode, due to sometimes confusing results; users can still explicitly enable verbose mode using the `-v` flag.
224+
- Added 2 new key exchanges: `mlkem768nistp256-sha256`, `mlkem1024nistp384-sha384`.
224225

225226
### v3.3.0 (2024-10-15)
226227
- Added Python 3.13 support.

src/ssh_audit/ssh2_kexdb.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""
22
The MIT License (MIT)
33
4-
Copyright (C) 2017-2024 Joe Testa ([email protected])
4+
Copyright (C) 2017-2025 Joe Testa ([email protected])
55
Copyright (C) 2017 Andris Raugulis ([email protected])
66
77
Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -72,6 +72,7 @@ class SSH2_KexDB: # pylint: disable=too-few-public-methods
7272
INFO_DISABLED_IN_OPENSSH70 = 'disabled in OpenSSH 7.0: https://www.openssh.com/txt/release-7.0'
7373
INFO_NEVER_IMPLEMENTED_IN_OPENSSH = 'despite the @openssh.com tag, this was never implemented in OpenSSH'
7474
INFO_HYBRID_PQ_X25519_KEX = 'hybrid key exchange based on post-quantum resistant algorithm and proven conventional X25519 algorithm'
75+
INFO_HYBRID_PQ_NISTP_KEX = 'hybrid key exchange based on post-quantum resistant algorithm and a suspected back-doored NIST P-curve'
7576
INFO_REMOVED_IN_OPENSSH61 = 'removed since OpenSSH 6.1, removed from specification'
7677
INFO_REMOVED_IN_OPENSSH69 = 'removed in OpenSSH 6.9: https://www.openssh.com/txt/release-6.9'
7778
INFO_REMOVED_IN_OPENSSH70 = 'removed in OpenSSH 7.0: https://www.openssh.com/txt/release-7.0'
@@ -193,6 +194,8 @@ class SSH2_KexDB: # pylint: disable=too-few-public-methods
193194
'[email protected]': [[], [FAIL_UNPROVEN], [WARN_NOT_PQ_SAFE]],
194195
'[email protected]': [[], [FAIL_UNPROVEN], [WARN_NOT_PQ_SAFE]],
195196
'mlkem768x25519-sha256': [['9.9'], [], [], [INFO_HYBRID_PQ_X25519_KEX]],
197+
'mlkem768nistp256-sha256': [[], [FAIL_NSA_BACKDOORED_CURVE], [], [INFO_HYBRID_PQ_NISTP_KEX]],
198+
'mlkem1024nistp384-sha384': [[], [FAIL_NSA_BACKDOORED_CURVE], [], [INFO_HYBRID_PQ_NISTP_KEX]],
196199
'rsa1024-sha1': [[], [FAIL_1024BIT_MODULUS, FAIL_SHA1], [WARN_NOT_PQ_SAFE]],
197200
'rsa2048-sha256': [[], [], [WARN_2048BIT_MODULUS, WARN_NOT_PQ_SAFE]],
198201
'sm2kep-sha2-nistp256': [[], [FAIL_NSA_BACKDOORED_CURVE, FAIL_UNTRUSTED], [WARN_NOT_PQ_SAFE]],

test/test_ssh2_kexdb.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ def test_kex_pq_unsafe(self):
5353
5454
"sntrup761x25519-sha512",
5555
56-
56+
57+
"mlkem768nistp256-sha256", # PQ safe, but has a conventional back-door.
58+
"mlkem1024nistp384-sha384" # PQ safe, but has a conventional back-door.
5759
]
5860

5961
failures = []

0 commit comments

Comments
 (0)