PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  oB]c@sodZddlmZddlmZddlZejeZdZ d dZ dZ d d Z dS( s0gpg.py - Collection of gpg key related functionsi(tlog(tutilNcCsay+tjddd|gdt\}}Wn/tjk r\}tjd||d}nX|S(s*Export gpg key, armoured key gets returnedtgpgs--exports--armourtcaptures&Failed to export armoured key "%s": %sN(RtsubptTruetProcessExecutionErrortLOGtdebugtNone(tkeytarmourt_terror((s1/usr/lib/python2.7/site-packages/cloudinit/gpg.pyt export_armours ic Cs$tjd||dd|d|g}|d kr>g}nd}d }t|}xtr|d7}y1tj|dttjd|||d SWntjk r}|}nXy3t|}tjd |j |t j |WqYt k rt d ||||fqYXqYWd S( sReceive 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.s&Importing key '%s' from keyserver '%s'Rs--keyserver=%ss --recv-keysiiRs/Imported key '%s' from keyserver '%s' on try %dNs6Import failed with exit code %d, will try again in %sss@Failed to import key '%s' from keyserver '%s' after %d tries: %s(RRR titerRRRRtnextt exit_codettimetsleept StopIterationt ValueError( R t keyservertretriestcmdttrynumR tsleepstetnaplen((s1/usr/lib/python2.7/site-packages/cloudinit/gpg.pytrecv_keys4           cCsVy&tjdddd|gdtWn)tjk rQ}tjd||nXdS(s0Delete the specified key from the local gpg ringRs--batchs--yess --delete-keysRsFailed delete key "%s": %sN(RRRRRtwarning(R R ((s1/usr/lib/python2.7/site-packages/cloudinit/gpg.pyt delete_keyHs  skeyserver.ubuntu.comcCsrt|}|snzKy t|d|t|}Wn$tk r[tjd|nXWdt|Xn|S(sget gpg keyid from keyserverRsFailed to obtain gpg key %sN(RRRRt exceptionR(tkeyidRR ((s1/usr/lib/python2.7/site-packages/cloudinit/gpg.pyt getkeybyidQs   (ii( t__doc__t cloudinitRtloggingRRt getLoggert__name__RRRRR"(((s1/usr/lib/python2.7/site-packages/cloudinit/gpg.pyts  *