File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed
ydb/oauth2_token_exchange Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change 1010except ImportError :
1111 jwt = None
1212
13+ try :
14+ from cryptography .hazmat .primitives .serialization import load_pem_private_key
15+ except ImportError :
16+ load_pem_private_key = None
17+
1318
1419class Token (abc .ABC ):
1520 def __init__ (self , token : str , token_type : str ):
@@ -48,6 +53,7 @@ def __init__(
4853 token_ttl_seconds : int = 3600 ,
4954 ):
5055 assert jwt is not None , "Install pyjwt library to use jwt tokens"
56+ assert load_pem_private_key is not None , "Install cryptography library to use jwt tokens"
5157 self ._signing_method = signing_method
5258 self ._key_id = key_id
5359 if private_key and private_key_file :
@@ -70,6 +76,7 @@ def __init__(
7076 raise Exception ("JWT: no private key specified" )
7177 if self ._token_ttl_seconds <= 0 :
7278 raise Exception ("JWT: invalid jwt token TTL" )
79+ self ._loaded_private_key = load_pem_private_key (self ._private_key .encode (), password = None )
7380
7481 def token (self ) -> Token :
7582 now = time .time ()
@@ -96,7 +103,7 @@ def token(self) -> Token:
96103 headers ["kid" ] = self ._key_id
97104
98105 token = jwt .encode (
99- key = self ._private_key ,
106+ key = self ._loaded_private_key ,
100107 algorithm = self ._signing_method ,
101108 headers = headers ,
102109 payload = payload ,
You can’t perform that action at this time.
0 commit comments