22
33from enum import IntEnum
44from dataclasses import dataclass , field
5- from typing import Dict , List
5+ from typing import Dict , Set
66
77
88class OpenSslEvpPkeyEnum (IntEnum ):
@@ -48,9 +48,7 @@ class OpenSslEcNidEnum(IntEnum):
4848
4949 # RFC8422 (current)
5050 SECP192R1 = 409
51- PRIME192V1 = 409 # Intentional duplicate of SECP192R1
5251 SECP256R1 = 415
53- PRIME256V1 = 415 # Intentional duplicate of SECP256R1
5452 SECP384R1 = 715
5553 SECP521R1 = 716
5654 X25519 = 1034
@@ -73,12 +71,12 @@ class OpenSslEcNidEnum(IntEnum):
7371 brainpoolP512t1 = 934
7472
7573 @classmethod
76- def get_supported_by_ssl_client (cls ) -> List ["OpenSslEcNidEnum" ]:
74+ def get_supported_by_ssl_client (cls ) -> Set ["OpenSslEcNidEnum" ]:
7775 """Some NIDs (the brainpool ones) trigger an error with nassl.SslClient when trying to use them.
7876
7977 See also https://github.com/nabla-c0d3/nassl/issues/104.
8078 """
81- return [ nid for nid in cls if "brainpool" not in nid .name ]
79+ return { nid for nid in cls if "brainpool" not in nid .name }
8280
8381
8482# Mapping between OpenSSL EVP_PKEY_XXX value and display name
@@ -93,9 +91,7 @@ def get_supported_by_ssl_client(cls) -> List["OpenSslEcNidEnum"]:
9391}
9492
9593
96- # Mapping between the OpenSSL NID_XXX value and the SECG or ANSI X9.62 name (https://tools.ietf.org/html/rfc4492)
97- # Where a ANSI X9.62 name is available, this is used in preference to the SECG
98- # X25519 and X448 also included from https://tools.ietf.org/html/rfc8422
94+ # Mapping between the OpenSSL NID_XXX value and the SECG name (https://www.rfc-editor.org/rfc/rfc8422.html#appendix-A)
9995_OPENSSL_NID_TO_SECG_ANSI_X9_62 : Dict [OpenSslEcNidEnum , str ] = {
10096 OpenSslEcNidEnum .SECT163K1 : "sect163k1" ,
10197 OpenSslEcNidEnum .SECT163R1 : "sect163r1" ,
@@ -115,11 +111,11 @@ def get_supported_by_ssl_client(cls) -> List["OpenSslEcNidEnum"]:
115111 OpenSslEcNidEnum .SECP160R1 : "secp160r1" ,
116112 OpenSslEcNidEnum .SECP160R2 : "secp160r2" ,
117113 OpenSslEcNidEnum .SECP192K1 : "secp192k1" ,
114+ OpenSslEcNidEnum .SECP192R1 : "secp192r1" ,
118115 OpenSslEcNidEnum .SECP224K1 : "secp224k1" ,
119116 OpenSslEcNidEnum .SECP224R1 : "secp224r1" ,
120117 OpenSslEcNidEnum .SECP256K1 : "secp256k1" ,
121- OpenSslEcNidEnum .PRIME192V1 : "prime192v1" , # Also valid for SECP192R1
122- OpenSslEcNidEnum .PRIME256V1 : "prime256v1" , # Also valid for SECP256R1
118+ OpenSslEcNidEnum .SECP256R1 : "secp256r1" ,
123119 OpenSslEcNidEnum .SECP384R1 : "secp384r1" ,
124120 OpenSslEcNidEnum .SECP521R1 : "secp521r1" ,
125121 OpenSslEcNidEnum .X25519 : "X25519" ,
0 commit comments