+
    @ia                        ^ RI Ht ^ RIt^ RIHt ^ RIHtHtH	t	H
t
  ^ RIt^ RIt^RIHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtH t  ^RIH!t! / t"]PF                  R8  d   R]"R&    ! R R	]PH                  4      t% ! R
 R]PH                  4      t& ! R R]PH                  4      t' ! R R]PH                  4      t(]RRR3]RRR3]RRR3]RRR3]RRR3]RRR3]RRR3]R R!R3]R"R#R3]R$R%R3]R&R'R3]R(R)R3.t)]PT                  PW                  R*])4      R+ 4       t,]]-! R,^4      R-R.R/R0R3]]-! R1^4      R2R3R4R5R3]]-! R6^4      R7R8R9R:R3]]-! R;^4      R<R=R>R?R3]]-! R@^4      RARBRCRDR3]]-! RE^4      RFRGRHRIR3]]-! RJ^4      RKRLRMRNR3]]-! RO^4      RPRQRRRSR3]]-! RT^4      RURVRWRXR3]]-! RY^4      RZR[R\R]R3]]-! R^^4      R_R`RaRbR3]]-! Rc^4      RdReRfRgR3]]-! Rh^4      RiRjRkRlR3]]-! Rm^4      RnRoRpRqR3]]-! Rr^4      RsRtRuRvR3.t.]PT                  PW                  Rw].4      Rx 4       t/]PT                  PW                  Rw]. U u. uF  q ^,          '       g   K  V NK  	  up 4      Ry 4       t0]Pb                  Rz 4       t2]3! ]"4      t4R{]Pj                  9   d   ^]4R|&   M^
]4R|&   ]! R/ ]4B ]
! ]^^^34      ]! ]2! 4       4      R} 4       4       4       t6R~ t7R#   ] d	    ^ RIt ELi ; iu up i )    )print_functionN)givensettingsnoteexample)Private_key
Public_key	Signaturegenerator_192digest_integerellipticcurvepoint_is_validgenerator_224generator_256generator_384generator_521generator_secp256k1	curve_192InvalidPointErrorcurve_112r2generator_112r2int_to_string)Pointi  deadlinec                   ^   a  ] tR t^(t o Rt]R 4       tR tR tR t	R t
R tR tR	 tR
tV tR# )TestP192FromX9_62zCheck test vectors from X9.62c                   R V n         V P                   \        ,          V n        RV n        V P                  \        ,          V n        RV n        \        \        \        V P                   ,          4      V n        \        V P                  V P                   4      V n	        V P                  P                  V P
                  V P                  4      V n        R# )l   uH=.t.#",W}7?jl   N/vZL_~XXw]ol   X9	BWGZ@G6|2N)dr   QkRmsgr	   pubkr   privksignsig)clss   &N/var/www/html/photoedit/myenv/lib/python3.14/site-packages/ecdsa/test_ecdsa.py
setUpClassTestP192FromX9_62.setUpClass+   s    I%J%Bm]SUU-BC#%%0	))..#%%0    c                H    V P                   P                  4       R 8X  g   Q hR# )l   Z`uSG;R-]]0sk	+N)r   xselfs   &r(   test_point_multiplication+TestP192FromX9_62.test_point_multiplication7   s    vvxxzOOOOr+   c                    V P                   P                  4       R 8X  g   Q hV P                   P                  4       R8X  g   Q hR# )   ~n&DJ,6'1a47b?`   5XD+8n#w}rO	N)r!   r-   yr.   s   &r(   test_point_multiplication_2-TestP192FromX9_62.test_point_multiplication_2:   s4    vvxxzOOOOvvxxzOOOOr+   c                    R pRpV\         ,          W P                  ,          ,           pVP                  4       R8X  g   Q hVP                  4       R8X  g   Q hR# )l   WTY>n+BtC*Yql   !M_JT96wfF[,z=r3   r4   N)r   r   r-   r5   )r/   u1u2temps   &   r(   test_mult_and_addition(TestP192FromX9_62.test_mult_and_addition>   sK    GGM!BK/vvxMMMMvvxMMMMr+   c                    V P                   P                  V P                   P                  r!VR 8X  g   Q hVR8X  g   Q hR# )r3   l   v;*Y<L u<+=<fN)r&   rs)r/   r?   r@   s   &  r(   test_signature TestP192FromX9_62.test_signatureE   s7    xxzz488::1NNNNNNNNr+   c                v    V P                   P                  V P                  V P                  4      '       g   Q hR # Nr#   verifiesr"   r&   r.   s   &r(   test_verification#TestP192FromX9_62.test_verificationJ   s'    yy!!$((DHH5555r+   c                    V P                   P                  V P                  ^,
          V P                  4      '       d   Q hR#    NrE   r.   s   &r(   test_rejection TestP192FromX9_62.test_rejectionM   s.    99%%dhhlDHH=====r+   c           	     R   \        \        \        P                  ! 4       \        P                  ! 4       \        P
                  ! 4       \        P                  ! 4       4      V P                  P                  4      pVP                  V P                  V P                  4      '       g   Q hR # rD   )r	   r   r   curver-   r5   orderr#   pointrF   r"   r&   )r/   r#   s   & r(   $test_verification_with_regular_point6TestP192FromX9_62.test_verification_with_regular_pointP   sn    ##%!!##%	 IIOO
 }}TXXtxx0000r+    N)__name__
