ó
    Ú°›jq
  ã                   ó†   • S r SSKrSSKrSSKrSSKrSSKJrJr  \R                  R                  S5      r
S rS rS rS rg)	z 
Runpod | CLI | SSH | Functions
é    N)Úget_userÚupdate_user_settingsz~/.runpod/sshc                 ó>  • U R                  5       n[        U5      S:  a  [        S5      e[        R                  " US   5      n[
        R                  " U5      R                  5       nS[        R                  " U5      R                  S5      R                  S5      -   $ )z#
Get the fingerprint of an SSH key
é   zInvalid SSH public keyé   zSHA256:zutf-8Ú=)ÚsplitÚlenÚ
ValueErrorÚbase64Ú	b64decodeÚhashlibÚsha256ÚdigestÚ	b64encodeÚdecodeÚstrip)Ú
public_keyÚpartsÚkey_dataÚfingerprints       Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/runpod/cli/groups/ssh/functions.pyÚget_ssh_key_fingerprintr      s€   € ð ×ÑÓ€EÜ
ˆ5ƒz�Aƒ~ÜÐ1Ó2Ð2ä×Ò  a¡Ó)€HÜ—.’. Ó*×1Ñ1Ó3€KØ”v×'Ò'¨Ó4×;Ñ;¸GÓD×JÑJÈ3ÓOÑOÐOó    c                  ó€  • [        5       n U S   c  SOU S   nUR                  S5      nU Vs/ s H  o"S:w  d  M
  UPM     nn/ nU Ho  nUR                  S5      n[        U5      S:  a  M%  0 nUS   US'   US   US	'   [        U5      US
'   [        U5      S:”  a  US   OSUS'   UR	                  U5        Mq     U$ s  snf )z!
Get the current user's SSH keys
ÚpubKeyÚ Ú
Ú r   r   Útyper   Úkeyr   zN/AÚname)r   r	   r
   r   Úappend)ÚuserÚkeysr!   Úkey_listÚ	key_partsÚkey_dicts         r   Úget_user_pub_keysr)      sÖ   € ô ‹:€DØ�h‘Ñ'‰2¨T°(©^€Dð �:‰:�dÓ€DÙÓ-š4�C¨"¡9�C™4€DÐ-à€HÛˆØ—I‘I˜c“Nˆ	ô ˆy‹>˜AÓÙàˆØ$ Q™<ˆ�ÑØ# A™,ˆ�‰Ü"9¸#Ó">ˆ�ÑÜ+.¨y«>¸AÓ+=˜9 Qš<À5ˆ�ÑØ�‰˜Ö!ñ ð €Oùò# .s
   ­	B;ºB;c                 óh  • [         R                  " [         R                  R                  [        5      SS9  [
        R                  R                  SS9nUR                  [         R                  R                  [        U 5      5        [         R                  " [         R                  R                  [        U 5      S5        [        [         SU  S3SS	S
9 nUR                  5        SUR                  5        SU  3nUR                  U5        SSS5        [        W5        X4$ ! , (       d  f       N= f)zº
Generate an RSA SSH key pair and save it to disk.

Args:
- filename (str):   The base filename to save the key pair.
                    The public key will have '.pub' appended to it.
T)Úexist_oki   )Úbitsi€  Ú/z.pubÚwzUTF-8)Úencodingr   N)ÚosÚmakedirsÚpathÚjoinÚ	SSH_FILESÚparamikoÚRSAKeyÚgenerateÚwrite_private_key_fileÚchmodÚopenÚget_nameÚ
get_base64ÚwriteÚadd_ssh_key)ÚfilenameÚprivate_keyÚpublic_filer   s       r   Úgenerate_ssh_key_pairrB   :   sì   € ô ‡K‚K”—‘—‘œYÓ'°$Ò7ô —/‘/×*Ñ*°Ð*Ð5€KØ×&Ñ&¤r§w¡w§|¡|´I¸xÓ'HÔIô ‡H‚HŒR�W‰W�\‰\œ) XÓ.°Ô6ô 
”�˜1˜X˜J dÐ+¨S¸7Ò	CÀ{Ø#×,Ñ,Ó.Ð/¨q°×1GÑ1GÓ1IÐ0JÈ!ÈHÈ:ÐVˆ
Ø×Ñ˜*Ô%÷ 
Dô �
ÔàÐ"Ð"÷ 
DÕ	Cús   Ã8D#Ä#
D1c                 óŒ   • [        5       nUS   c  SOUS   nX;   a  [        S5        gX"(       a  SOS-   U -   n[        U 5        g)zoAdd an SSH public key to the current user's Runpod account.
Checks if the key already exists before adding it.
r   Nr   zKey already existsz

)r   Úprintr   )r   r$   Úcurrent_keysÚupdated_keyss       r   r>   r>   U   sR   € ô ‹:€DØ˜h™Ñ/‘2°T¸(±^€Lð Ó!ÜÐ"Ô#Øà­\¡6¸rÑBÀZÑO€Lô ˜L˜>Õ+r   )Ú__doc__r   r   r0   r5   Úrunpod.api.ctl_commandsr   r   r2   Ú
expanduserr4   r   r)   rB   r>   © r   r   Ú<module>rK      sD   ðñó Û Û 	ã ç Bà�G‰G×Ñ˜Ó/€	ò
Pòò:#ó6,r   