+
    @ig>                        ^ RI Ht ^ RIHt ^RIHtHtHtHt ^RI	H
t
HtHt ^RIHtHt . RNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NtREtRFt ! R( R]4      t ! R) R4      t]! R	]P,                  ]P.                  RGR*4      t]! R
]P2                  ]P4                  RHR+4      t]! R]P8                  ]P:                  RIR,4      t]! R]P>                  ]P@                  RJR-4      t!]! R]PD                  ]PF                  RKR.4      t$]! R]PJ                  ]PL                  RLR/4      t']! R]PP                  ]PR                  RMR04      t*]! R]PV                  ]PX                  RNR14      t-]! R]P\                  ]P^                  ROR24      t0]! R]Pb                  ]Pd                  RPR34      t3]! R]Ph                  ]Pj                  RQR44      t6]! R]Pn                  ]Pp                  RRR54      t9]! R]Pt                  ]Pv                  RSR64      t<]! R]Pz                  ]P|                  RTR74      t?]! R]P                  ]P                  RUR84      tB]! R]P                  ]P                  RVR94      tE]! R]P                  ]P                  RWR:4      tH]! R]P                  ]P                  RXR;4      tK]! R]P                  ]P                  RYR<4      tN]! R]P                  ]P                  RZR=4      tQ]! R ]P                  ]P                  R[R>4      tT]! R!]P                  ]P                  R\R?4      tW]! R"]P                  ]P                  R]R@4      tZ]! R#]P                  ]P                  R^RA4      t]]! R&]P                  ]P                  R_4      t`]! R']P                  ]P                  R`4      tc]$]']*]-]0]3]6]<]B]H]N]T]Z]]]]!]`]c]9]?]E]K]Q]W]].tdRB teRC tfRD# )a    )division)PY2)derecdsaellipticcurveeddsa)orderlennumber_to_stringstring_to_number)normalise_bytes
bit_lengthUnknownCurveErrorr	   Curve	SECP112r1	SECP112r2	SECP128r1	SECP160r1NIST192pNIST224pNIST256pNIST384pNIST521pcurves
find_curvecurve_by_name	SECP256k1BRAINPOOLP160r1BRAINPOOLP160t1BRAINPOOLP192r1BRAINPOOLP192t1BRAINPOOLP224r1BRAINPOOLP224t1BRAINPOOLP256r1BRAINPOOLP256t1BRAINPOOLP320r1BRAINPOOLP320t1BRAINPOOLP384r1BRAINPOOLP384t1BRAINPOOLP512r1BRAINPOOLP512t1PRIME_FIELD_OIDCHARACTERISTIC_TWO_FIELD_OIDEd25519Ed448c                       ] tR t^5tRtR# )r    N)__name__
__module____qualname____firstlineno____static_attributes__r0       J/var/www/html/photoedit/myenv/lib/python3.14/site-packages/ecdsa/curves.pyr   r   5   s    r6   c                   x   a  ] tR t^9t o RR ltR tR tR tRR ltRR lt	]
RR l4       t]RR	 l4       tR
tV tR# )r   Nc                *   Wn         WPn        W n        W0n        VP	                  4       V n        \        V\        P                  4      '       dF   \        VP                  4       4      ^,           ^,           ^,          V n
        V P                  V n        M?\        V P                  4      V n
        ^\        VP                  4       4      ,          V n        ^V P                  ,          V n        W@n        V'       d   \        P                   ! V!  V n        R# R# )   N)nameopenssl_namecurve	generatororder
isinstancer   	CurveEdTwr   pbaselenverifying_key_lengthr	   signature_lengthoidr   
encode_oidencoded_oid)selfr;   r=   r>   rF   r<   s   &&&&&&r7   __init__Curve.__init__:   s    	(
"__&
e]4455
 'uwwy1A59a?DL(,D%#DJJ/DL()HUWWY,?(?D% !DLL 0"~~s3D r6   c                    \        V\        4      '       d;   V P                  VP                  8H  ;'       d    V P                  VP                  8H  # \        # N)r@   r   r=   r>   NotImplementedrI   others   &&r7   __eq__Curve.__eq__O   sA    eU##