__module____qualname____firstlineno____doc__classmethodr)   r0   r6   r<   rA   rG   rL   rR   __static_attributes____classdictcell____classdict__s   @r(   r   r   (   sF     '	1 	1PPNO
6>1 1r+   r   c                   b   a  ] tR t^^t o 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# )TestPublicKeyc                    \         pR pRp\        P                  ! VP                  4       W#4      p\	        W4      p\	        W4      pV P                  WV4       R#    y2HK@ @fj 6bkX   #(z>f^UT!]i&N)r   r   r   rO   r	   assertEqual)r/   genr-   r5   rQ   pub_key1pub_key2s   &      r(   test_equality_public_keys'TestPublicKey.test_equality_public_keys_   sK    >>##CIIK6c)c),r+   c                   \         pR pRp\        P                  ! VP                  4       W#4      pRpRp\        P                  ! VP                  4       WV4      p\	        W4      p\	        W4      p	V P                  W4       R# )rc   rd      ]/C{me@M 3(E   
UCz8"O{q&f0ANr   r   r   rO   r	   assertNotEqual
r/   rf   x1y1point1x2y2point2rg   rh   s
   &         r(   test_inequality_public_key(TestPublicKey.test_inequality_public_keyh   sm    ??$$SYY["9??$$SYY["9c*c*H/r+   c                   \         pR pRp\        P                  ! VP                  4       W#4      pRpRp\        P                  ! \        P                  ! 4       WV4      p\        W4      p\        \        V4      p	V P                  W4       R# )rc   rd   l   fiU1)LD8m
9 l   }s4<(F^zzj\ N)r   r   r   rO   r   r	   ro   rp   s
   &         r(    test_inequality_different_curves.TestPublicKey.test_inequality_different_curvesv   sr    ??$$SYY["9++$$_%:%:%<bEc*ov6H/r+   c                    \         pR pRp\        P                  ! VP                  4       W#4      p\	        W4      pV P                  VR4       R# rb   rn   )r/   rf   r-   r5   rQ   pub_keys   &     r(   *test_inequality_public_key_not_implemented8TestPublicKey.test_inequality_public_key_not_implemented   sC    >>##CIIK6S(GT*r+   c                   \         P                  ! \        P                  ! 4       \        P                  ! 4       \        P
                  ! 4       ^4      pRpRp\         P                  ! VP                  4       W#4      pV P                  \        4      ;_uu_ 4       p\        W4       RRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; i)rK   rc   rd   NzGenerator point must have order)r   PointJacobir   rO   r-   r5   r   assertRaisesr   r	   assertInstr	exception)r/   rf   r-   r5   rQ   es   &     r(   ,test_public_key_with_generator_without_order:TestPublicKey.test_public_key_with_generator_without_order   s    ''!=??#4moo6G
 ?>##CIIK6011Qs" 2 	7Q[[9IJ 21s   CC$	c                l   ^pRp\         P                  ! \        W^4      pV P                  \        P                  ! W4      4       V P                  \        4      ;_uu_ 4       p\        \        V4       RRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; i)       k2x7|oq_ NzGenerator point order)r   r   r   
assertTruecontains_pointr   r   r	   r   r   r   r   )r/   r-   r5   rQ   r   s   &    r(   <test_public_point_on_curve_not_scalar_multiple_of_base_pointJTestPublicKey.test_public_point_on_curve_not_scalar_multiple_of_base_point   s}    *))+qQ?22189011Q. 2 	-s1;;/?@ 21s   #B##B3	c                L    ^pRpV P                  \        \        W4      4       R# )r   r   N)assertFalser   r   )r/   r-   r5   s   &  r(   :test_point_is_valid_with_not_scalar_multiple_of_base_pointHTestPublicKey.test_point_is_valid_with_not_scalar_multiple_of_base_point   s!    *>?r+   c                   \         P                  ! \        R^ ^4      pV P                  \        4      ;_uu_ 4       p\        \        V4       RRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; i)rK   NThe public point has x or y
r   r   r   r   r   r	   r   r   r   r   r/   ptr   s   &  r(   test_invalid_point_x_negative+TestPublicKey.test_invalid_point_x_negative   s^    &&y"a;011Q}b) 2 	3S5EF 21   A;;B	c                B   \         P                  ! \        \        P                  ! 4       ^ ^4      pV P	                  \
        4      ;_uu_ 4       p\        \        V4       RRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; ir   Nr   r   r   r   pr   r   r	   r   r   r   r   r   s   &  r(   test_invalid_point_x_equal_p*TestPublicKey.test_invalid_point_x_equal_p   sd    &&y)++-AF011Q}b) 2 	3S5EF 21   BB	c                   \         P                  ! \        ^ R^4      pV P                  \        4      ;_uu_ 4       p\        \        V4       RRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; i)r   Nr   r   r   r   s   &  r(   test_invalid_point_y_negative+TestPublicKey.test_invalid_point_y_negative   s^    &&y!R;011Q}b) 2 	3S5EF 21r   c                B   \         P                  ! \        ^ \        P                  ! 4       ^4      pV P	                  \
        4      ;_uu_ 4       p\        \        V4       RRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; ir   r   r   s   &  r(   test_invalid_point_y_equal_p*TestPublicKey.test_invalid_point_y_equal_p   sd    &&y!Y[[]AF011Q}b) 2 	3S5EF 21r   rT   N)rU   rV   rW   rX   ri   rw   rz   r~   r   r   r   r   r   r   r   r[   r\   r]   s   @r(   r`   r`   ^   sI     -00+KA@GGGG Gr+   r`   c                   H   a  ] tR t^t o ]R 4       tR tR tR tR t	Rt
V tR# )TestPublicKeyVerifiesc                    \         pR pRp\        P                  ! VP                  4       W#4      p\	        W4      V n        R# rb   r   r   r   rO   r	   r}   r'   rf   r-   r5   rQ   s   &    r(   r)    TestPublicKeyVerifies.setUpClass   s5    >>##CIIK6 ,r+   c                t    \        ^ ^4      pV P                  V P                  P                  ^V4      4       R# )r   Nr
   r   r}   rF   r/   r&   s   & r(   test_sig_with_r_zero*TestPublicKeyVerifies.test_sig_with_r_zero   ,    1o..q#67r+   c                    \        \        P                  ! 4       ^4      pV P                  V P                  P                  ^V4      4       R# rJ   r
   r   rP   r   r}   rF   r   s   & r(   test_sig_with_r_order+TestPublicKeyVerifies.test_sig_with_r_order   s6    ++-q1..q#67r+   c                t    \        ^^ 4      pV P                  V P                  P                  ^V4      4       R# rJ   r   r   s   & r(   test_sig_with_s_zero*TestPublicKeyVerifies.test_sig_with_s_zero   r   r+   c                    \        ^\        P                  ! 4       4      pV P                  V P                  P                  ^V4      4       R# rJ   r   r   s   & r(   test_sig_with_s_order+TestPublicKeyVerifies.test_sig_with_s_order   s6    =..01..q#67r+   rT   N)rU   rV   rW   rX   rZ   r)   r   r   r   r   r[   r\   r]   s   @r(   r   r      s0     - -8
8
8
8 8r+   r   c                   B   a  ] tR t^t o ]R 4       tR tR tR tRt	V t
R# )TestPrivateKeyc                    \         pR pRp\        P                  ! VP                  4       W#4      p\	        W4      V n        R# rb   r   r   s   &    r(   r)   TestPrivateKey.setUpClass   s5    >>##CIIK6 ,r+   c                    \        V P                  ^d4      p\        V P                  ^d4      pV P                  W4       R# d   N)r   r}   re   r/   pr_key1pr_key2s   &  r(   test_equality_private_keys)TestPrivateKey.test_equality_private_keys   s0    dllC0dllC0*r+   c                    \        V P                  ^d4      p\        V P                  ^4      pV P                  W4       R# r   r   r}   ro   r   s   &  r(   test_inequality_private_keys+TestPrivateKey.test_inequality_private_keys   s0    dllC0dllC0G-r+   c                V    \        V P                  ^d4      pV P                  VR4       R# r   r   )r/   pr_keys   & r(   ,test_inequality_private_keys_not_implemented;TestPrivateKey.test_inequality_private_keys_not_implemented  s"    T\\3/FD)r+   rT   N)rU   rV   rW   rX   rZ   r)   r   r   r   r[   r\   r]   s   @r(   r   r      s+     - -+
.
* *r+   r   l   :HJ`4wwqVXR}h
xhl   MuC	E|dD30v[6?LFl   ;G-^
lqkwdx.}js q~l   *vdF*Me5RN"[T]	l   'q%_h$z0W]uq?l   pTp- |q.c_bb"`+qrc   rd   Tl   pZ)SS4gr7)<E_1j`+l   N*y?4 =ntb/{ Rd~)"|	l   \,}fDx;#C7l   wF;6*&hJ|(9r>n%r{rl   rm   l   F>x.~x:UIpel   5f~p3,Z'o	>Qql   /+ Ug1	0B]D?}x5&l   [-L#rJ4dM][$1r<B.<l   CkcOG>F"S@kT75n	l   W&`}
#-'bgqgD~Gl   m+}LLjTb`-~({Me#Fl   g0H?h_OXk
l   S" +6}=%?T5`&Yl   #)T!MjC:e6j- 	zgenerator,x,y,expectedc                ,    \        WV4      V8X  g   Q hR# )zr
`generator` defines the curve; is `(x, y)` a point on
this curve? `expected` is True if the right answer is Yes.
N)r   )	generatorr-   r5   expecteds   &&&&r(   test_point_validityr   V  s     )*h666r+     0x84ce72aa8699df436059f052ac51b6398d2511e49631bcb7e71f89c499b9ee425dfbc13a5f6d408471b054f2655617cbbaf7937b7c80cd8865cf02c8487d30d2b0fbd8b2c4e102e16d828374bbc47b93852f212d5043c3ea720f086178ff798cc4f63f787b9c2e419efa033e7644ea7936f54462dc21a6c4580725f7f0e7d158l   geC	9|C0M9F	QL_l   k)7Q2XZ~
S}l   )$|;6y3q'Fe7Hp(,eMl   y$=tY,dY=V4P]  0x94bb5bacd5f8ea765810024db87f4224ad71362a3c28284b2b9f39fab86db12e8beb94aae899768229be8fdb6c4f12f28912bb604703a79ccff769c1607f5a91450f30ba0460d359d9126cbd6296be6d9c4bb96c0ee74cbb44197c207f6db326ab6f5a659113a9034e54be7b041ced9dcf6458d7fb9cbfb2744d999f7dfd63f4l   zN( i,q ARs`2^%4|l   -5CY42U[B]aT/l   Ug?n 3ua	!wPX0)(l   l`gxJR\8z%8/
OlV  0xf6227a8eeb34afed1621dcc89a91d72ea212cb2f476839d9b4243c66877911b37b4ad6f4448792a7bbba76c63bdd63414b6facab7dc71c3396a73bd7ee14cdd41a659c61c99b779cecf07bc51ab391aa3252386242b9853ea7da67fd768d303f1b9b513d401565b6f1eb722dfdb96b519fe4f9bd5de67ae131e64b40e78c42ddl   <~a>m.'J%qWzcl   6#Hl6;gBPy3q^X!l   V$tl7!Z{^EmTul   	*
}a2nyyJ!USY  0x16b5f93afd0d02246f662761ed8e0dd9504681ed02a253006eb36736b563097ba39f81c8e1bce7a16c1339e345efabbc6baa3efb0612948ae51103382a8ee8bc448e3ef71e9f6f7a9676694831d7f5dd0db5446f179bcb737d4a526367a447bfe2c857521c7f40b6d7d7e01a180d92431fb0bbd29c04a0c420a57b3ed26ccd8al   +F_7UK_b@{{~Eo&l   RHykQ$k X1W<P?l   }*Fp`x)kg<TJml    E;yS*sX{<!(Dr  0x08a2024b61b79d260e3bb43ef15659aec89e5b560199bc82cf7c65c77d39192e03b9a895d766655105edd9188242b91fbde4167f7862d4ddd61e5d4ab55196683d4f13ceb90d87aea6e07eb50a874e33086c4a7cb0273a8e1c4408f4b846bceae1ebaac1b2b2ea851a9b09de322efe34cebe601653efd6ddc876ce8c2f2072fbl   (I2=R-.L\Sdc7Cw|tl   '<;zs=A93=Q3KmdKoZl   w n- ldk4
7X5_wEP	l   zhMR?WZf`){Gs,o  0x1843aba74b0789d4ac6b0b8923848023a644a7b70afa23b1191829bbe4397ce15b629bf21a8838298653ed0c19222b95fa4f7390d1b4c844d96e645537e0aae98afb5c0ac3bd0e4c37f8daaff25556c64e98c319c52687c904c4de7240a1cc55cd9756b7edaef184e6e23b385726e9ffcba8001b8f574987c1a3fedaaa83ca6dl   !) q!q?"" 1j5AdjPfl   V2PPzN=E|#^-%X1a[N l   %s8`Il)aMt '}+l   3V zXC&,?p]L3+4
  0x5a478f4084ddd1a7fea038aa9732a822106385797d02311aeef4d0264f824f698df7a48cfb6b578cf3da416bc0799425bb491be5b5ecc37995b85b03420a98f2c4dc5c31a69a379e9e322fbe706bbcaf0f77175e05cbb4fa162e0da82010a278461e3e974d137bc746d1880d6eb02aa95216014b37480d84b87f717bb13f76e1l   |`#;e	$beJ)qr)3cl   Vl}v;}uA(gZH$O]l   ^lhcEpRNvw3l   P_O*@ Bd>b;yO>OT  0xc598774259a058fa65212ac57eaa4f52240e629ef4c310722088292d1d4af6c39b49ce06ba77e4247b20637174d0bd67c9723feb57b5ead232b47ea452d5d7a089f17c00b8b6767e434a5e16c231ba0efa718a340bf41d67ea2d295812ff1b9277daacb8bc27b50ea5e6443bcf95ef4e9f5468fe78485236313d53d1c68f6ba2l   
<GksS}5F
@j:@c^
l   >/vMmY6#k?]xxvggl   UinLNSr/nwB ^A$Il    'q_LTDrUAidJ
  0xca98ed9db081a07b7557f24ced6c7b9891269a95d2026747add9e9eb80638a961cf9c71a1b9f2c29744180bd4c3d3db60f2243c5c0b7cc8a8d40a3f9a7fc910250f2187136ee6413ffc67f1a25e1c4c204fa9635312252ac0e0481d89b6d53808f0c496ba87631803f6c572c1f61fa049737fdacce4adff757afed4f05beb658l   /l$JL'k]-Xl   gsV,)[l6|#+j]6l   buxr
+)	;ZMZZ,W;_	l   "]|~ZTU?^v4cC\  0x31dd9a54c8338bea06b87eca813d555ad1850fac9742ef0bbe40dad400e10288acc9c11ea7dac79eb16378ebea9490e09536099f1b993e2653cd50240014c90a9c987f64545abc6a536b9bd2435eb5e911fdfde2f13be96ea36ad38df4ae9ea387b29cced599af777338af2794820c9cce43b51d2112380a35802ab7e396c97al   Jk5":C||QSr;16	l   9fJ;=#0L]`vBW$ ]c6idl   ;g4K-$faR$ot-Z9l   eX{o(`Ub&]vW  0xb2b94e4432267c92f9fdb9dc6040c95ffa477652761290d3c7de312283f6450d89cc4aabe748554dfb6056b2d8e99c7aeaad9cdddebdee9dbc099839562d9064e68e7bb5f3a6bba0749ca9a538181fc785553a4000785d73cc207922f63e8ce1112768cb1de7b673aed83a1e4a74592f1268d8e2a4e9e63d414b5d442bd0456dl   l/S>sJOEj,)%,UJ~l   b&HqV{,?%YTlS@=#%l   >b*j61gHXf l   2-^P=f;B"^v[z 
  0x4366fcadf10d30d086911de30143da6f579527036937007b337f7282460eae5678b15cccda853193ea5fc4bc0a6b9d7a31128f27e1214988592827520b214eed5052f7775b750b0c6b15f145453ba3fee24a085d65287e10509eb5d5f602c440341376b95c24e5c4727d4b859bfe1483d20538acdd92c7997fa9c614f0f839d7l   Sgk"Z{h7E&qS?dU	l    er&SE/,J^pt$bl   h&~AJ gKl
-	_kEl   5pq!09lxBm^bI.  0x543f8af57d750e33aa8565e0cae92bfa7a1ff78833093421c2942cadf9986670a5ff3244c02a8225e790fbf30ea84c74720abf99cfd10d02d34377c3d3b41269bea763384f372bb786b5846f58932defa68023136cd571863b304886e95e52e7877f445b9364b3f06f3c28da12707673fecb4b8071de06b6e0a3c87da160cef3l   5Xyn"Mz$YI)Z]?l   kg":(VeFo/+p!e[l   xt:!lM1l)3|^{:y6l   h6ns(#lrI<-9pTv  0xd2e8454143ce281e609a9d748014dcebb9d0bc53adb02443a6aac2ffe6cb009f387c346ecb051791404f79e902ee333ad65e5c8cb38dc0d1d39a8dc90add5023572720e5b94b190d43dd0d7873397504c0c7aef2727e628eb6a74411f2e400c65670716cb4a815dc91cbbfeb7cfe8c929e93184c938af2c078584da045e8f8d1l   %3 aoqQ{FZg(knvTjl   xm%<DifPjXNOa@Z^ l   #Oh?7HB[qJf&0F
l   /BWde&b"Ej+NY"	x=!8  0x6660717144040f3e2f95a4e25b08a7079c702a8b29babad5a19a87654bc5c5afa261512a11b998a4fb36b5d8fe8bd942792ff0324b108120de86d63f65855e5461184fc96a0a8ffd2ce6d5dfb0230cbbdd98f8543e361b3205f5da3d500fdc8bac6db377d75ebef3cb8f4d1ff738071ad0938917889250b41dd1d98896ca06fbl   w|FM<$?i&i_6NzVl   "N?xVP3|xl/M-AdSl   !-iuL
Vw|k3	l   crE;X<v 
lN`fma	zgen,msg,qx,qy,r,s,expectedc                ^   \        V \        P                  ! V P                  4       W#4      4      p\        P
                  ! \        4      ;_uu_ 4       p\        V4      p	RRR4       \        X4      ^8X  g   Q hRV^ ,          P                  P                  ^ ,          9   g   Q hRV^,          P                  P                  ^ ,          9   g   Q hRV^,          P                  P                  ^ ,          9   g   Q hWgP                  X	\        WE4      4      8X  g   Q hR#   + '       g   i     L; i)z
`msg` = message, `qx` and `qy` represent the base point on
elliptic curve of `gen`, `r` and `s` are the signature, and
`expected` is True iff the signature is expected to be valid.Nunused)r	   r   r   rO   pytestwarnsDeprecationWarningr   lenmessageargsrF   r
   )
