Y @sTdZddlZddlZddlmZmZmZGdddeZ 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)nativeload_config_pathssave_config_pathc@seZdZdZdZddZddZddZd d Zd d Z d ddZ ddZ ddZ d S) WheelKeysz wheel.jsoncCsdgdgi|_dS)Nsigners verifiers)data)selfr 6/tmp/pip-build-3puug3g5/wheel/wheel/signatures/keys.py__init__*szWheelKeys.__init__c CsxtdD]}tjjt||j}tjj|r t|d}tj ||_ x*dD]"}||j krng|j |Ts z%WheelKeys.trusted..rkeycSs|dS)Nrr )rr r r Usz#WheelKeys.trusted..)r sortreverse)r r#r&r )r#r trustedRs  zWheelKeys.trustedcsDfdd|jdD}|jddd|j|S)zReturn list of signing key(s).cs:g|]0}|ddfkr|d|dfqS)r#r)r$r )r*r)r#r r r+[s z%WheelKeys.signers..rr,cSs|dS)Nrr )rr r r r-\sz#WheelKeys.signers..)r r.r/)r r#signr )r#r rYs  zWheelKeys.signerscCs$|jdjd|d|idS)z>Remember verifying key vk as being valid for signing in scope.rr#r$N)r r%)r r#r$r r r add_signer`szWheelKeys.add_signer) __name__ __module__ __qualname__rrr rr"r&r(r0rr2r r r r r&s       r) __doc__ros.pathrZ wheel.utilrrrobjectrr r r r  s