ekk)OOdnn.O r6   c                    W8X  * # rM   r0   rO   s   &&r7   __ne__Curve.__ne__V   s      r6   c                    V P                   # rM   )r;   )rI   s   &r7   __repr__Curve.__repr__Y   s    yyr6   c           	        Vf   V P                   '       d   RpMRpVR9  d   \        R4      hVR8X  d<   V P                   '       g   \        R4      h\        P                  ! V P                   !  # \        V P                  \        P                  4      '       d   VR8X  g   Q h\        R4      hV P                  P                  4       p\        P                  ! ^4      p\        P                  ! \        P                  ! \         \        P                  ! V4      4      p\        P                  ! \        P                  ! \        V P                  P                  4       V,          V4      4      \        P                  ! \        V P                  P!                  4       V,          V4      4      4      p\        P                  ! V P"                  P%                  V4      4      p\        P                  ! V P"                  P'                  4       4      pWEWgV.p	V P                  P)                  4       '       d@   \        P                  ! V P                  P)                  4       4      p
V	P+                  V
4       \        P                  ! V	!  # )a  Serialise the curve parameters to binary string.

:param str encoding: the format to save the curve parameters in.
    Default is ``named_curve``, with fallback being the ``explicit``
    if the OID is not set for the curve.
:param str point_encoding: the point encoding of the generator when
    explicit curve encoding is used. Ignored for ``named_curve``
    format.

:return: DER encoded ECParameters structure
:rtype: bytes
named_curveexplicitz5Only 'named_curve' and 'explicit' encodings supportedzJCan't encode curve using named_curve encoding without associated curve OIDz6Twisted Edwards curves don't support explicit encodingrZ   r[   )rF   
ValueErrorr   r   rG   r@   r=   r   rA   rB   encode_integerencode_sequencer+   encode_octet_stringr
   abr>   to_bytesr?   cofactorappend)rI   encodingpoint_encodingcurve_pversionfield_idr=   baser?   seq_elementsrd   s   &&&        r7   to_derCurve.to_der\   s    xxx(%66G  }$888'+  >>488,,

M$;$;<<z)))#H 
 **,,.$$Q'&&NNO,c.@.@.I
 #### '!97C ## '!97C	
 &&t~~'>'>~'NO""4>>#7#7#9:5>::  ))$***=*=*?@H)""L11r6   c                N    \         P                  ! V P                  W4      R4      # )a  
Serialise the curve parameters to the :term:`PEM` format.

:param str encoding: the format to save the curve parameters in.
    Default is ``named_curve``, with fallback being the ``explicit``
    if the OID is not set for the curve.
:param str point_encoding: the point encoding of the generator when
    explicit curve encoding is used. Ignored for ``named_curve``
    format.

:return: PEM encoded ECParameters structure
:rtype: str
zEC PARAMETERS)r   topemrm   )rI   rf   rg   s   &&&r7   to_pemCurve.to_pem   s#     yyKK1?
 	
r6   c                :   V'       g   \        R4      p\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   \        R4      h\        V 4      p \        P
                  ! V 4      '       g_   RV9  d   \        P                  ! R4      h\        P                  ! V 4      w  r#V'       d   \        P                  ! R4      h\        V4      # RV9  d   \        P                  ! R	4      h\        P                  ! V 4      w  rCV'       d   \        P                  ! R
4      h\        P                  ! V4      w  rVV^8w  d   \        P                  ! R4      h\        P                  ! V4      w  rv\        P                  ! V4      w  r\        P                  ! V4      w  r\        P                  ! V4      w  rRpV'       d   \        P                  ! V4      w  r\        P                  ! V4      w  rV\        8X  d   \        R4      hV\        8w  d   \        RP                  V4      4      h\        P                  ! V4      w  rV'       d   \        P                  ! R4      h\        P                  ! V4      w  r\        P                  ! V4      w  pp\!        V4      p\!        V4      p\"        P$                  ! VVVV4      p\"        P&                  P)                  VV	RV
RR7      p\+        RVVR4      p\,         F  pVV8X  g   K  Vu # 	  V# )a_  Decode the curve parameters from DER file.