rf   r"   qxqyr?   r@   r   r#   r   msg_dgsts
   &&&&&&&   r(   test_signature_validityr   R  s     c=..syy{BCDD	(	)	)U!#& 
*u:??uQx'',,Q////uQx'',,Q////uQx'',,Q////}}Xy???? 
*	)s   DD,	c           
      (   ?\        W#4      p\        P                  ! \        4      ;_uu_ 4       p\	        V4      p	R R R 4       \        X4      ^8X  g   Q hRV^ ,          P                  P                  ^ ,          9   g   Q hRV^,          P                  P                  ^ ,          9   g   Q hRV^,          P                  P                  ^ ,          9   g   Q hVP                  X	V 4      p
V
'       g   Q hV
 F:  pVP                  p\        WVP                  4       VP                  4       W#R4       K<  	  \        P                  ! V P                  4       WE4      pV
 Uu. uF  qP                  NK  	  ppW9   g   Q hR #   + '       g   i     ELI; iu upi )Nr   T)r
   r   r   r   r   r   r   r   recover_public_keysrQ   r   r-   r5   r   r   rO   )rf   r"   r?   r@   r   r   r   r%   r   r   pkspkq
original_qpointss   &&&&&&&        r(   test_pk_recoveryr   b  s@    	Q?D	(	)	)U!#& 
*u:??uQx'',,Q////uQx'',,Q////uQx'',,Q////

