|
49 | 49 | HOST = socket_helper.HOST
|
50 | 50 | IS_OPENSSL_3_0_0 = ssl.OPENSSL_VERSION_INFO >= (3, 0, 0)
|
51 | 51 | CAN_GET_SELECTED_OPENSSL_GROUP = ssl.OPENSSL_VERSION_INFO >= (3, 2)
|
| 52 | +CAN_IGNORE_UNKNOWN_OPENSSL_GROUPS = ssl.OPENSSL_VERSION_INFO >= (3, 3) |
52 | 53 | CAN_GET_AVAILABLE_OPENSSL_GROUPS = ssl.OPENSSL_VERSION_INFO >= (3, 5)
|
53 | 54 | PY_SSL_DEFAULT_CIPHERS = sysconfig.get_config_var('PY_SSL_DEFAULT_CIPHERS')
|
54 | 55 |
|
@@ -964,8 +965,14 @@ def test_get_ciphers(self):
|
964 | 965 |
|
965 | 966 | def test_set_groups(self):
|
966 | 967 | ctx = ssl.create_default_context()
|
967 |
| - self.assertIsNone(ctx.set_groups('P-256:X25519')) |
968 |
| - self.assertRaises(ssl.SSLError, ctx.set_groups, 'P-256:xxx') |
| 968 | + # We use P-256 and P-384 (FIPS 186-4) that are alloed by OpenSSL |
| 969 | + # even if FIPS module is enabled. Ignoring unknown groups is only |
| 970 | + # supported since OpenSSL 3.3. |
| 971 | + self.assertIsNone(ctx.set_groups('P-256:P-384')) |
| 972 | + |
| 973 | + self.assertRaises(ssl.SSLError, ctx.set_groups, 'P-256:foo') |
| 974 | + if CAN_IGNORE_UNKNOWN_OPENSSL_GROUPS: |
| 975 | + self.assertIsNone(ctx.set_groups('P-256:?foo')) |
969 | 976 |
|
970 | 977 | @unittest.skipUnless(CAN_GET_AVAILABLE_OPENSSL_GROUPS,
|
971 | 978 | "OpenSSL version doesn't support getting groups")
|
|
0 commit comments