HEX
Server: Apache
System: Linux msm5694.mjhst.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: camjab_ssh (1000)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib/python2.7/site-packages/josepy/jwk.pyc
ó
›t0^c@sCdZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddl
mZddl
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ŒeZdZdZiZdZeZidd6d
d6e	d6Z
ejd„Z
ejd„ƒZeddd	„ƒZeddd
„ƒ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”Wtj
dj|ƒƒ‚dS(NsUnable to deserialize key: {0}(tNoneRRtload_pem_private_keytload_der_private_keyt
ValueErrort	TypeErrortcryptographyt
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ƒƒ‚nx9tj
|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„Zed„ƒ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„Ze
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

ṡ‡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_factorstrsa_crt_dmp1trsa_crt_dmq1trsa_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|jd6|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_wrappedRtRSAPublicKeyR„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