+
    šh©j!  ã                   ó€   € ^ RI t ^ RIHt ^ RIHt ^ RIt^ RIHt ^ RI	H
t
HtHt ^ RIHt ^ RIHtHt  ! R R	]
4      tR# )
é    N)Údefault_backend)ÚCipher)ÚMessage)ÚPKeyÚOPENSSH_AUTH_MAGICÚ_unpad_openssh)Úb)ÚSSHExceptionÚPasswordRequiredExceptionc                   óp   a € ] tR t^t o RtRtRR ltR tR t]	R 4       t
R tR	 tR
 tRR ltR tRtV tR# )Ú
Ed25519Keyzø
Representation of an `Ed25519 <https://ed25519.cr.yp.to/>`_ key.

.. note::
    Ed25519 key support was added to OpenSSH in version 6.5.

.. versionadded:: 2.2
.. versionchanged:: 2.3
    Added a ``file_obj`` parameter to match other key classes.
zssh-ed25519Nc                ó"  € R V n         R ;rgVf   Ve   \        V4      pVeM   V P                  VV P                  RR7       \        P
                  P                  VP                  4       4      pMNVe3   \        VR4      ;_uu_ 4       pV P                  RV4      w  r’R R R 4       MVe   V P                  RV4      w  r’V'       g	   V'       d   V P                  W$4      pVf   Vf   \        R4      hWpn        W`n        R #   + '       g   i     LR; i)Nz ssh-ed25519-cert-v01@openssh.com)ÚmsgÚkey_typeÚ	cert_typeÚrÚOPENSSHz
need a key)Úpublic_blobr   Ú_check_type_and_load_certÚnameÚnaclÚsigningÚ	VerifyKeyÚ
get_binaryÚopenÚ_read_private_keyÚ_parse_signing_key_dataÚ
ValueErrorÚ_signing_keyÚ_verifying_key)
Úselfr   ÚdataÚfilenameÚpasswordÚfile_objÚverifying_keyÚsigning_keyÚfÚpkformats
   &&&&&&    ÚN/var/www/html/bestweb/venv/lib/python3.14/site-packages/paramiko/ed25519key.pyÚ__init__ÚEd25519Key.__init__,   sô   € ð  ˆÔØ&*Ð*ˆØŠ;˜4Ò+Ü˜$“-ˆCØŠ?Ø×*Ñ*ØØŸ™Ø<ð +ô ô
 !ŸL™L×2Ñ2°3·>±>Ó3CÓD‰MØÒ!Ü�h ×$Ô$¨Ø!%×!7Ñ!7¸	À1Ó!E‘�÷ %Ð$àÒ!Ø!×3Ñ3°I¸xÓH‰NˆHç—xØ×6Ñ6°tÓFˆKàÒ =Ò#8Ü˜\Ó*Ð*à'ÔØ+Ö÷ %×$ús   ÂC>Ã>D	c                óv  € ^ RI Hp \        V4      pVP                  \	        \
        4      4      \
        8w  d   \        R4      hVP                  4       pVP                  4       pVP                  4       pVP                  4       pVR8X  d   V'       g   VR8w  d   \        R4      hMQVR8X  d@   V'       g   \        R4      h\        V4      p	V	P                  4       p
V	P                  4       pM\        R4      hVR8w  d   WSP                  9  d   \        R4      h. p\        V4       Fe  p\        VP                  4       4      pVP                  4       V P                  8w  d   \        R4      hVP                  VP                  4       4       Kg  	  VP                  4       pVR8X  d   TpMÄVP                  V,          p\        P                   ! \#        V4      X
VR,          VR,          ,           XRR	7      p\%        VR
,          ! VRVR,           4      VR,          ! VVR,          R 4      \'        4       R7      P)                  4       pVP+                  V4      VP-                  4       ,           p\        \/        V4      4      pVP                  4       VP                  4       8w  d   \        R4      h. p\        V4       F×  pVP                  4       V P                  8w  d   \        R4      hVP                  4       pVP                  4       p\0        P2                  P5                  VR,          4      pVP6                  P9                  4       Tu;8X  d    VV,          u;8X  d   VR,          8X  g    Q h Q hVP                  V4       VP                  4        KÙ  	  \	        V4      ^8w  d   \        R4      hV^ ,          # )r   )Ú	TransportzInvalid keyÚnoneÚbcryptzPrivate key file is encryptedzkey-sizez
block-sizeT)r$   ÚsaltÚdesired_key_bytesÚroundsÚignore_few_roundsÚclassNÚmode)Úbackend:Né    N:r8   NN)Úparamiko.transportr.   r   Ú	get_bytesÚlenr   r
   Úget_textr   Úget_intr   Ú_cipher_infoÚranger   Úappendr0   Úkdfr	   r   r   Ú	decryptorÚupdateÚfinalizer   r   r   Ú
SigningKeyÚ
verify_keyÚencode)r!   r"   r$   r.   ÚmessageÚ
ciphernameÚkdfnameÚ
kdfoptionsÚnum_keysrA   Úbcrypt_saltÚbcrypt_roundsÚpublic_keysÚ_ÚpubkeyÚprivate_ciphertextÚprivate_dataÚcipherÚkeyrB   Úsigning_keysÚiÚpublicÚkey_datar'   s   &&&                      r*   r   Ú"Ed25519Key._parse_signing_key_dataI   sJ  € Ý0ô ˜$“-ˆØ×ÑœSÔ!3Ó4Ó5Ô9KÔKÜ˜}Ó-Ð-à×%Ñ%Ó'ˆ
Ø×"Ñ"Ó$ˆØ×'Ñ'Ó)ˆ
Ø—?‘?Ó$ˆà�fÔ÷ ˜Z¨6Ô1Ü" =Ó1Ð1ð 2à˜Ô ßÜ/Ø3óð ô ˜*Ó%ˆCØŸ.™.Ó*ˆKØŸK™K›M‰Mä˜}Ó-Ð-à˜Ô J×6LÑ6LÔ$LÜ˜}Ó-Ð-àˆÜ�x–ˆAÜ˜W×/Ñ/Ó1Ó2ˆFØ�‰Ó  D§I¡IÔ-Ü" =Ó1Ð1Ø×Ñ˜v×0Ñ0Ó2Ö3ñ	 !ð %×/Ñ/Ó1ÐØ˜ÔØ-‰Là×+Ñ+¨JÕ7ˆFÜ—*’*Ü˜8›Ø Ø"(¨Õ"4°v¸lÕ7KÕ"KØ$ð #'ôˆCô Ø�w– Ð$8 f¨ZÕ&8Ð 9Ó:Ø�v–˜s 6¨*Õ#5Ð#7Ð8Ó9Ü'Ó)ô÷ ‰i‹kð	 ð × Ñ Ð!3Ó4°y×7IÑ7IÓ7KÕKð ô œ.¨Ó6Ó7ˆØ�?‰?Ó §¡Ó 1Ô1Ü˜}Ó-Ð-àˆÜ�x–ˆAØ×ÑÓ! T§Y¡YÔ.Ü" =Ó1Ð1à×'Ñ'Ó)ˆFØ×)Ñ)Ó+ˆHô Ÿ,™,×1Ñ1°(¸3µ-Ó@ˆKð ×&Ñ&×-Ñ-Ó/Øö!à˜q•>ö!ð ˜C•=õ!ðñ!ðð!ð
 ×Ñ Ô,à×ÑÖ ñ% !ô( ˆ|Ó Ô!Ü˜}Ó-Ð-Ø˜A�Ðó    c                ó  € V P                  4       '       d   V P                  P                  pMV P                  p\	        4       pVP                  V P                  4       VP                  VP                  4       4       VP                  4       # ©N)	Úcan_signr   rF   r    r   Ú
add_stringr   rG   Úasbytes)r!   ÚvÚms   &  r*   r`   ÚEd25519Key.asbytes©   s^   € Ø�=‰=�?Š?Ø×!Ñ!×,Ñ,‰Aà×#Ñ#ˆAÜ‹IˆØ	�‰�T—Y‘YÔØ	�‰�Q—X‘X“ZÔ Ø�y‰y‹{Ðr[   c                ó˜   € V P                  4       '       d   V P                  P                  pMV P                  pV P	                  4       V3# r]   )r^   r   rF   r    Úget_name)r!   ra   s   & r*   Ú_fieldsÚEd25519Key._fields³   s:   € à�=‰=�?Š?Ø×!Ñ!×,Ñ,‰Aà×#Ñ#ˆAØ—‘“ Ð#Ð#r[   c                ó   € V P                   # r]   )r   ©r!   s   &r*   re   ÚEd25519Key.get_name¼   s   € Ø�y‰yÐr[   c                ó   € R # )é   © ri   s   &r*   Úget_bitsÚEd25519Key.get_bits¿   s   € Ùr[   c                ó   € V P                   R J# r]   )r   ri   s   &r*   r^   ÚEd25519Key.can_signÂ   s   € Ø× Ñ ¨Ð,Ð,r[   c                ó¸   € \        4       pVP                  V P                  4       VP                  V P                  P	                  V4      P
                  4       V# r]   )r   r_   r   r   ÚsignÚ	signature)r!   r"   Ú	algorithmrb   s   &&& r*   Úsign_ssh_dataÚEd25519Key.sign_ssh_dataÅ   sA   € Ü‹IˆØ	�‰�T—Y‘YÔØ	�‰�T×&Ñ&×+Ñ+¨DÓ1×;Ñ;Ô<Øˆr[   c                óè   € VP                  4       V P                  8w  d   R #  V P                  P                  WP	                  4       4       R#   \
        P                  P                   d     R # i ; i)FT)r<   r   r    Úverifyr   r   Ú
exceptionsÚBadSignatureError)r!   r"   r   s   &&&r*   Úverify_ssh_sigÚEd25519Key.verify_ssh_sigË   sZ   € Ø�<‰<‹>˜TŸY™YÔ&Ùð	Ø×Ñ×&Ñ& t¯^©^Ó-=Ô>ñ øô �‰×0Ñ0ô 	Úð	ús   £)A ÁA1Á0A1)r   r    r   )NNNNNr]   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r+   r   r`   Úpropertyrf   re   rn   r^   rv   r|   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r*   r   r      sT   ø‡ € ñ	ð €Dô,ò:^ò@ð ñ$ó ð$òòò-ô÷	ð 	r[   r   )r0   Úcryptography.hazmat.backendsr   Ú&cryptography.hazmat.primitives.ciphersr   Únacl.signingr   Úparamiko.messager   Úparamiko.pkeyr   r   r   Úparamiko.utilr	   Úparamiko.ssh_exceptionr
   r   r   rm   r[   r*   Ú<module>rŽ      s0   ðó" å 8Ý 9ã å $ß BÑ BÝ ß Jôv�ö vr[   