+
    ˜qgj
  ã                   ó  a € R t 0 t R t^ RIt^ RIt^ RIt^ RIHtHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHtHt ^ RIHt ^ RIHt ^ R	IHt R
RR].R]R. /t] ^ k ]P0                  ! ]4      tR tRR ltR tRR ltR R ltR# )z;SSH AuthKey Fingerprints: Log fingerprints of user SSH keysN)Ússh_utilÚutil)ÚCloud)ÚConfig)Ú
MetaSchema)ÚALL_DISTROSÚug_util)Úlog_util)ÚPER_INSTANCE)ÚSimpleTableÚidÚcc_ssh_authkey_fingerprintsÚdistrosÚ	frequencyÚactivate_by_schema_keysc                 óx   € . p\        ^ \        V 4      ^4       F  pVP                  WV^,            4       K  	  V# )é    )ÚrangeÚlenÚappend)Úbin_hashÚsplit_upÚis   &  ÚN/usr/lib/python3/dist-packages/cloudinit/config/cc_ssh_authkey_fingerprints.pyÚ_split_hashr      s8   € Ø€HÜ�1”c˜(“m QÖ'ˆØ�‰˜ Q¨¥UÐ+Ö,ñ (à€Oó    c                 ó  € V '       g   R #  \         P                  ! V4      pVP                  \        P                  ! V 4      4       RP                  \        VP                  4       4      4      #   \        \        3 d     R# i ; i)Ú Ú:Ú?)
ÚhashlibÚnewÚupdateÚbase64Ú	b64decodeÚjoinr   Ú	hexdigestÚ	TypeErrorÚ
ValueError)Úb64_textÚ	hash_methÚhashers   && r   Ú_gen_fingerprintr,   &   sh   € ßÙðÜ—’˜YÓ'ˆØ�‰”f×&Ò& xÓ0Ô1Ø�x‰xœ F×$4Ñ$4Ó$6Ó7Ó8Ð8øÜ”zÐ"ô ò ð	ús   ŒA"A/ Á/BÂBc                 ó  € \        V P                  V P                  V P                  V P                  .4      '       dP   V P                  '       d>   V P                  P                  4       P                  4       \        P                  9   d   R # R# )TF)	ÚanyÚkeytyper#   ÚcommentÚoptionsÚlowerÚstripr   ÚVALID_KEY_TYPES)Úentrys   &r   Ú_is_printable_keyr6   5   sY   € Ü
ˆE�M‰M˜5Ÿ<™<¨¯©¸¿¹ÐF×GÒGà�M�MˆMØ—‘×#Ñ#Ó%×+Ñ+Ó-´×1IÑ1IÔIáÙr   c                 óÔ  € V'       g&   V: R V : R2p\         P                  ! VRRR7       R# RRV,          RR	.p\        V4      pV F‡  p\        V4      '       g   K  VP                  ;'       g    R
\        VP                  V4      ;'       g    R
VP                  ;'       g    R
VP                  ;'       g    R
.p	VP                  V	4       K‰  	  VP                  4       p
V
P                  4       p\        \        V\        R7      4      p\        P                  ! RV: RV : 2RV4      .pVP!                  V4       V F#  p\         P                  ! V: V: R2RRR7       K%  	  R# )z3no authorized SSH keys fingerprints found for user z.
TF)ÚconsoleÚstderrNÚKeytypezFingerprint (%s)ÚOptionsÚCommentÚ-)ÚkeyzAuthorized keys from z
 for user Ú+Ú
)Útextr9   r8   )r	   Ú	multi_logr   r6   r/   r,   r#   r1   r0   Úadd_rowÚ
get_stringÚ
splitlinesr   Úmaxr   ÚcenterÚextend)ÚuserÚkey_fnÚkey_entriesr*   ÚprefixÚmessageÚ
tbl_fieldsÚtblr5   ÚrowÚ	authtbl_sÚauthtbl_linesÚmax_lenÚlinesÚlines   &&&&&          r   Ú_pprint_key_entriesrV   ?   s@  € ÷ ó “tðð 	ô 	×Ò˜7¨D¸Õ?ÙàØ˜iÕ(ØØð	€Jô �jÓ
!€CÛˆÜ˜U×#Ô#à—‘×$Ð$ Ü  §¡¨yÓ9×@Ð@¸SØ—‘×$Ð$ Ø—‘×$Ð$ ð	ˆCð �K‰K˜Öñ ð —‘Ó €IØ×(Ñ(Ó*€MÜ”#�m¬Ô-Ó.€Gä�‹Û5;ºTÐBØØó	
ð€Eð 
‡L�L�ÔÛˆÜ×ÒÚ#£TÐ*°5À$÷	
ó r   c          
      óL   € V ^8„  d   QhR\         R\        R\        R\        RR/# )é   ÚnameÚcfgÚcloudÚargsÚreturnN)Ústrr   r   Úlist)Úformats   "r   Ú__annotate__ra   j   s6   € ÷ Gñ G”ð Gœ6ð G¬%ð G´tð GÀñ Gr   c                 ó  € \         P                  ! VP                  R R4      4      '       d   \        P	                  RV 4       R# \         P
                  ! VRR4      p\        P                  ! WP                  4      w  rVVP                  4        Fo  w  rxVP                  R4      '       g   VP                  R4      '       d   \        P	                  RV4       KK  \        P                  ! V4      w  rš\        WyW¤4       Kq  	  R# )	Úno_ssh_fingerprintsFz>Skipping module named %s, logging of SSH fingerprints disabledNÚauthkey_hashÚsha256Úno_create_homeÚsystemzXSkipping printing of ssh fingerprints for user '%s' because no home directory is created)r   Úis_trueÚgetÚLOGÚdebugÚget_cfg_option_strr   Únormalize_users_groupsÚdistroÚitemsr   Úextract_authorized_keysrV   )rY   rZ   r[   r\   r*   ÚusersÚ_groupsÚ	user_nameÚ_cfgrJ   rK   s   &&&&       r   Úhandleru   j   sÅ   € Ü‡|‚|�C—G‘GÐ1°5Ó9×:Ò:Ü�	‰	ØLØô	
ñ 	ä×'Ò'¨¨^¸XÓF€IÜ×5Ò5°c¿<¹<ÓHÑ€UØ Ÿ;™;ž=‰ˆ	Ø�8‰8Ð$×%Ò%¨¯©°(×);Ò);Ü�I‰Ið/àôñ
 ä (× @Ò @ÀÓ KÑˆÜ˜I¨{ÖFó )r   c                ó@   € V ^8„  d   Qh/ ^ \         9   d
   \        ;R&   # )rX   Úmeta)Ú__conditional_annotations__r   )r`   s   "r   ra   ra      s   € × AÑ A÷ò „jñ ò Br   )re   )re   z	ci-info: )!rx   Ú__doc__r#   r    ÚloggingÚ	cloudinitr   r   Úcloudinit.cloudr   Úcloudinit.configr   Úcloudinit.config.schemar   Úcloudinit.distrosr   r   Úcloudinit.logr	   Úcloudinit.settingsr
   Úcloudinit.simpletabler   rw   Ú	getLoggerÚ__name__rj   r   r,   r6   rV   ru   ra   )rx   s   @r   Ú<module>r…      s   øðö Bã Û Û ç $Ý !Ý #Ý .ß 2Ý "Ý +Ý -ð 	Ð
'Ø�ˆ}Ø�Ø˜rð	€ó ð ×Ò˜Ó!€òôòô(
÷VGr   