+
    i
                       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1c(mQ'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xx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    
EMM5<<FGGMMM##%++-1I1I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 	 	7D?i(	J j
!CU##$$ y9@@S$$$$	C KK   I((*M#m-.G5;TB	
E 
LL#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\        WyW4       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    ||CGG159::		L	
 	''^XFI55c<<HU ;;=	88$%%(););II/
  ( @ @ 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   