+
    '(j8                        ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
Ht ^ RIHtHt ^ RIHt ^ RIHt  ^ RItR	tRR ltR tR tR tR t ! R R]P6                  4      t ! R R]P6                  4      t ! R R]P6                  4      t ! R R]P6                  4      t/ 3R lt ]!R8X  d   R t"]PF                  ! RR7       R# R#   ] d    R
t Li ; i)    N)	unhexlify)SkipTest)list_test_cases)tostrFileNotFoundError)DerSequenceDerBitString)SHAKE128)ECCTFc                    R p \         '       g>   \        \        P                  \        P
                  ! \        P                  4      V 4      hRp\        P                  P                  \        P                  4      p\        P                  P                  \        P                  P                  ! V.VO5!  V 4      p\        WQ4      ;_uu_ 4       pVP                  4       pR R R 4       Tf   \!        RT ,          4      hT#   + '       g   i     L(; i  \         d!    \        P                  ! R\        ^R7        LUi ; i)Nz(Warning: skipping extended tests for ECC)
stacklevelz
Missing %s)	PublicKeyr   )test_vectors_availabler   errnoENOENTosstrerrorpathdirnamepycryptodome_test_vectors__file__joinopenreadwarningswarnUserWarningr   )	file_namemoderesults	dir_compsinit_dirfull_file_namefile_ins   &&     e/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/SelfTest/PublicKey/test_import_Curve25519.py	load_filer&   4   s    G$%%#ELL$&KK$=$-/ / )	77??#<#E#EFbggll8&Hi&H)T.''7llnG ( |i/00N ('  $@!!"	$$s5   D B?D D  D  D	D D (D>=D>c                     R P                  V 4      p\        \        V4      P                  RR4      P                  RR4      4      # )      :)r   r   r   replace)linesexts   & r%   compactr/   N   s8    
((5/CU3Z''R088bABBr(   c                      \        R 4      P                  4       p \        V R,          4      p\        P                  ! RVR7      pW"P                  4       3# )zecc_x25519.txt:      N
Curve25519)curveseed)r&   
splitlinesr/   r   	construct
public_key)	key_linesr5   keys      r%   create_ref_keys_x25519r;   S   sD    *+668I9S>"D
--l
6C!""r(   c                  ^    \         P                  ! 4       P                  R 4      P                  # )s   SEED)r
   newupdater    r(   r%   get_fixed_prngr@   Z   s    <<>  )...r(   c                     \        4       pVP                  V 4       \        4       pVP                  V^,          4       VP                  # )   )r   decoder	   value)dataseqbss   &  r%   extract_bitstring_from_spkirH   ^   s5    
-CJJt	BIIc!f88Or(   c                   ,   a  ] tR t^ft o R tR tRtV tR# )
TestImportc                P    V P                  \        \        P                  R 4       R# )r(   N)assertRaises
ValueErrorr   
import_keyselfs   &r%   
test_emptyTestImport.test_emptyh   s    *cnnc:r(   c                j    R p\        V4      pV P                  \        \        P                  V4       R# )`302e020100300506032b656f042204207009906b64ec727d5cb5c23007bf0425b3fd79014c6cd62ca3dddfcf0f278f79N)r   rL   rM   r   rN   )rP   mismatch_hexmismatchs   &  r%   test_mismatchTestImport.test_mismatchk   s'    y\**cnnh?r(   r?   N)__name__
__module____qualname____firstlineno__rQ   rW   __static_attributes____classdictcell____classdict__s   @r%   rJ   rJ   f   s     ;@ @r(   rJ   c                   n   a a ] tR t^rt oV 3R ltR tR tR tR tR t	R t
R tR	 tR
 tR tRtVtV ;t# )TestImport_Curve25519c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # N)superrb   __init__r;   ref_private
ref_publicrP   argskwargs	__class__s   &*,r%   rf   TestImport_Curve25519.__init__t   *    #T3TDVD,B,D)$/r(   c                J   \        R 4      p\        P                  ! V4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_x25519_public.derN)r&   r   _import_subjectPublicKeyInfoassertEqualrh   _import_derrN   rP   key_filer:   s   &  r%   test_import_public_der,TestImport_Curve25519.test_import_public_derx   sw    45..x8#.ooh-#.nnX&#.r(   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )ecc_x25519_private.derNr&   r   rs   rr   rg   rN   rt   s   &  r%   test_import_pkcs8_der+TestImport_Curve25519.test_import_pkcs8_der   sW    56ooh-))3/nnX&))3/r(   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_x25519_private_p8.dersecretNrz   rt   s   &  r%   %test_import_private_pkcs8_encrypted_1;TestImport_Curve25519.test_import_private_pkcs8_encrypted_1   sY    89ooh1))3/nnXx0))3/r(   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       R# )zecc_x25519_private_p8.pemr~   Nr&   r   rN   rr   rg   rt   s   &  r%   %test_import_private_pkcs8_encrypted_2;TestImport_Curve25519.test_import_private_pkcs8_encrypted_2   s3    89nnXx0))3/r(   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_x25519_private_p8_2.derr~   Nrz   rt   s   &  r%   %test_import_private_pkcs8_encrypted_3;TestImport_Curve25519.test_import_private_pkcs8_encrypted_3   sY    :;ooh1))3/nnXx0))3/r(   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )zecc_x25519_x509.derN)r&   r   rs   rr   rh   rN   rt   s   &  r%   test_import_x509_der*TestImport_Curve25519.test_import_x509_der   sS    23ooh-#.nnX&#.r(   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_x25519_public.pemNr&   r   rN   rr   rh   rt   s   &  r%   test_import_public_pem,TestImport_Curve25519.test_import_public_pem   s/    45nnX&#.r(   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_x25519_private.pemNr   rt   s   &  r%   test_import_private_pem-TestImport_Curve25519.test_import_private_pem   s1    56nnX&))3/r(   c                   R F  p\        RV,          4      p\        P                  ! VR4      pV P                  V P                  V4       \        P                  ! \        V4      R4      pV P                  V P                  V4       K  	  R# )des3zecc_x25519_private_enc_%s.pemr~      secretN)r   aes128aes192aes256)r&   r   rN   rr   rg   r   )rP   algoru   r:   s   &   r%   !test_import_private_pem_encrypted7TestImport_Curve25519.test_import_private_pem_encrypted   sl    8D !@4!GHH..84CT--s3..x)<CT--s3 9r(   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )zecc_x25519_x509.pemNr   rt   s   &  r%   test_import_x509_pem*TestImport_Curve25519.test_import_x509_pem   s/    23nnX&#.r(   rg   rh   )rY   rZ   r[   r\   rf   rv   r{   r   r   r   r   r   r   r   r   r]   r^   __classcell__rl   r`   s   @@r%   rb   rb   r   sB     E
/0000//04/ /r(   rb   c                   n   a a ] tR t^t oV 3R ltR tR tR tR tR t	R t
R tR	 tR
 tR tRtVtV ;t# )TestExport_Curve25519c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # rd   )re   r   rf   r;   rg   rh   ri   s   &*,r%   rf   TestExport_Curve25519.__init__   rn   r(   c                *   \        R 4      pV P                  P                  R4      pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )rp   TDERformatF)r   compressN)r&   rh   _export_subjectPublicKeyInforr   
export_keyrP   ru   encodeds   &  r%   test_export_public_der,TestExport_Curve25519.test_export_public_der   s{    45//>>tD+//,,E,:+//,,EE,J+r(   c                &   \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  \        V P                  P                  RRR7       R# )ry   r   r   F)r   	use_pkcs8N)r&   rg   _export_pkcs8rr   r   rL   rM   r   s   &  r%   test_export_private_pkcs8_clear5TestExport_Curve25519.test_export_private_pkcs8_clear   s    56""002+ ""--U-;+*d&6&6&A&A!&% 	 	9r(   c                <   V P                   P                  R RR7      pV P                  \        \        P
                  VR4       \        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR^{/R7      p\        P                  ! VR 4      pV P                  V P                   V4       R# )	r~    PBKDF2WithHMAC-SHA1AndAES128-CBC)
passphrase
protectionNr   r   r   r   z"PBKDF2WithHMAC-SHA256AndAES128-CBCiteration_count)r   r   r   prot_params)	rg   r   rL   rM   r   _import_pkcs8rr   r   rN   rP   r   decodeds   &  r%   #test_export_private_pkcs8_encrypted9TestExport_Curve25519.test_export_private_pkcs8_encrypted   s   ""00H<^ 1 ` 	*c&7&7$G##GX6))73 ""--U9A9[ . ] ..(3))73 ""--U9A9];Lc:R . T ..(3))73r(   c                    \        R R4      P                  4       pV P                  P                  RR7      P                  4       pV P	                  W4       R# )r   rtPEMr   N)r&   striprh   r   rr   )rP   key_file_refru   s   &  r%   test_export_public_pem,TestExport_Curve25519.test_export_public_pem  sF     !8$?EEG??--U-;AAC0r(   c                    \        R R4      P                  4       pV P                  P                  RR7      P                  4       pV P	                  W4       R# )r   r   r   r   N)r&   r   rg   r   rr   r   s   &  r%   test_export_private_pem_clear3TestExport_Curve25519.test_export_private_pem_clear  sH    5t<BBD""--U-;AAC+r(   c                   V P                   P                  R RRR7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR4      pV P                  V P                   V4       R# )r   r   r   r   zENCRYPTED PRIVATE KEYr~   N)rg   r   rL   rM   r   rN   rr   r   s   &  r%   !test_export_private_pem_encrypted7TestExport_Curve25519.test_export_private_pem_encrypted  sr    ""--U9B9[ . ]
 	*cnng>&'111..(3))73r(   c                    V P                   P                  R R7      pV P                  \        V4      ^ 4       V P                  V\	        R4      4       R# )rawr   s@   ff7561ef60c9c8a757f6d6372ec14142c9be208d0e719136d8d3c715dfcf7e15N)rh   r   rr   lenr   )rP   r   s   & r%   test_export_raw%TestExport_Curve25519.test_export_raw  sC    //,,E,:Wr*),o"pqr(   c                    V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# )r   r~   r   r   r   r   randfuncNrg   r   r@   rr   rP   encoded1encoded2s   &  r%   	test_prngTestExport_Curve25519.test_prng"  sh    ##..e:B:\8F8H / J ##..e:B:\8F8H / J 	,r(   c                    V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# )r   r~   r   r   r   Nr   r   s   &  r%   test_byte_or_string_passphrase4TestExport_Curve25519.test_byte_or_string_passphrase.  sh    ##..e:B:\8F8H / J ##..e:C:\8F8H / J 	,r(   c                   V P                  \        V P                  P                  R R7       V P                  \        V P                  P                  RRR7       V P                  \        V P                  P                  RRRR7       V P                  \        V P                  P                  RRRR	7       V P                  \        V P                  P                  R
RR7       R# )XXXr   r   r~   )r   r   r*   F)r   r   r   r   r   OpenSSHN)rL   rM   rg   r   rO   s   &r%   test_error_params1(TestExport_Curve25519.test_error_params19  s    *d&6&6&A&A%P 	***55!&%- 	 	/ 	***55!&%'$)	 	 	+
 	***55!&%'%G	 	 	I 	***55!*%- 	 	/r(   r   )rY   rZ   r[   r\   rf   r   r   r   r   r   r   r   r   r   r   r]   r^   r   r   s   @@r%   r   r      sC     E
,9461
,
4r

-	-/ /r(   r   c                   &   a  ] tR tRt o R tRtV tR# )TestImport_Curve25519_WeakiV  c                   ^^,          ^,
          p^ ^RRV^,
          VV^,           VR,           VR,           V^,          ^,
          V^,          V^,          ^,           3pV Fi  p\         P                  ! VR4      p\         P                  ! VRR7      pVP                  RR7      pV P	                  \
        \         P                  V4       Kk  	  R# )   l   kxujaj\~|ObjZs	oP,E$ l   _+yBb$:6gw[8cph[DS7OW
curve25519)pointr4   r   r   N)r   	EccXPointEccKeyr   rL   rM   rN   )rP   pweak_xxlow_order_pointweak_keyr   s   &      r%   test_weak_pem(TestImport_Curve25519_Weak.test_weak_pemX  s    sFRK]_a%a%aacca%!)a%a%!) A!mmA|<Ozz|LH)))7Gj!nn%' r(   r?   N)rY   rZ   r[   r\   r   r]   r^   r_   s   @r%   r   r   V  s     ' 'r(   r   c                     . p V\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV#   \
         d     T# i ; ird   )r   rJ   rb   r   r   r   )configtestss   & r%   	get_testsr   r  sk    E,,!677!677!;<< L  Ls   AA A-,A-__main__c                  >    \         P                  ! \        4       4      # rd   )unittest	TestSuiter   r?   r(   r%   suitr     s    !!)+..r(   suite)defaultTest)rb)$r   r   r   r   binasciir   r   Crypto.SelfTest.st_commonr   Crypto.Util.py3compatr   r   Crypto.Util.asn1r   r	   Crypto.Hashr
   Crypto.PublicKeyr   r   r   ImportErrorr&   r/   r;   r@   rH   TestCaserJ   rb   r   r   r   rY   r   mainr?   r(   r%   <module>r
     s   > 
      5 : 6    #$!
4C
#/	@"" 	@V/H-- V/rH/H-- H/V'!2!2 '8  	 z/MMg& ]
  #"#s    C 	CC