+
    '(jd6                     2   ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
HtHt ^ RIHt ^ RIHt  ! R	 R
] P"                  4      t ! R R] P"                  4      t ! R R] P"                  4      t/ 3R lt]R8X  d   R t] P0                  ! RR7       R# R# )    N)	unhexlify)list_test_cases)load_test_vectors)ECC)EccPoint_curvesEccKey)Integer)SHAKE128c                   "  a  ] tR t^-t o RRRR/tRRRR/tRRRR/t]! ]R,          ]R,          R	R
7      t]! ]R,          ]R,          R	R
7      t	]! ]R,          ]R,          R	R
7      t
R tR 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R# )TestEccPoint_Ed25519x   UK5J,{$%Xci\-G'
lJ[sii!y   XfL33ffL33ffL33ffL33ff   NP8-E:E,g`t!C@'&6   #Ur`
YTV>D&#!8eHBf`"l   \b'!cjI,`!c:5Ps%Q%Ngl   4q!!@0dvw=M95:5M]Xged25519curvec                R    V P                  V P                  P                  R 4       R# )Ed25519N)assertEqualpointGr   selfs   &_/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/SelfTest/PublicKey/test_ECC_Ed25519.pytest_curve_attribute)TestEccPoint_Ed25519.test_curve_attribute<   s    **I6    c                   \        V P                  R ,          V P                  R,          RR7       \        ^ ^RR7      pV P                  VP                  ^ 4       V P                  VP                  ^4       V P                  VP
                  R4       V P                  P                  4       pV P                  VP                  R4       V P                  VP                  R4       V P                  VP
                  VP                  VP                  34       V P                  P                  4       pV P                  VP                  R4       V P                  VP                  R4       V P                  VP
                  VP                  VP                  34       \        RR	RR
7       V P                  \        \         ^"^#RR7       R# )r   r   r   r   r   r   r   r      3r]d s
Y|CO~\^K[D_{?kx+SI   H,~5a(21f$&Rpc~U?&H_)r   r   r   N)r      )r   Gxyr   r   r   xyr   copypointG2assertRaises
ValueError)r   paibpbp2s   &   r   test_init_xy!TestEccPoint_Ed25519.test_init_xy?   sT   #Y? q!9-""( [[lmlmrtt- ll! mn mn#%%0 	`` 	"
 	*hBiHr    c                   \        ^ ^RR7      pVP                  V P                  4       V P                  VP                  V P                  P                  4       V P                  VP
                  V P                  P
                  4       R# r   r   r   N)r   setr   r   r   r   r   pointWs   & r   test_setTestEccPoint_Ed25519.test_set\   sX    !Qi0

4;;4;;==14;;==1r    c                    V P                   P                  4       pV P                  VP                  V P                   P                  4       V P                  VP                  V P                   P                  4       R # N)r   r'   r   r   r   r3   s   & r   	test_copyTestEccPoint_Ed25519.test_copyb   sL    !!#4;;==14;;==1r    c                    V P                   P                  4       pV P                  P                  4       pV P                  V P                   V4       V P	                  V P                   V4       R # r8   )r   r'   r(   r   assertNotEqual)r   pointHpointIs   &  r   
test_equalTestEccPoint_Ed25519.test_equalg   sN    !!#""$f-DKK0r    c                    \        ^ ^RR7      pV P                  VP                  4       4       V P                  WP	                  4       4       R# r1   )r   
assertTrueis_point_at_infinityr   point_at_infinity)r   r+   s   & r   test_paiTestEccPoint_Ed25519.test_paim   s<    q!9-00233356r    c                    V P                   ) pV P                   ^d,          pW!^d,          ,           pV P                  VP                  4       4       W!,           pV P                   ^c,          pV P                  WE4       R# )d   N)r   rB   rC   r   )r   negGG100sum_zerosum_99expecteds   &     r   test_negate TestEccPoint_Ed25519.test_negater   s_    |{{S *$5578;;#*r    c                   V P                  V P                  V P                  ,           V P                  4       V P                  V P                  V P                  ,           V P                  4       V P                  V P                  V P                  P	                  4       ,           V P                  4       V P                  V P                  P	                  4       V P                  ,           V P                  4       V P                  V P                  ,           pV P                  VP
                  R 4       V P                  VP                  R4       R# )r"   r#   N)r   r   r(   pointG3rD   r   r   )r   G5s   & r   test_addition"TestEccPoint_Ed25519.test_addition|   s    t||3T\\B3T\\B(E(E(GGV6684<<GV\\DLL(lmlmr    c                d   V P                   P                  4       pWP                   ,          pV P                  WP                  4       WP                   ,          pV P                  WP                  4       WP                   P                  4       ,          pV P                  WP                  4       R # r8   )r   r'   r   r(   rQ   rD   )r   r=   s   & r   test_inplace_addition*TestEccPoint_Ed25519.test_inplace_addition   sw    !!#++.++.++//11.r    c                   V P                   P                  4       pVP                  4        V P                  VP                  V P
                  P                  4       V P                  VP                  V P
                  P                  4       V P                   P                  4       pVP                  4       pVP                  4        V P                  W24       R # r8   )r   r'   doubler   r   r(   r   rD   )r   r=   r+   pointRs   &   r   test_doubling"TestEccPoint_Ed25519.test_doubling   s    !!#4<<>>24<<>>2 kk++-%r    c                   ^ pWP                   ,          pV P                  VP                  ^ 4       V P                  VP                  ^4       ^pWP                   ,          pV P                  VP                  V P                   P                  4       V P                  VP                  V P                   P                  4       ^pWP                   ,          pV P                  VP                  V P                  P                  4       V P                  VP                  V P                  P                  4       ^pWP                   ,          pV P                  VP                  V P
                  P                  4       V P                  VP                  V P
                  P                  4       ^pWP                   ,          pV P                  VP                  R4       V P                  VP                  R4       ^pWP                   ,          pV P                  VP                  R4       V P                  VP                  R4       ^