"
"8S
1CJ3 HH!##%dC 
 $$SYY["9J!$%2hhF%% 
*	)	)" &s   E;F;F	c                <   R\         R\        R\        R\        R\        R\
        /pV ! \        P                  ! \        VP                  4       4      4      4      p\        RP                  V4      4       W,          p\        VP                  4       4      ^,
          pV ! \        P                  ! ^VR7      4      pV ! \        P                  ! ^VR7      4      pV ! \        P                  ! ^VR7      \        P                  ! V^,	          VR7      ,          4      pW5Wg3# )	z*Hypothesis strategy for test_sig_verify().r   r   r   r   r   r   zGenerator used: {0})	min_value	max_value)r   r   r   r   r   r   stsampled_fromsortedkeysr   formatintrP   integers)drawname_gennamer   rP   keyr"   nonces   &       r(   st_random_gen_key_msg_noncer
  }  s     	2H x}} 789D		%	%d	+,I	!"Q&E
r{{Q%8
9C
r{{Q%8
9C
a51
++
e
<	=E 3%%r+   z--fastmax_examplesc                    V w  rr4\        WV,          4      p\        WR4      pVP                  W44      pVP                  W74      '       g   Q hVP                  V^,
          V4      '       d   Q hR# )zu
Check if signing and verification works for arbitrary messages and
that signatures for other messages are rejected.
N)r	   r   r%   rF   )r   r   sec_multr"   r	  pubkeyprivkey	signatures   &       r(   test_sig_verifyr    sh     '+#I	x#78F&+GS(I??3****sQw	22222r+   c                  "   \         P                  ! \        4      ;_uu_ 4       p \        ^ 4      R8X  g   Q h RRR4       \	        X 4      ^8X  g   Q hRV ^ ,          P
                  P                  ^ ,          9   g   Q hR#   + '       g   i     LO; i)r       Nr   )r   r   r   r   r   r   r   )r   s    r(   test_int_to_string_with_zeror    sj    	(	)	)UQ7*** 
* u:??uQx'',,Q////	 
*	)s   A>>B	)r      rT   )8
__future__r   syshypothesis.strategies
strategiesr   
hypothesisr   r   r   r   	unittest2unittestImportErrorr   ecdsar   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   HYP_SETTINGSversion_infoTestCaser   r`   r   r   P192_POINTSmarkparametrizer   r  CURVE_192_KATSr   r   	compositer
  dictSIG_VER_SETTINGSargvr  r  )r-   s   0r(   <module>r*     s   % 
 " 5 5      & ! f#L31)) 31lpGH%% pGf8H-- 8@*X&& *6 	:>	 	>:	 	:>	 	::	 	::	 	::	 	::	 	:>	 	::	 	::	 	::	 	::	GIX 1;?7 @7 	
 	
 	;:::" 	
 	
 	;:::" 	
 	
 	;:::" 	
 	
 	;:::" 	
 	
 	;:::" 	
 	
 	;:::" 	
 	
 	;:::" 	
 	
 	;:::" 	
 	
 	;:::" 	
 	
 	;:::" 	
 	
 	;:::" 	
 	
 	;:::" 	
 	
 	;:::" 	K 	
 	;:::  	K 	
 	;:::Aod 5~F@ G@  n"En!11n"E  0 & &0 % sxx'(^$')^$ 
-Aq	!""$%3 & # 3"0S  v #Fs   K =K
K
KK