+
    '(j:                     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_Ed448x   ^@ 518`b8Cl\p*At(qmj.<+FaS[/SDZ74_3	y   zadoeC@
ZK^DsxssZhNx02>Ilq2 vIZugt'   UU*UU*UU*UU*UU*UU*UU*UUTU*UU*UU*UU*UU*UU*UU*U   'U7oWW9/Y^aT,+ "67!V=6 V!(Yf\V^l   /\@9uKQZ[1V?N__Nybj3\\A"f-d=H"\Xl   V1M0AZZ?M}pNmoQC;A|s[l$Hj=KnsI^Z ed448curvec                R    V P                  V P                  P                  R 4       R# )Ed448N)assertEqualpointGr   selfs   &]/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/SelfTest/PublicKey/test_ECC_Ed448.pytest_curve_attribute'TestEccPoint_Ed448.test_curve_attribute<   s    **G4    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      4 $BtLx;c=yHjPb%0VN[{=Cmv`'W,7$-3yS   5eQLD%D* X<f%g9'=}. m(eXj`[V~rr'_(QQW)r   r   r   N)r      )r   Gxyr   r   r   xyr   copypointG2assertRaises
ValueError)r   paibpbp2s   &   r   test_init_xyTestEccPoint_Ed448.test_init_xy?   sr   #W= q!7+""( [[   R  	S   R  	Srtt- ll!  !S  	T  !S  	T#%%0 	  F F	 
 	*hBgFr    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_Ed448.test_set\   sX    !Qg.

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_Ed448.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_Ed448.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_Ed448.test_paim   s<    q!7+00233356r    c                    V P                   ) pV P                   V,           pV P                  VP                  4       4       R # r8   )r   rB   rC   )r   negGsums   &  r   test_negateTestEccPoint_Ed448.test_negater   s0    |kkD 0023r    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_Ed448.test_additionw   s    t||3T\\B3T\\B(E(E(GGV6684<<GV\\DLL(   R  	S   R  	Sr    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(   rM   rD   )r   r=   s   & r   test_inplace_addition(TestEccPoint_Ed448.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_Ed448.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   0t
r<)b^pW!:;EE=0i1_R#"8zNUD=J>9(X83`cK;	l   9[[u!
"jr(zGxKaI0_x|Kr R3K,N7f%~r"   r#   l   =0!EZs-$@bDU=N.r1aJOi4A8ac)d>59Yhl   g_I'*k[QP`1?\W5p_`?k?w7:hk9
C9%?qI /X~	l   8`}\&0<
FYr pcJ)A}<CONfT`~c|B6l   6,81$Lg}HH>"Hos2'@`C#*4x'16F|3[l   kM`7C5SWh+k3 	e6\D=C:D`IecjE<n`"586XDl   S-Kjd5|X1O|S_Cz:~R,QGsCSnYs   l   ,Kl?rQsU5xfaZ3}-8U53v;IV(`v>GuOC3l   $`:i	z=nUYzz*ZGb9LhQut.q97URMT|sia\[yFd6}N)r   r   r   r   r(   rM   )r   dr=   s   &  r   test_scalar_multiply'TestEccPoint_Ed448.test_scalar_multiply   s   [[1%1%[[4;;==14;;==1[[4<<>>24<<>>2[[4<<>>24<<>>2[[  $V  	W  $V  	W[[  $V  	W  $V  	W[[  $V  	W  $V  	W[[  $V  	W  $V  	W[[  $V  	W  $V  	W[[  $V  	W  $V  	Wr    c                    V P                  V P                  P                  4       R 4       V P                  V P                  P                  4       ^84       R# )i  N)r   r   size_in_bitssize_in_bytesr   s   &r   
test_sizesTestEccPoint_Ed448.test_sizes   s<    113S9224b9r     N)__name__
__module____qualname____firstlineno__r%   G2xyG3xyr   r   r(   rM   r   r.   r5   r9   r?   rE   rJ   rO   rR   rW   r\   ra   __static_attributes____classdictcell____classdict__s   @r   r   r   -   s       C  CDC   D  DED   C  DED c#hC8FtCy$s)7;GtCy$s)7;G5G:22
17
4
S/
&1W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_Ed448c                   \        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	# )
r4adf5d37ac6785e83e99a924f92676d366a78690af59c92b6bdf14f9cdbcf26fdad478109607583d633b60078d61d51d81b7509c5433b0d4c9   &`</?xx#psSac9,v#_+*gs{*[J/5/pT*#DXshPT   .pv"h5Twe0~K}Y+VA+Ec4wqcp&AZl],BPr   r   seed   _Rh+#Sb,n@w8)YJC7M_Sr/8k1Xc>KOr   )r   ru   point)r   r[   N)r   r	   r   ru   r[   rB   has_privatepointQr   r   r   r)   r*   )r   ru   PxPykeyrw   s   &     r   test_private_key!TestEccKey_Ed448.test_private_key   s     N  O7.4(  !S  	T)*r*r*)7;  !S  	T)*U+ 7. 	*fGqAr    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   rw   N)	r   r   GxGyr	   assertFalserx   r   ry   )r   rw   r|   s   &  r   test_public_key TestEccKey_Ed448.test_public_key   s[    ),,gg.>.A.AQ7%0*+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   rt   N9   HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH)r	   
public_keyr   rx   r   ry   )r   priv_keypub_keys   &  r   test_public_key_derived(TestEccKey_Ed448.test_public_key_derived   sK    g6%%',,./'..9r    c                4    V P                  \        R  4       R# )c                      \        R RR7      # )r   rt   s8   HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH)r	   rc   r    r   <lambda>4TestEccKey_Ed448.test_invalid_seed.<locals>.<lambda>   s    f7.Sr    N)r)   r*   r   s   &r   test_invalid_seed"TestEccKey_Ed448.test_invalid_seed   s    *&STr    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   )ru   r   r   Nr   s9   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC)r   	constructr   r   r<   )r   private_keyprivate_key2private_key3r   public_key2public_key3s   &      r   test_equalityTestEccKey_Ed448.test_equality   s    mm@}}'A}}'A ++-
"--/"--/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='Ed448'r   N)r   generateassertInreprr   r   r   )r   r|   s   & r   test_name_consistency&TestEccKey_Ed448.test_name_consistency  sS    ll)otCy1G,)//9r    rc   N)rd   re   rf   rg   r}   r   r   r   r   r   rj   rk   rl   s   @r   ro   ro      s*     B0,:U5": :r    ro   c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestEccModule_Ed448i  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   rx   r   r   r   r   r[   r   ry   r<   r   newread)r   r|   rw   key2key1s   &    r   test_generate!TestEccModule_Ed448.test_generate  s    ll))*),,gg.>.A.AQTWTYTYYU+ ||'*C& 	7# ||'HLLN4G4GH||'HLLN4G4GH$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
# )rq   rr   rs   rv   r   r   rt   )r   point_xpoint_y)r   ru   r   r   r   N)	r   r   r   r   r   ry   rB   rx   r   )r   ru   rz   r{   r[   rw   r|   s   &      r   test_construct"TestEccModule_Ed448.test_construct#  s      N  O~w/ mm'5U+)* mm'2BU+*+ mm'"MU+)* mm'5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[   rt   Ns:   HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH)dictr   r   r   r)   r*   r   r   )r   coordcoordGs   &  r   test_negative_construct+TestEccModule_Ed448.test_negative_construct<  s    R+gg.1177;K;N;NO*cmmL7LeL*cmmR7RaR6R*cmm7Qr    rc   N)	rd   re   rf   rg   r   r   r   rj   rk   rl   s   @r   r   r     s     %$62R Rr    r   c                     . pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV# r8   )r   r   ro   r   )configtestss   & r   	get_testsr   E  s<    E	_/00E	_-..E	_011ELr    __main__c                  >    \         P                  ! \        4       4      # r8   )unittest	TestSuiter   rc   r    r   suiter   N  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   ro   r   r   rd   r   mainrc   r    r   <module>r      s   >   5 4   : : '  ^:** ^:B>:x(( >:B3R(++ 3Rl   z/MMg& r    