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