:param data: the binary string to decode the parameters from
:type data: :term:`bytes-like object`
:param valid_encodings: set of names of allowed encodings, by default
    all (set by passing ``None``), supported ones are ``named_curve``
    and ``explicit``
:type valid_encodings: :term:`set-like object`
rZ   r[   c              3   *   "   T F	  qR9   x  K  	  R# 5i)rZ   Nr\   r0   ).0is   & r7   	<genexpr>!Curve.from_der.<locals>.<genexpr>   s     M_33_s   FTz1Only named_curve and explicit encodings supportedz(named_curve curve parameters not allowedzUnexpected data after OIDz%explicit curve parameters not allowedz,Unexpected data after ECParameters structurez!Unknown parameter encoding formatNz#Characteristic 2 curves unsupportedzUnknown field type: {0}z:Unexpected data after ECParameters.fieldID.Prime-p element)valid_encodingsr?   r>   unknownr\   )uncompressed
compressedhybrid)setallr]   r   r   is_sequenceUnexpectedDERremove_objectr   remove_sequenceremove_integerremove_octet_stringr,   r   r+   formatr   r   CurveFpPointJacobi
from_bytesr   r   )datary   rF   emptyseqri   restrj   r=   
base_bytesr?   rd   _
field_typeprimecurve_a_bytescurve_b_bytescurve_acurve_bcurve_fprk   	tmp_curverv   s   &&                     r7   from_derCurve.from_der   s    !"=>OsM_MsssM_MMMC  t$t$$O3''>  **40JC''(CDDc?"_,##$KLL((.
##>  **3/a<##$GHH,,T2))$/2248
((. ,,T2KH ,,X6
55#$IJJ(#)00<  ))$/##L 
 "55e<!55d;t #=1"=1 (((K ((33D 4 
 )XtT:	 AA~  r6   c                   \         '       g'   \        V\        4      '       d   VP                  4       pVP	                  R4      pVR8X  d   \
        P                  ! R4      hV P                  \
        P                  ! WR 4      V4      # )a=  Decode the curve parameters from PEM file.

:param str string: the text string to decode the parameters from
:param valid_encodings: set of names of allowed encodings, by default
    all (set by passing ``None``), supported ones are ``named_curve``
    and ``explicit``
:type valid_encodings: :term:`set-like object`
s   -----BEGIN EC PARAMETERS-----z"EC PARAMETERS PEM header not foundN)	r   r@   strencodefindr   r   r   unpem)clsstringry   ec_param_indexs   &&& r7   from_pemCurve.from_pem  sm     sz&#..]]_F%EFR##$HII||IIf_-.
 	
r6   )
rC   r=   rH   r>   r;   rF   r<   r?   rE   rD   rM   )Nr{   )r1   r2   r3   r4   rJ   rQ   rT   rW   rm   rq   staticmethodr   classmethodr   r5   __classdictcell__)__classdict__s   @r7   r   r   9   sO     4*!:2x
$ Y Yv 
 
r6   	secp112r1	secp112r2	secp128r1	secp160r1
prime192v1	secp224r1
prime256v1	secp384r1	secp521r1	secp256k1brainpoolP160r1brainpoolP160t1brainpoolP192r1brainpoolP192t1brainpoolP224r1brainpoolP224t1brainpoolP256r1brainpoolP256t1brainpoolP320r1brainpoolP320t1brainpoolP384r1brainpoolP384t1brainpoolP512r1brainpoolP512t1c           	         \          F  pVP                  V 8X  g   K  Vu # 	  \        RV : R\          Uu. uF  qP                  NK  	  up: 24      hu upi )a!  Select a curve based on its OID

:param tuple[int,...] oid_curve: ASN.1 Object Identifier of the
    curve to return, like ``(1, 2, 840, 10045, 3, 1, 7)`` for ``NIST256p``.

:raises UnknownCurveError: When the oid doesn't match any of the supported
    curves

:rtype: ~ecdsa.curves.Curve
z&I don't know about the curve with oid z.I only know about these: )r   rF   r   r;   )	oid_curvecs   & r7   r   r   %  sM     55IH  )2V4LVVVV4L	N 4Ls   Ac           	        \          F;  pWP                  8X  g'   VP                  '       g   K'  WP                  8X  g   K9  Vu # 	  \        RP	                  T \          Uu. uF  qP                  NK  	  up4      4      hu upi )a[  Select a curve based on its name.

Returns a :py:class:`~ecdsa.curves.Curve` object with a ``name`` name.
Note that ``name`` is case-sensitve.

:param str name: Name of the curve to return, like ``NIST256p`` or
    ``prime256v1``

:raises UnknownCurveError: When the name doesn't match any of the supported
    curves

:rtype: ~ecdsa.curves.Curve
z9Curve with name {0!r} unknown, only curves supported: {1})r   r;   r<   r   r   )r;   r   s   & r7   r   r   9  sc     66>annn1GH  CJJ6*6a666*	
 *s   A>N)r:      H  ='  r:   r:   )r:   r   r   r   r:   r   )r:         r      )r:   r   r   r      )r:   r   r   r      )r:   r   r   r      )r:   r   r   r   r   r:   r:   )r:   r   r   r   !   )r:   r   r   r   r   r:   r   )r:   r   r   r   "   )r:   r   r   r   #   )r:   r   r   r   
   )