pWP                   ,          pV P                  VP                  R4       V P                  VP                  R4       ^pWP                   ,          pV P                  VP                  R4       V P                  VP                  R4       ^pWP                   ,          pV P                  VP                  R	4       V P                  VP                  R
4       RpWP                   ,          pV P                  VP                  R4       V P                  VP                  R4       R# )r   l   px	_ItTyd09yAja.2h(~UmT= l   /d-yEyLl*up2rtGr"   r#   l   Oy|$DG? wyJ;GTM2<,`l   ,{URCT;<O!S;%O1"Sj"|dU~cl   yV	ZD)CBiunU]Su;2<gl   8Zx^ioi,Uo8pk
EQUSA-ull   

+pR'
+KC0kRqPQ|qtQl   aj 53TotKa1*lO|=<#^S\1   l   V%tsv*,>ZI ^Nn~=S~^l   v, p$f}L&*]/O |:UN)r   r   r   r   r(   rQ   )r   dr=   s   &  r   test_scalar_multiply)TestEccPoint_Ed25519.test_scalar_multiply   sn   [[1%1%[[4;;==14;;==1[[4<<>>24<<>>2[[4<<>>24<<>>2[[#pq#pq[[#pq#pq[[#pq#pq[[#pq#op[[#pq#pq[[#pq#opr    c                    V P                  V P                  P                  4       ^4       V P                  V P                  P                  4       ^ 4       R# )   N)r   r   size_in_bitssize_in_bytesr   s   &r   
test_sizesTestEccPoint_Ed25519.test_sizes   s<    113S9224b9r     N)__name__
__module____qualname____firstlineno__r%   G2xyG3xyr   r   r(   rQ   r   r.   r5   r9   r?   rE   rN   rS   rV   r[   r`   rf   __static_attributes____classdictcell____classdict__s   @r   r   r   -   s     ]]_C ^^`D ^]_D c#hC	:FtCy$s)9=GtCy$s)9=G7I:22
17
+n/
&1qf: :r    r   c                   D   a  ] tR t^t o R tR tR tR tR tR t	Rt
V tR# )	TestEccKey_Ed25519c                   \        R 4      pRpRp\        RVR7      pV P                  VP                  V4       V P                  VP                  R4       V P                  VP                  4       4       V P                  VP                  P                  V4       V P                  VP                  P                  V4       \        W#R4      p\        RWR7      pV P                  VP                  R4       V P                  VP                  4       4       V P                  VP                  V4       \        RVR7      pV P                  \        \        R^R7       R	# )
@9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60   En<	KBc	 !5?)&
MpU   Z0FU8[=t2:ek6RrU@ZQr   r   seed   0|>!Y,$%<0 <}Oe<Z&Or   )r   rz   point)r   r_   N)r   r	   r   rz   r_   rB   has_privatepointQr   r   r   r)   r*   )r   rz   PxPykeyr|   s   &     r   test_private_key#TestEccKey_Ed25519.test_private_key   s
   [\ZZ9404( mn)*r*r*+94= mn)*U+ 940 	*fICr    c                   \        \        R ,          P                  \        R ,          P                  R R7      p\	        R VR7      pV P                  VP                  4       4       V P                  VP                  V4       R# )r   r   )r   r|   N)	r   r   GxGyr	   assertFalser}   r   r~   )r   r|   r   s   &  r   test_public_key"TestEccKey_Ed25519.test_public_key   s[    +..	0B0E0EYW9E2*+U+r    c                    \        R RR7      pVP                  4       pV P                  VP                  4       4       V P	                  VP
                  VP
                  4       R# )r   ry   N    HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH)r	   
