|
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