File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree 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