public_keyr   r}   r   r~   )r   priv_keypub_keys   &  r   test_public_key_derived*TestEccKey_Ed25519.test_public_key_derived   sK    	8%%',,./'..9r    c                4    V P                  \        R  4       R# )c                      \        R RR7      # )r   ry      HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH)r	   rh   r    r   <lambda>6TestEccKey_Ed25519.test_invalid_seed.<locals>.<lambda>   s    f99.Ur    N)r)   r*   r   s   &r   test_invalid_seed$TestEccKey_Ed25519.test_invalid_seed   s    *&UVr    c                   \         P                  ! RRR7      p\         P                  ! RRR7      p\         P                  ! RRR7      pVP                  4       pVP                  4       pVP                  4       pV P                  W4       V P	                  W4       V P                  WE4       V P	                  WF4       V P	                  WA4       R# )   Hr   )rz   r   r   Nr   s    CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC)r   	constructr   r   r<   )r   private_keyprivate_key2private_key3r   public_key2public_key3s   &      r   test_equality TestEccKey_Ed25519.test_equality   s    mm	B}}'C}}'C ++-
"--/"--/3K61J4J4r    c                    \         P                  ! R R7      pV P                  R\        V4      4       V P	                  VP
                  R4       V P	                  VP                  4       P
                  R4       R# )r   r   zcurve='Ed25519'r   N)r   generateassertInreprr   r   r   )r   r   s   & r   test_name_consistency(TestEccKey_Ed25519.test_name_consistency  sT    ll+'c3I.)//;r    rh   N)ri   rj   rk   rl   r   r   r   r   r   r   ro   rp   rq   s   @r   rt   rt      s*     D0,:W5"< <r    rt   c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestEccModule_Ed25519i  c                   \         P                  ! R R7      pV P                  VP                  4       4       \	        \
        R ,          P                  \
        R ,          P                  R R7      VP                  ,          pV P                  VP                  V4       \         P                  ! R R7      pV P                  W4       \         P                  ! R R7       \         P                  ! R \        P                  ! 4       P                  R7      p\         P                  ! R \        P                  ! 4       P                  R7      pV P                  WC4       R# )r   r   )r   randfuncN)r   r   rB   r}   r   r   r   r   r_   r   r~   r<   r   newread)r   r   r|   key2key1s   &    r   test_generate#TestEccModule_Ed25519.test_generate  s    ll+)*+..	0B0E0EYWZ]Z_Z__U+ ||),C& 	9% ||)hlln6I6IJ||)hlln6I6IJ$r    c                f   \        R 4      pRpRpRp\        W#RR7      p\        P                  ! RVR7      pV P	                  VP
                  V4       V P                  VP                  4       4       \        P                  ! RW#R7      pV P	                  VP
                  V4       V P                  VP                  4       4       \        P                  ! RWVR7      pV P	                  VP
                  V4       V P                  VP                  4       4       \        P                  ! R	VR7      pR
# )rv   rw   rx   r{   r   r   ry   )r   point_xpoint_y)r   rz   r   r   r   N)	r   r   r   r   r   r~   rB   r}   r   )r   rz   r   r   r_   r|   r   s   &      r   test_construct$TestEccModule_Ed25519.test_construct(  s    [\ZZYy1 mm)$7U+)* mm)RDU+*+ mm)$BOU+)* mm)$7r    c                   \        ^
^R7      p\        \        R,          P                  \        R,          P                  R7      pV P                  ! \
        \        P                  3RR/VB  V P                  ! \
        \        P                  3RRR^/VB  V P	                  \
        \        P                  RRR7       R# )	
   )r   r   r   r   r   r_   ry   Nr   )dictr   r   r   r)   r*   r   r   )r   coordcoordGs   &  r   test_negative_construct-TestEccModule_Ed25519.test_negative_constructA  s    R+gi033WY=O=R=RS*cmmN9NN*cmmT9TTVT*cmm97Sr    rh   N)	ri   rj   rk   rl   r   r   r   ro   rp   rq   s   @r   r   r     s     %$82T Tr    r   c                     . pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV# r8   )r   r   rt   r   )configtestss   & r   	get_testsr   J  s<    E	_122E	_/00E	_233ELr    __main__c                  >    \         P                  ! \        4       4      # r8   )unittest	TestSuiter   rh   r    r   suiter   S  s    !!)+..r    r   )defaultTest)r   binasciir   Crypto.SelfTest.st_commonr   Crypto.SelfTest.loaderr   Crypto.PublicKeyr   Crypto.PublicKey.ECCr   r   r	   Crypto.Math.Numbersr
   Crypto.Hashr   TestCaser   rt   r   r   ri   r   mainrh   r    r   <module>r      s   >   5 4   : : '  c:8,, c:L><** ><B3TH-- 3Tl   z/MMg& r    