Your IP : 216.73.216.213


Current Path : /opt/alt/python33/lib/python3.3/site-packages/wheel/signatures/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib/python3.3/site-packages/wheel/signatures/__pycache__/__init__.cpython-33.pyc

�
�/6R�c@s�dZddgZddlZddlmZmZmZmZda	dZ
dd	�Zd
d�Zddd
�Z
dd�Zdd�ZdS(u5
Create and verify jws-js format Ed25519 signatures.
usignuverifyiNi(uurlsafe_b64decodeuurlsafe_b64encodeunativeubinaryuEd25519cCsOtsKyddlaWn(ttfk
r@ddlmaYnXt�ntS(u&Lazy import-and-test of ed25519 moduleiNi(u	ed25519py(u	ed25519lluImportErroruOSErroruu	ed25519pyutest(((uJ/opt/alt/python33/lib/python3.3/site-packages/wheel/signatures/__init__.pyu
get_ed25519lls
u
get_ed25519llc	Cs�t�itd6itd6tt|j��d6d6}tttj|dd���}tttj|dd���}dj	||f�}t
j||j�}|dt
j
�}t|�}iit|�d6t|�d	6gd
6t|�d6S(
u_Return a JWS-JS format signature given a JSON-serializable payload and 
    an Ed25519 keypair.ualguktyuvkujwku	sort_keyss.Nuheaderu	signatureu
recipientsupayloadT(u
get_ed25519lluALGunativeuurlsafe_b64encodeuvkubinaryujsonudumpsuTrueujoinu	ed25519llucrypto_signuskuSIGNATUREBYTES(	upayloadukeypairuheaderuencoded_headeruencoded_payloadu
secured_inputusig_msgu	signatureuencoded_signature((uJ/opt/alt/python33/lib/python3.3/site-packages/wheel/signatures/__init__.pyusigns !!ucCs|st|��ndS(N(u
ValueError(u	conditionumessage((uJ/opt/alt/python33/lib/python3.3/site-packages/wheel/signatures/__init__.pyu
assertTrue4su
assertTruecCs�t�|d}t|d�}g}x�|D]�}tt|�dkdj|��t|d�}t|d�}tjtt|���}t|dt	kdj|d��d|d	kr�d
|d	kr�|d	d|d	d
<nt|d	d
t	kdj|d	d
��tt|d	d��}d
j
||f�}	t|�}
|
|	}ttj||��}|j
d�\}
}t|
�}
tt|
��}|jtj|��q.Wt|�}tjtt|���}||fS(u�Return (decoded headers, payload) if all signatures in jwsjs are
    consistent, else raise ValueError.
    
    Caller must decide whether the keys are actually trusted.u
recipientsupayloadiuUnknown recipient key {0}uheaderu	signatureualguUnexpected algorithm {0}ujwkuktyuUnexpected key type {0}uvks.u.(u
get_ed25519llubinaryu
assertTrueulenuformatujsonuloadsunativeuurlsafe_b64decodeuALGujoinu	ed25519llucrypto_sign_openusplituappend(ujwsjsu
recipientsuencoded_payloaduheadersu	recipientuhusuheaderuvku
secured_inputusigusig_msguverified_inputuverified_headeruverified_payloadudecoded_headerupayload((uJ/opt/alt/python33/lib/python3.3/site-packages/wheel/signatures/__init__.pyuverify8s6

" 
cCs�tj�}idd6}tjtjt||���}t|�|dd7<yt|�Wntk
rtYn
Xtd��dS(Nu	onstartuputestupayloaduxu+No error from bad wheel.signatures payload.(	u	ed25519llucrypto_sign_keypairujsonuloadsudumpsusignuverifyu
ValueErroruRuntimeError(ukpupayloadujwsjs((uJ/opt/alt/python33/lib/python3.3/site-packages/wheel/signatures/__init__.pyutest^s
!

utest(u__doc__u__all__ujsonuutiluurlsafe_b64decodeuurlsafe_b64encodeunativeubinaryuNoneu	ed25519lluALGu
get_ed25519llusignu
assertTrueuverifyutest(((uJ/opt/alt/python33/lib/python3.3/site-packages/wheel/signatures/__init__.pyu<module>s"
&