ó
    ð›‘hÁ  ã                   óî   • S SK JrJr  S SKJrJr  S/r\(       a&   S SKJr  S SK	J
r
  S SKJr  Sr\R                  S5        \(       a   S S
KrS SKJr  S SK JrJrJr   " S S\5      rg
g
! \ a    S	r N2f = f)é    )ÚHAS_CRYPTOSIGNÚCryptosignKey)ÚinlineCallbacksÚreturnValueÚHAS_CRYPTOSIGN_SSHAGENT)ÚFactory)ÚUNIXClientEndpoint)ÚSSHAgentClientTÚSSHAgentCryptosignKeyFN)Úsigning)Ú_read_ssh_ed25519_pubkeyÚ_unpackÚ_packc                   ó<   • \ rS rSrSrSS jr\SS j5       rS rSr	g)	r   é9   a  
A WAMP-cryptosign signing key that is a proxy to a private Ed25510 key
actually held in SSH agent.

An instance of this class must be create via the class method new().
The instance only holds the public key part, whereas the private key
counterpart is held in SSH agent.
Nc                 óX   • [         R                  " XU5        U(       d  SSKJn  X0l        g )Nr   ©Úreactor)r   Ú__init__Útwisted.internetr   Ú_reactor)ÚselfÚkeyÚcommentr   s       Ú_C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\autobahn/twisted/cryptosign.pyr   ÚSSHAgentCryptosignKey.__init__C   s   € Ü×"Ò" 4¨gÔ6ÞÝ4Ø#�Mó    c                 ó€  ^ ^^• [         (       d  [        S5      e[        T5      u  mnT(       d  SSKJm  S[
        R                  ;  a  [        S5      e[        5       nSUl        [        Ul
        [        T[
        R                  S   5      nUR                  U5      n[        U UU4S j5       nUR                  U5      $ )z…
Create a proxy for a key held in SSH agent.

:param pubkey: A string with a public Ed25519 key in SSH format.
:type pubkey: unicode
z7SSH agent integration is not supported on this platformr   r   ÚSSH_AUTH_SOCKúno ssh-agent is running!Fc              3   ó„  >#   • U R                  5       v •nS nS nU HK  u  pE[        U5      nUS   R                  S5      nUS:X  d  M,  Uu  pxUT:X  d  M8  UnUR                  S5      n  O   U R                  R	                  5         U(       a)  [
        R                  " U5      n	[        T
" X“T5      5        g [        S5      e7f)Nr   Úutf8ússh-ed25519z!Ed25519 key not held in ssh-agent)	ÚrequestIdentitiesr   ÚdecodeÚ	transportÚloseConnectionr   Ú	VerifyKeyr   Ú	Exception)ÚagentÚkeysÚkey_dataÚkey_commentÚblobr   ÚrawÚalgoÚ_pubkeyr   ÚclsÚpubkeyr   s             €€€r   Ú
on_connectÚ-SSHAgentCryptosignKey.new.<locals>.on_connectb   s·   øé € à"×4Ñ4Ó6Ñ6�ð  �Ø"�ã%)‘M�DÜ! $›-�CØ˜q™6Ÿ=™=¨Ó0�DØ˜}Õ,Ø(+™˜Ø" fÕ,Ø'.˜HØ*1¯.©.¸Ó*@˜KÙ!ñ &*ð —‘×.Ñ.Ô0æÜ!×+Ò+¨HÓ5�CÜ¡ C°gÓ >Õ?ä#Ð$GÓHÐHùs   ƒAC ÁC ÁA,C )r   r)   r   r   r   ÚosÚenvironr   Únoisyr
   Úprotocolr	   Úconnectr   ÚaddCallback)r2   r3   r   Ú_ÚfactoryÚendpointÚdr4   s   ```     r   ÚnewÚSSHAgentCryptosignKey.newI   s£   ú€ ÷ +Ò*ÜÐ YÓZÐZä0°Ó8‰IˆF�AæÝ4à¤b§j¡jÓ0ÜÐ :Ó;Ð;ä“iˆGØ!ˆGŒMÜ-ˆGÔÜ)¨'´2·:±:¸oÑ3NÓOˆHØ× Ñ  Ó)ˆAäöIó ðIð4 —=‘= Ó,Ð,r   c                 ó.  ^ ^• S[         R                  ;  a  [        S5      e[        5       nSUl        [
        Ul        [        T R                  [         R                  S   5      nUR                  U5      n[        UU 4S j5       nUR                  U5      $ )Nr   r    Fc              3   óê   >#   • [        SR                  5       TR                  SS9/5      nU R                  UT5      v •n[	        U5      u  p4U R
                  R                  5         [        U5        g 7f)Nr#   T)Úbinary)r   ÚencodeÚ
public_keyÚsignDatar   r&   r'   r   )r*   r.   Úsignature_blobr0   Ú	signatureÚ	challenger   s        €€r   r4   Ú.SSHAgentCryptosignKey.sign.<locals>.on_connect‰   sd   øé € ô
 ˜m×2Ñ2Ó4°d·o±oÈT°oÐ6RÐSÓT�ð (-§~¡~°d¸IÓ'FÑ!F�Ü")¨.Ó"9‘�à—‘×.Ñ.Ô0ä˜IÕ&ùs   ƒA0A3)r6   r7   r)   r   r8   r
   r9   r	   r   r:   r   r;   )r   rJ   r=   r>   r?   r4   s   ``    r   ÚsignÚSSHAgentCryptosignKey.sign   s}   ù€ Ø¤b§j¡jÓ0ÜÐ :Ó;Ð;ä“iˆGØ!ˆGŒMÜ-ˆGÔÜ)¨$¯-©-¼¿¹ÀOÑ9TÓUˆHØ× Ñ  Ó)ˆAäõ'ó ð'ð —=‘= Ó,Ð,r   )r   )NN)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úclassmethodr@   rL   Ú__static_attributes__© r   r   r   r   9   s&   † ñ	ô	$ð 
ó3	-ó 
ð3	-õj	-r   )Úautobahn.wamp.cryptosignr   r   Útwisted.internet.deferr   r   Ú__all__Útwisted.internet.protocolr   Útwisted.internet.endpointsr	   Útwisted.conch.ssh.agentr
   r   ÚappendÚImportErrorr6   Únaclr   r   r   r   r   rU   r   r   Ú<module>r_      s   ð÷8 Cç ?ð ð€ö ð0õ 	6ÝAÝ:ð
 #'ÐØ�‰Ð.Ô/ö ãÝßQÑQô_- õ _-ð øð ó (à"'Òð(ús   œA) Á)A4Á3A4