/usr/lib/python3.6/site-packages/cloudinit/__pycache__
Edit: /usr/lib/python3.6/site-packages/cloudinit/__pycache__/gpg.cpython-36.pyc (3852B)
3
\me @ sr d Z ddlZddlZddlmZ ejeZdddddgZd d
Z dd Z
dddZdddZdd Z
dddZdS )z0gpg.py - Collection of gpg key related functions N)subpgpgz--with-fingerprintz--no-default-keyringz--list-keysz --keyringc C sZ yt j ddd| gdd\}}W n6 t jk
rT } ztjd| | d}W Y dd}~X nX |S )z*Export gpg key, armoured key gets returnedr z--exportz--armourT)capturez&Failed to export armoured key "%s": %sN)r ProcessExecutionErrorLOGdebug)keyarmour_error r /usr/lib/python3.6/gpg.py
export_armour s r c C s t j ddg| ddjS )z~Dearmor gpg key, dearmored key gets returned
note: man gpg(1) makes no mention of an --armour spelling, only --armor
r z --dearmorF)datadecode)r stdout)r r r r
dearmor' s r Fc C sN g }|j t |s|jd |j| tj|dd\}}|rJtjd| | |S )zList keys from a keyring with fingerprints. Default to a stable machine
parseable format.
@param key_file: a string containing a filepath to a key
@param human_output: return output intended for human parsing
z
--with-colonsT)r z&Failed to export armoured key "%s": %s)extendGPG_LISTappendr r warning)Zkey_fileZhuman_outputcmdr stderrr r r
list/ s
r c C s t jd| | ddd| d| g}|dkr,g }d}d}t|}x|d7 }y"tj|d d
t jd| || dS tjk
r } z
|}W Y dd}~X nX y&t|}t jd|j| tj| W q> t k
r } zt
d
| |||f |W Y dd}~X q>X q>W dS )a Receive gpg key from the specified keyserver.
Retries are done by default because keyservers can be unreliable.
Additionally, there is no way to determine the difference between
a non-existant key and a failure. In both cases gpg (at least 2.2.4)
exits with status 2 and stderr: "keyserver receive failed: No data"
It is assumed that a key provided to cloud-init exists on the keyserver
so re-trying makes better sense than failing.
@param key: a string key fingerprint (as passed to gpg --recv-keys).
@param keyserver: the keyserver to request keys from.
@param retries: an iterable of sleep lengths for retries.
Use None to indicate no retries.z&Importing key '%s' from keyserver '%s'r z--no-ttyz--keyserver=%sz--recv-keysNr r T)r z/Imported key '%s' from keyserver '%s' on try %dz6Import failed with exit code %d, will try again in %ssz@Failed to import key '%s' from keyserver '%s' after %d tries: %s)r r iterr r nextZ exit_codetimeZsleep
StopIteration
ValueError) r keyserverZretriesr Ztrynumr ZsleepseZnaplenr r r
recv_keyB s> r" c C sT yt j dddd| gdd W n2 t jk
rN } ztjd| | W Y dd}~X nX dS ) z0Delete the specified key from the local gpg ringr z--batchz--yesz
--delete-keysT)r zFailed delete key "%s": %sN)r r r r )r r r r r
delete_keys s
r# keyserver.ubuntu.comc C s\ t | }|sXz@yt| |d t | }W n" tk
rH tjd| Y nX W dt| X |S )zget gpg keyid from keyserver)r zFailed to obtain gpg key %sN)r r" r r Z exceptionr# )Zkeyidr r r r r
getkeybyid} s
r% )Fr r )r&