Spade
Mini Shell
| Directory:~$ /lib/python2.7/site-packages/josepy/ |
| [Home] [System Details] [Kill Me] |
�
�t0^c@sCdZddlZddlZddlZddlZddlZddlZddlm Z ddl
mZddl
mZddl
mZddl
mZddlmZmZmZeje�Zd ejfd
��YZejdefd��Y�Zejd
efd��Y�Zejdefd��Y�ZdS(s
JSON
Web
Key.i����N(tdefault_backend(thashes(t
serialization(tec(trsa(terrorst json_utiltutiltJWKcBs�eZdZdZiZdZeZidd6d
d6e d6Z
ejd�Z
ejd��Zeddd ��Zeddd
��ZRS(s
JSON Web Key.tktytindentt,t:t
separatorst sort_keyscsltj|�dt��}|jtjt�fd�tj�j ��D���j
�j��|j�S(sgCompute JWK Thumbprint.
https://tools.ietf.org/html/rfc7638
:returns: bytes
tbackendc3s0|]&\}}|�jkr||fVqdS(N(trequired(t.0tktv(tself(s./usr/lib/python2.7/site-packages/josepy/jwk.pys <genexpr>3s (
RtHashRtupdatetjsontdumpstdicttsixt iteritemstto_jsont_thumbprint_json_dumps_paramstencodetfinalize(Rt
hash_functiontdigest((Rs./usr/lib/python2.7/site-packages/josepy/jwk.pyt
thumbprint)s
(cCs
t��dS(siGenerate JWK with public key.
For symmetric cryptosystems, this would return ``self``.
N(tNotImplementedError(R((s./usr/lib/python2.7/site-packages/josepy/jwk.pyt
public_key8scCs�|dkrt�n|}i}x]tjtjfD]I}y||||�SWq4tttjj fk
r|}|||<q4Xq4WxWtj
tjfD]C}y|||�SWq�ttjj fk
r�}|||<q�Xq�Wtj
dj|���dS(NsUnable to
deserialize key:
{0}(tNoneRRtload_pem_private_keytload_der_private_keyt
ValueErrort TypeErrortcryptographyt
exceptionstUnsupportedAlgorithmtload_pem_public_keytload_der_public_keyRtErrortformat(tclstdatatpasswordRR+tloaderterror((s./usr/lib/python2.7/site-packages/josepy/jwk.pyt_load_cryptography_keyAs" cCs�y|j|||�}Wn0tjk
rK}tjd|�td|�SX|jtk r�t||j �r�tjdj
|j|j���nx9tj
|j�D]%}t||j �r�|d|�Sq�Wtjdj
|j���dS(s�Load serialized key as JWK.
:param str data: Public or private key serialized as PEM or DER.
:param str password: Optional password.
:param backend: A `.PEMSerializationBackend` and
`.DERSerializationBackend` provider.
:raises errors.Error: if unable to deserialize, or unsupported
JWK algorithm
:returns: JWK of an appropriate type.
:rtype: `JWK`
s,Loading symmetric key, asymmetric failed: %stkeys"Unable to
deserialize {0} into {1}sUnsupported algorithm:
{0}N(R6RR/tloggertdebugtJWKOctttyptNotImplementedt
isinstancetcryptography_key_typesR0t __class__Rt
itervaluestTYPES(R1R2R3RR7R5tjwk_cls((s./usr/lib/python2.7/site-packages/josepy/jwk.pytload[s(N(RR(t__name__t
__module__t__doc__ttype_field_nameRAR>R<RR%tTrueRRtSHA256R"tabctabstractmethodR$tclassmethodR6RC(((s./usr/lib/python2.7/site-packages/josepy/jwk.pyRs
tJWKEScBs\eZdZdZejejfZdej ddfZ
d�Zed��Z
d�ZRS(s<ES JWK.
.. warning:: This is not yet implemented!
tEStcrvtxtycCs
t��dS(N(R#(R((s./usr/lib/python2.7/site-packages/josepy/jwk.pytfields_to_partial_json�scCs
t��dS(N(R#(R1tjobj((s./usr/lib/python2.7/site-packages/josepy/jwk.pytfields_from_json�scCs
t��dS(N(R#(R((s./usr/lib/python2.7/site-packages/josepy/jwk.pyR$�s(RDRERFR;RtEllipticCurvePublicKeytEllipticCurvePrivateKeyR>RRGRRRRLRTR$(((s./usr/lib/python2.7/site-packages/josepy/jwk.pyRM{s R:cBsJeZdZdZdZdejfZd�Ze d��Z
d�ZRS(sSymmetric
JWK.toctR7RcCsitj|j�d6S(NR(Rtencode_b64joseR7(R((s./usr/lib/python2.7/site-packages/josepy/jwk.pyRR�scCs|dtj|d��S(NR7R(Rtdecode_b64jose(R1RS((s./usr/lib/python2.7/site-packages/josepy/jwk.pyRT�scCs|S(N((R((s./usr/lib/python2.7/site-packages/josepy/jwk.pyR$�s(skey(RDRERFR;t __slots__RRGRRRRLRTR$(((s./usr/lib/python2.7/site-packages/josepy/jwk.pyR:�s tJWKRSAcBs�eZdZdZejejfZdZde j
dfZd�Ze
d��Ze
d��Zd�Ze
d ��Zd
�ZRS(s�RSA JWK.
:ivar key:
:class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
or
:class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`
wrapped
in :class:`~josepy.util.ComparableRSAKey`
tRSAR7tetncOsZd|kr=t|dtj�r=tj|d�|d<ntt|�j||�dS(NR7(R=RtComparableRSAKeytsuperR[t__init__(Rtargstkwargs((s./usr/lib/python2.7/site-packages/josepy/jwk.pyRa�scCs8d�}tjtj|t|�djd����S(sQEncode
Base64urlUInt.
:type data: long
:rtype: unicode
cSst|�drd|S|S(Nit0(tlen(targ((s./usr/lib/python2.7/site-packages/josepy/jwk.pyt_leading_zeros�sitL(RRXtbinasciit unhexlifythextrstrip(R1R2Rg((s./usr/lib/python2.7/site-packages/josepy/jwk.pyt
_encode_param�s cCsGy#ttjtj|��d�SWntk
rBtj��nXdS(sDecode
Base64urlUInt.iN(tintRithexlifyRRYR(RtDeserializationError(R1R2((s./usr/lib/python2.7/site-packages/josepy/jwk.pyt
_decode_param�s#
cCst|�d|jj��S(NR7(ttypeR7R$(R((s./usr/lib/python2.7/site-packages/josepy/jwk.pyR$�sc
s���fd�dD�\}}tjd|d|�}d�krX|jt��}ng�j�d�}d�ks�d�ks�d�ks�d�ks�d �ks�d
�krAt�fd�dD��\}}} }
}}td�|D��rtjd
j|���nt�fd�|D��\}}} }
}nQtj |||�\}}tj
||�} tj||�}
tj||�}tj
|||| |
||�jt��}�d|�S(Nc3s"|]}�j�|�VqdS(N(Rq(RRP(R1RS(s./usr/lib/python2.7/site-packages/josepy/jwk.pys <genexpr>�sR^R]tdtptqtdptdqtqitothc3s|]}�j|�VqdS(N(tget(RRP(RS(s./usr/lib/python2.7/site-packages/josepy/jwk.pys <genexpr>�scss!|]}|dkr|VqdS(N(R%(Rtparam((s./usr/lib/python2.7/site-packages/josepy/jwk.pys <genexpr>�ss(Some
private parameters are missing:
{0}c3s|]}�j|�VqdS(N(Rq(RRP(R1(s./usr/lib/python2.7/site-packages/josepy/jwk.pys <genexpr>�sR7(R^R](RtRusdpsdqsqi(RtRSAPublicNumbersR$RRqttupleRR/R0trsa_recover_prime_factorstrsa_crt_dmp1trsa_crt_dmq1trsa_crt_iqmptRSAPrivateNumberstprivate_key(
R1RSR^R]tpublic_numbersR7RsRtRuRvRwRxt
all_params((R1RSs./usr/lib/python2.7/site-packages/josepy/jwk.pyRT�s.$$,+cs�t�jjtj�rD�jj�}i|jd6|jd6}nz�jj�}�jj �j�}i|jd6|jd6|j
d6|jd6|jd6|j
d6|jd6|jd6}t�fd �tj|�D��S(
NR^R]RsRtRuRvRwRxc3s*|]
\}}|�j|�fVqdS(N(Rm(RR7tvalue(R(s./usr/lib/python2.7/site-packages/josepy/jwk.pys <genexpr>s(R=R7t_wrappedRtRSAPublicKeyR�R^R]tprivate_numbersR$RsRtRutdmp1tdmq1tiqmpRRR(Rtnumberstparamstprivatetpublic((Rs./usr/lib/python2.7/site-packages/josepy/jwk.pyRR�s$
(skey(RDRERFR;RR�t
RSAPrivateKeyR>RZRRGRRaRLRmRqR$RTRR(((s./usr/lib/python2.7/site-packages/josepy/jwk.pyR[�s '(RFRJRiRtloggingtcryptography.exceptionsR*Rtcryptography.hazmat.backendsRtcryptography.hazmat.primitivesRRt)cryptography.hazmat.primitives.asymmetricRRtjosepyRRRt getLoggerRDR8tTypedJSONObjectWithFieldsRtregisterRMR:R[(((s./usr/lib/python2.7/site-packages/josepy/jwk.pyt<module>s(g