@@ -941,6 +941,19 @@ def get_data(self) -> bytes:
941
941
return _ffi .buffer (char_result , result_length )[:]
942
942
943
943
944
+ _X509ExtensionInternal = X509Extension
945
+ utils .deprecated (
946
+ X509Extension ,
947
+ __name__ ,
948
+ (
949
+ "X509Extension support in pyOpenSSL is deprecated. You should use the "
950
+ "APIs in cryptography."
951
+ ),
952
+ DeprecationWarning ,
953
+ name = "X509Extension" ,
954
+ )
955
+
956
+
944
957
class X509Req :
945
958
"""
946
959
An X.509 certificate signing requests.
@@ -1063,7 +1076,9 @@ def get_subject(self) -> X509Name:
1063
1076
1064
1077
return name
1065
1078
1066
- def add_extensions (self , extensions : Iterable [X509Extension ]) -> None :
1079
+ def add_extensions (
1080
+ self , extensions : Iterable [_X509ExtensionInternal ]
1081
+ ) -> None :
1067
1082
"""
1068
1083
Add extensions to the certificate signing request.
1069
1084
@@ -1077,7 +1092,7 @@ def add_extensions(self, extensions: Iterable[X509Extension]) -> None:
1077
1092
stack = _ffi .gc (stack , _lib .sk_X509_EXTENSION_free )
1078
1093
1079
1094
for ext in extensions :
1080
- if not isinstance (ext , X509Extension ):
1095
+ if not isinstance (ext , _X509ExtensionInternal ):
1081
1096
raise ValueError ("One of the elements is not an X509Extension" )
1082
1097
1083
1098
# TODO push can fail (here and elsewhere)
@@ -1086,7 +1101,7 @@ def add_extensions(self, extensions: Iterable[X509Extension]) -> None:
1086
1101
add_result = _lib .X509_REQ_add_extensions (self ._req , stack )
1087
1102
_openssl_assert (add_result == 1 )
1088
1103
1089
- def get_extensions (self ) -> List [X509Extension ]:
1104
+ def get_extensions (self ) -> List [_X509ExtensionInternal ]:
1090
1105
"""
1091
1106
Get X.509 extensions in the certificate signing request.
1092
1107
@@ -1106,7 +1121,7 @@ def get_extensions(self) -> List[X509Extension]:
1106
1121
)
1107
1122
1108
1123
for i in range (_lib .sk_X509_EXTENSION_num (native_exts_obj )):
1109
- ext = X509Extension .__new__ (X509Extension )
1124
+ ext = _X509ExtensionInternal .__new__ (_X509ExtensionInternal )
1110
1125
extension = _lib .X509_EXTENSION_dup (
1111
1126
_lib .sk_X509_EXTENSION_value (native_exts_obj , i )
1112
1127
)
@@ -1600,7 +1615,9 @@ def get_extension_count(self) -> int:
1600
1615
"""
1601
1616
return _lib .X509_get_ext_count (self ._x509 )
1602
1617
1603
- def add_extensions (self , extensions : Iterable [X509Extension ]) -> None :
1618
+ def add_extensions (
1619
+ self , extensions : Iterable [_X509ExtensionInternal ]
1620
+ ) -> None :
1604
1621
"""
1605
1622
Add extensions to the certificate.
1606
1623
@@ -1609,14 +1626,14 @@ def add_extensions(self, extensions: Iterable[X509Extension]) -> None:
1609
1626
:return: ``None``
1610
1627
"""
1611
1628
for ext in extensions :
1612
- if not isinstance (ext , X509Extension ):
1629
+ if not isinstance (ext , _X509ExtensionInternal ):
1613
1630
raise ValueError ("One of the elements is not an X509Extension" )
1614
1631
1615
1632
add_result = _lib .X509_add_ext (self ._x509 , ext ._extension , - 1 )
1616
1633
if not add_result :
1617
1634
_raise_current_error ()
1618
1635
1619
- def get_extension (self , index : int ) -> X509Extension :
1636
+ def get_extension (self , index : int ) -> _X509ExtensionInternal :
1620
1637
"""
1621
1638
Get a specific extension of the certificate by index.
1622
1639
@@ -1630,7 +1647,7 @@ def get_extension(self, index: int) -> X509Extension:
1630
1647
1631
1648
.. versionadded:: 0.12
1632
1649
"""
1633
- ext = X509Extension .__new__ (X509Extension )
1650
+ ext = _X509ExtensionInternal .__new__ (_X509ExtensionInternal )
1634
1651
ext ._extension = _lib .X509_get_ext (self ._x509 , index )
1635
1652
if ext ._extension == _ffi .NULL :
1636
1653
raise IndexError ("extension index out of bounds" )
0 commit comments