r:   r   $   r   r   r   r   r:   r:   r:   )
r:   r   r   r   r   r   r   r:   r:   r   )
r:   r   r   r   r   r   r   r:   r:   r   )
r:   r   r   r   r   r   r   r:   r:      )
r:   r   r   r   r   r   r   r:   r:      )
r:   r   r   r   r   r   r   r:   r:   r   )
r:   r   r   r   r   r   r   r:   r:   r   )
r:   r   r   r   r   r   r   r:   r:   r   )
r:   r   r   r   r   r   r   r:   r:   	   )
r:   r   r   r   r   r   r   r:   r:   r   )
r:   r   r   r   r   r   r   r:   r:      )
r:   r   r   r   r   r   r   r:   r:      )
r:   r   r   r   r   r   r   r:   r:      )
r:   r   r   r   r   r   r   r:   r:      )r:   r   e   p   )r:   r   r   q   )g
__future__r   sixr    r   r   r   r   utilr	   r
   r   _compatr   r   __all__r+   r,   	Exceptionr   r   curve_112r1generator_112r1r   curve_112r2generator_112r2r   curve_128r1generator_128r1r   curve_160r1generator_160r1r   	curve_192generator_192r   	curve_224generator_224r   	curve_256generator_256r   	curve_384generator_384r   	curve_521generator_521r   curve_secp256k1generator_secp256k1r   curve_brainpoolp160r1generator_brainpoolp160r1r   curve_brainpoolp160t1generator_brainpoolp160t1r   curve_brainpoolp192r1generator_brainpoolp192r1r   curve_brainpoolp192t1generator_brainpoolp192t1r    curve_brainpoolp224r1generator_brainpoolp224r1r!   curve_brainpoolp224t1generator_brainpoolp224t1r"   curve_brainpoolp256r1generator_brainpoolp256r1r#   curve_brainpoolp256t1generator_brainpoolp256t1r$   curve_brainpoolp320r1generator_brainpoolp320r1r%   curve_brainpoolp320t1generator_brainpoolp320t1r&   curve_brainpoolp384r1generator_brainpoolp384r1r'   curve_brainpoolp384t1generator_brainpoolp384t1r(   curve_brainpoolp512r1generator_brainpoolp512r1r)   curve_brainpoolp512t1generator_brainpoolp512t1r*   curve_ed25519generator_ed25519r-   curve_ed448generator_ed448r.   r   r   r   r0   r6   r7   <module>r     s     . . > > 0
### # 	#
 # # # # # # # # # # #  !#" ##$ %#& '#( )#* +#, -#. /#0 1#2 3#4 5#6 7#8 9#: ;#< =#> ?#@ #A#B C#D E#L +7 		 	`
 `
H 			 			 			 			 	OO	 	OO	 	OO	 	OO	 	OO	 			 		### 		### 		### 		### 		### 		### 		### 		### 		### 		##$ 		##$ 		##$ 		##$ 		##$ 			 					 	5
<(r6   