Your IP : 216.73.217.106


Current Path : /opt/alt/python36/lib/python3.6/site-packages/wheel/signatures/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib/python3.6/site-packages/wheel/signatures/__pycache__/keys.cpython-36.pyc

3

Dt�Z��@s<dZddlZddlZddlmZmZmZGdd�de�Z	dS)aStore and retrieve wheel signing / verifying keys.

Given a scope (a package name, + meaning "all packages", or - meaning
"no packages"), return a list of verifying keys that are trusted for that
scope.

Given a package name, return a list of (scope, key) suggested keys to sign
that package (only the verifying keys; the private signing key is stored
elsewhere).

Keys here are represented as urlsafe_b64encoded strings with no padding.

Tentative command line interface:

# list trusts
wheel trust
# trust a particular key for all
wheel trust + key
# trust key for beaglevote
wheel trust beaglevote key
# stop trusting a key for all
wheel untrust + key

# generate a key pair
wheel keygen

# import a signing key from a file
wheel import keyfile

# export a signing key
wheel export key
�N�)�native�load_config_paths�save_config_pathc@sVeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	ddd�Z
dd�Zdd�Zd
S)�	WheelKeys�z
wheel.jsoncCsggd�|_dS)N)�signers�	verifiers)�data)�self�r�F/opt/alt/python36/lib/python3.6/site-packages/wheel/signatures/keys.py�__init__,szWheelKeys.__init__cCs�x�td�D]�}tjjt|�|j�}tjj|�r
t|d��t}tj	|�|_
x dD]}||j
krLg|j
|<qLWd|j
kr�|j|j
d<n(|j
d|jkr�tdj
|j
d|j���WdQRXPq
W|S)N�wheel�rrr	Zschemaz(Bad wheel.json version {0}, expected {1})rr	)r�os�path�joinr�CONFIG_NAME�exists�open�json�loadr
�SCHEMA�
ValueError�format)rr�conf�infile�xrrr
r/s 


zWheelKeys.loadcCsHtd�}tjjt|�|j�}t|d��}tj|j	|dd�WdQRX|S)Nrzw+r)�indent)
rrrrrrrr�dumpr
)rrr�outrrr
�saveBs
zWheelKeys.savecCs|jdj||d��|S)z0Start trusting a particular key for given scope.r	)�scope�vk)r
�append)rr#r$rrr
�trustJszWheelKeys.trustcCs|jdj||d��|S)z/Stop trusting a particular key for given scope.r	)r#r$)r
�remove)rr#r$rrr
�untrustOszWheelKeys.untrustNcs4�fdd�|jdD�}|jdd�d�|j�|S)z;Return list of [(scope, trusted key), ...] for given scope.cs,g|]$}|d�dfkr|d|df�qS)r#�+r$r)�.0r)r#rr
�
<listcomp>Vsz%WheelKeys.trusted.<locals>.<listcomp>r	cSs|dS)Nrr)rrrr
�<lambda>Xsz#WheelKeys.trusted.<locals>.<lambda>)�key)r
�sort�reverse)rr#r&r)r#r
�trustedTszWheelKeys.trustedcs4�fdd�|jdD�}|jdd�d�|j�|S)zReturn list of signing key(s).cs,g|]$}|d�dfkr|d|df�qS)r#r)r$r)r*r)r#rr
r+^sz%WheelKeys.signers.<locals>.<listcomp>rcSs|dS)Nrr)rrrr
r,_sz#WheelKeys.signers.<locals>.<lambda>)r-)r
r.r/)rr#�signr)r#r
r\szWheelKeys.signerscCs|jdj||d��dS)z>Remember verifying key vk as being valid for signing in scope.r)r#r$N)r
r%)rr#r$rrr
�
add_signercszWheelKeys.add_signer)N)
�__name__�
__module__�__qualname__rrrrr"r&r(r0rr2rrrr
r(s
r)
�__doc__r�os.pathr�utilrrr�objectrrrrr
�<module> s