ó
    ð›‘h¡&  ã                   óf  • S SK r S SKrS SKrS SKrS SKJr  S SKrS SKrS SKJ	r	  S SK
Jr  S SKJr  S SKJr  S SKJrJrJr  S SKJr  S	\R,                  ;   a/  S
R/                  \R,                  S	   \R0                  " 5       5      rOSr " S S\R4                  5      rSS jrSS jr " S S\5      rg)é    N)ÚOrderedDict)Ú
SigningKey)Ú
HexEncoder)ÚKeyAPI)ÚNativeECCBackend)ÚutcnowÚwrite_keyfileÚparse_keyfile)Ú
cryptosignÚUSERú{}@{}Úunknownc                   ó(   • \ rS rSrSrSrS rS rSrg)ÚEmailAddressé3   z
Email address validator.
zEmail addressc                 óB   • [         R                  R                  U 5        g ©N)ÚclickÚ	ParamTypeÚ__init__©Úselfs    ÚYC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\autobahn/xbr/_userkey.pyr   ÚEmailAddress.__init__:   s   € Ü�‰× Ñ  Õ&ó    c                 ó€   • [         R                  " SU5      (       a  U$ U R                  SR                  U5      5        g )Nz0^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$zinvalid email address "{}")ÚreÚmatchÚfailÚformat)r   ÚvalueÚparamÚctxs       r   ÚconvertÚEmailAddress.convert=   s1   € Ü�8Š8ÐGÈ×OÑOØˆLØ�	‰	Ð.×5Ñ5°eÓ<Õ=r   © N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Únamer   r$   Ú__static_attributes__r&   r   r   r   r   3   s   † ñð €Dò'õ>r   r   c                 ó¾   • U (       a  [         $  [        R                  " S[        5       [         S9n[        R                  " SR                  U5      SS9(       a   U$ MP  )NTzPlease enter your email address)ÚtypeÚdefaultz,We will send an activation code to "{}", ok?)r0   )Ú_DEFAULT_EMAIL_ADDRESSr   Úpromptr   Úconfirmr    )Ú
yes_to_allr!   s     r   Ú_user_idr5   C   sL   € ÞÜ%Ð%Ø
Ü—’Ð>Ä\Ã^Ô]sÑtˆÜ�=Š=ÐG×NÑNÈuÓUÐ_c×dØØ€Lñ	 r   c                 óÞ   • U (       a  [         $  [        R                  " 5       n [        R
                  " 5       nSR                  X5      $ ! [         a    Sn N5f = f! [         a    Sn N1f = f)zI
for informational purposes, try to identify the creator (user@hostname)
r   r   )r1   ÚgetpassÚgetuserÚBaseExceptionÚsocketÚgethostnamer    )r4   ÚuserÚhostnames      r   Ú_creatorr>   M   sm   € ö Ü%Ð%ð	Ü—?’?Ó$ˆDð	!Ü×)Ò)Ó+ˆHð �~‰~˜dÓ-Ð-øô ó 	ØŠDð	ûô
 ó 	!Ø ŠHð	!ús"   �A ¥A ÁAÁAÁA,Á+A,c                   ó.   • \ rS rSrSS jrS rSS jrSrg)	ÚUserKeyéa   c                 óÚ   • Xl         X l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l	        U R                  U R                   U R                  U5        g r   )Ú_privkey_pathÚ_pubkey_pathÚkeyr>   Ú_created_atÚuser_idÚ_privkeyÚ_privkey_hexÚ_pubkeyÚ_pubkey_hexÚ_load_and_maybe_generate)r   ÚprivkeyÚpubkeyr4   s       r   r   ÚUserKey.__init__b   sg   € à$ÔØ"ÔàˆŒØˆŒØˆÔØˆŒØˆŒØ ˆÔØˆŒØˆÔØ×%Ñ% d×&8Ñ&8¸$×:KÑ:KÈZÕXr   c                 ód   • SR                  U R                  U R                  U R                  5      $ )Nz'UserKey(privkey="{}", pubkey="{}" [{}]))r    rC   rD   rK   r   s    r   Ú__str__ÚUserKey.__str__q   s1   € Ø8×?Ñ?À×@RÑ@RÐTX×TeÑTeØ@D×@PÑ@PóRð 	Rr   c                 ó*
  • [         R                  R                  U5      (       Ga>  [        USS9nS H"  nXT;  d  M
  [	        SR                  X5      5      e   US   nUS   nUS   nUS   n	[        U	[        S	9n
U
R                  nUR                  [        S	9R                  S
5      nUS   U:w  a  [	        SR                  U5      5      eS nS nUR                  SS 5      nU(       aw  [        R                  " U5      n[        [        5      R!                  U5      nUR"                  R%                  5       nSU;   a#  US   U:w  a  [	        SR                  U5      5      e[         R                  R                  U5      (       aˆ  [        USS9nS H#  nUU;  d  M  [	        SR                  X%5      5      e   US   U:w  a  [	        SR                  U5      5      eUR                  SS 5      U:w  a  [	        SR                  X!5      5      eGO['        SUS   4SUS   4SUS   4SU4SU4/5      nSn[)        UUU5        [*        R,                  " SR                  U5      5        GO²[/        U5      n[1        5       n[3        U5      n[        R4                  " 5       n
U
R                  [        S	9R                  S
5      n	U
R                  nUR                  [        S	9R                  S
5      n[         R6                  " S5      n[        R8                  " U5      R                  5       n[        [        5      R!                  U5      nUR"                  R%                  5       n['        SU4SU4SU4SU4SU4/5      nSn[)        UUU5        [         R:                  " US5        U	US'   UUS'   Sn[)        UUU5        [         R:                  " US5        [*        R,                  " SR                  U5      5        [*        R,                  " SR                  SU5      5        [         R<                  " U5      R>                  S-  S:w  a-  [         R:                  " US5        [*        R,                  " S5        [         R<                  " U5      R>                  S-  S:w  a-  [         R:                  " US5        [*        R,                  " S 5        X`l        Xpl         X l!        X�l"        X°l#        XÀl$        XÐl%        Xðl&        Xàl'        X€l(        [R        RT                  " U
SS!9U l+        g )"NT)Úprivate)Úcreatorú
created-atúuser-idúpublic-key-ed25519úprivate-key-ed25519z3Corrupt user private key file {} - {} tag not foundrU   rV   rW   rY   )ÚencoderÚasciirX   zdInconsistent user private key file {} - public-key-ed25519 doesn't correspond to private-key-ed25519zprivate-key-ethzpublic-adr-ethz\Inconsistent node private key file {} - public-adr-eth doesn't correspond to private-key-ethF)rU   rV   rW   rX   z2Corrupt user public key file {} - {} tag not foundzcInconsistent user public key file {} - public-key-ed25519 doesn't correspond to private-key-ed25519zrInconsistent user public key file {} - public-adr-eth doesn't correspond to private-key-eth in private key file {}zCrossbar.io user public key

z/Re-created user public key from private key: {}é    i¤  z0Crossbar.io user private key - KEEP THIS SAFE!

i€  z!New user public key generated: {}z'New user private key generated ({}): {}zkeep this safe!iÿ  z*File permissions on user public key fixed!z+File permissions on user private key fixed!)Úcan_sign),ÚosÚpathÚexistsr
   Ú	Exceptionr    r   r   Ú
verify_keyÚencodeÚdecodeÚgetÚbinasciiÚa2b_hexr   r   Ú
PrivateKeyÚ
public_keyÚto_checksum_addressr   r	   r   Úechor>   r   r5   ÚgenerateÚurandomÚb2a_hexÚchmodÚstatÚst_moderF   rH   rI   rJ   rK   Ú_eth_pubadrÚ_eth_privkey_seed_hexÚ_eth_privkeyrG   r   ÚCryptosignKeyrE   )r   Úprivkey_pathÚpubkey_pathr4   Ú	priv_tagsÚtagrU   Ú
created_atrG   Úprivkey_hexrM   rN   Ú
pubkey_hexÚ
eth_pubadrÚeth_privkeyÚeth_privkey_seed_hexÚeth_privkey_seedÚpub_tagsÚmsgÚtagss                       r   rL   Ú UserKey._load_and_maybe_generateu   sÚ  € ä�7‰7�>‰>˜,×'Ò'ô & l¸DÑAˆIÛh�ØÕ'Ü#Ð$Y×$`Ñ$`ÐamÓ$sÓtÐtñ ið   	Ñ*ˆGØ" <Ñ0ˆJØ 	Ñ*ˆGà#Ð$9Ñ:ˆKÜ  ´jÑAˆGØ×'Ñ'ˆFØŸ™¬z˜Ð:×AÑAÀ'ÓJˆJàÐ-Ñ.°*Ó<Üð "FßGMÁvÈkÓGZó\ð \ð ˆJØˆKØ#,§=¡=Ð1BÀDÓ#IÐ Þ#Ü#+×#3Ò#3Ð4HÓ#IÐ Ü$Ô%5Ó6×AÑAÐBRÓS�Ø(×3Ñ3×GÑGÓI�
Ø# yÓ0Ø Ð!1Ñ2°jÓ@Ü'ð *JßKQÉ6ÐR^ÓK_óað aô �w‰w�~‰~˜k×*Ñ*Ü(¨¸eÑD�ÛU�CØ (Õ*Ü'Ð(\×(cÑ(cÐdoÓ(uÓvÐvñ Vð Ð0Ñ1°ZÓ?Ü#ð &JßKQÉ6ÐR]ÓK^ó`ð `ð —<‘<Ð 0°$Ó7¸:ÓEÜ#ðQßRXÑRXÐYdÓRsóuð uñ Fô 'Ø 	¨)Ñ 4Ð5Ø! 9¨\Ñ#:Ð;Ø 	¨)Ñ 4Ð5Ø)¨:Ð6Ø% zÐ2ð(ó �ð 8�Ü˜k¨8°SÔ9ä—
’
ÐL×SÑSÐT_Ó`Öaô ˜zÓ*ˆGÜ›ˆJÜ˜zÓ*ˆGä ×)Ò)Ó+ˆGØ!Ÿ.™.´˜.Ð<×CÑCÀGÓLˆKØ×'Ñ'ˆFØŸ™¬z˜Ð:×AÑAÀ'ÓJˆJä!Ÿzšz¨"›~ÐÜ#+×#3Ò#3Ð4DÓ#E×#LÑ#LÓ#NÐ Ü Ô!1Ó2×=Ñ=Ð>NÓOˆKØ$×/Ñ/×CÑCÓEˆJô Ø˜GÐ$Ø˜zÐ*Ø˜GÐ$Ø% zÐ2Ø! :Ð.ð ó ˆDð 4ˆCÜ˜+ t¨SÔ1Ü�HŠH�[ #Ô&ð +6ˆDÐ&Ñ'Ø&:ˆDÐ"Ñ#ØFˆCÜ˜,¨¨cÔ2Ü�HŠH�\ 3Ô'ä�JŠJÐ:×AÑAÀ+ÓNÔOÜ�JŠJÐ@×GÑGÐHYÐ[gÓhÔiô �7Š7�;Ó×'Ñ'¨#Ñ-°Ó4Ü�HŠH�[ #Ô&Ü�JŠJÐCÔDä�7Š7�<Ó ×(Ñ(¨3Ñ.°#Ó5Ü�HŠH�\ 3Ô'Ü�JŠJÐDÔEð  ŒØ%ÔàŒØ'ÔØŒØ%Ôà%ÔØ%9Ô"Ø'ÔàŒÜ×+Ò+¨G¸dÑCˆ�r   )rF   r>   rt   rs   rr   rH   rI   rC   rJ   rK   rD   rE   rG   N)T©F)r'   r(   r)   r*   r   rQ   rL   r-   r&   r   r   r@   r@   a   s   † ôYòR÷Dr   r@   r…   ) r   r^   rf   r:   Úcollectionsr   r7   r   Únacl.signingr   Únacl.encodingr   Úeth_keysr   Úeth_keys.backendsr   Úautobahn.utilr   r	   r
   Úautobahn.wampr   Úenvironr    Úgetfqdnr1   r   r   r5   r>   Úobjectr@   r&   r   r   Ú<module>r�      sŽ   ðó6 
Û 	Û Û Ý #ã Û å #Ý $å Ý .ç >Ñ >Ý $à	ˆR�Z‰ZÓØ$Ÿ^™^¨B¯J©J°vÑ,>ÀÇÂÓ@PÓQÑà&Ðô>�5—?‘?ô >ô ô.ô(SDˆfõ SDr   