66import json
77from binascii import hexlify
88from getpass import getpass
9- from typing import Optional
109
1110from cryptography .hazmat .primitives import serialization
1211
@@ -35,9 +34,9 @@ def jwk_from_file(filename: str, private: bool = True) -> JWK:
3534
3635def pem2rsa (
3736 filename : str ,
38- kid : Optional [ str ] = None ,
37+ kid : str | None = None ,
3938 private : bool = False ,
40- passphrase : Optional [ str ] = None ,
39+ passphrase : str | None = None ,
4140) -> JWK :
4241 """Convert RSA key from PEM to JWK"""
4342 if private :
@@ -51,9 +50,9 @@ def pem2rsa(
5150
5251def pem2ec (
5352 filename : str ,
54- kid : Optional [ str ] = None ,
53+ kid : str | None = None ,
5554 private : bool = False ,
56- passphrase : Optional [ str ] = None ,
55+ passphrase : str | None = None ,
5756) -> JWK :
5857 """Convert EC key from PEM to JWK"""
5958 if private :
@@ -67,9 +66,9 @@ def pem2ec(
6766
6867def pem2okp (
6968 filename : str ,
70- kid : Optional [ str ] = None ,
69+ kid : str | None = None ,
7170 private : bool = False ,
72- passphrase : Optional [ str ] = None ,
71+ passphrase : str | None = None ,
7372) -> JWK :
7473 """Convert OKP key from PEM to JWK"""
7574 if private :
@@ -90,10 +89,10 @@ def bin2jwk(filename: str, kid: str) -> JWK:
9089
9190def pem2jwk (
9291 filename : str ,
93- kid : Optional [ str ] = None ,
94- kty : Optional [ str ] = None ,
92+ kid : str | None = None ,
93+ kty : str | None = None ,
9594 private : bool = False ,
96- passphrase : Optional [ str ] = None ,
95+ passphrase : str | None = None ,
9796) -> JWK :
9897 """Read PEM from filename and return JWK"""
9998 with open (filename ) as file :
@@ -144,7 +143,7 @@ def export_jwk(
144143 jwk : JWK ,
145144 private : bool = False ,
146145 encrypt : bool = False ,
147- passphrase : Optional [ str ] = None ,
146+ passphrase : str | None = None ,
148147) -> bytes :
149148 """Export JWK as PEM/bin"""
150149
@@ -177,7 +176,7 @@ def export_jwk(
177176 return serialized
178177
179178
180- def output_jwk (jwk : JWK , private : bool = False , filename : Optional [ str ] = None ) -> None :
179+ def output_jwk (jwk : JWK , private : bool = False , filename : str | None = None ) -> None :
181180 """Output JWK to file"""
182181 serialized = jwk .serialize (private = private )
183182 if filename is not None :
@@ -187,7 +186,7 @@ def output_jwk(jwk: JWK, private: bool = False, filename: Optional[str] = None)
187186 print (json .dumps (serialized , indent = 4 ))
188187
189188
190- def output_bytes (data : bytes , binary : bool = False , filename : Optional [ str ] = None ) -> None :
189+ def output_bytes (data : bytes , binary : bool = False , filename : str | None = None ) -> None :
191190 """Output data to file"""
192191 if filename is not None :
193192 with open (filename , mode = "wb" ) as file :
0 commit comments