File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed
Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change 2222from jwkest import JWKESTException
2323from jwkest import b64d
2424from jwkest import b64e
25+ from jwkest import UnknownAlgorithm
2526from jwkest .ecc import NISTEllipticCurve
2627from jwkest .jwt import b2s_conv
2728
@@ -189,6 +190,39 @@ def x509_rsa_load(txt):
189190 return [("rsa" , import_rsa_key (txt ))]
190191
191192
193+ def key_from_jwk_dict (jwk_dict , private = True ):
194+ """Load JWK from dictionary"""
195+ if jwk_dict ['kty' ] == 'EC' :
196+ if private :
197+ return ECKey (kid = jwk_dict ['kid' ],
198+ crv = jwk_dict ['crv' ],
199+ x = jwk_dict ['x' ],
200+ y = jwk_dict ['y' ],
201+ d = jwk_dict ['d' ])
202+ else :
203+ return ECKey (kid = jwk_dict ['kid' ],
204+ crv = jwk_dict ['crv' ],
205+ x = jwk_dict ['x' ],
206+ y = jwk_dict ['y' ])
207+ elif jwk_dict ['kty' ] == 'RSA' :
208+ if private :
209+ return RSAKey (kid = jwk_dict ['kid' ],
210+ n = jwk_dict ['n' ],
211+ e = jwk_dict ['e' ],
212+ d = jwk_dict ['d' ],
213+ p = jwk_dict ['p' ],
214+ q = jwk_dict ['q' ])
215+ else :
216+ return RSAKey (kid = jwk_dict ['kid' ],
217+ n = jwk_dict ['n' ],
218+ e = jwk_dict ['e' ])
219+ elif jwk_dict ['kty' ] == 'oct' :
220+ return SYMKey (kid = jwk_dict ['kid' ],
221+ k = jwk_dict ['k' ])
222+ else :
223+ raise UnknownAlgorithm
224+
225+
192226class Key (object ):
193227 """
194228 Basic JSON Web key class
You can’t perform that action at this time.
0 commit comments