
    [Ah3                         S SK rS SKrS SKrSSKJrJrJrJrJ	r	J
r
  SSKJrJrJr  SSKJr  SSKJr   " S S\R&                  5      r " S	 S
\R&                  5      r\R,                  R/                  S\\ V s/ s H  o R0                  PM     sn S9S 5       r\R,                  R/                  S\\ V s/ s H  o R0                  PM     sn S9S 5       r\R,                  R/                  S\\ V s/ s H  o R0                  PM     sn S9S 5       r\R,                  R/                  S\\ V s/ s H  o R0                  PM     sn S9S 5       rg! \ a    S SKr GNRf = fs  sn f s  sn f s  sn f s  sn f )    N   )CurveNIST256pcurvesUnknownCurveErrorPRIME_FIELD_OIDcurve_by_name)CurveFpPointJacobi	CurveEdTw)der)number_to_stringc                       \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestParameterEncoding   c                     SU l         g )Na0  MIHgAgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP///////////////zBEBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsEQQRrF9Hy4SxCR/i85uVjpEDydwN9gS3rM6D0oTlF2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3v1H1AiEA/////wAAAAD//////////7zm+q2nF56E87nKwvxjJVECAQE=)base64_params)clss    XC:\Users\julio\Documents\inmobiliaria_backend\env\Lib\site-packages\ecdsa/test_curves.py
setUpClass TestParameterEncoding.setUpClass   s    
C 	    c                 `    Sn[         R                  " U5      nU R                  U[        5        g )No  -----BEGIN EC PARAMETERS-----
MIHgAgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP/////////
//////zBEBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12K
o6k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsEQQRrF9Hy4SxCR/i85uVjpEDyd
wN9gS3rM6D0oTlF2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3v1H1
AiEA/////wAAAAD//////////7zm+q2nF56E87nKwvxjJVECAQE=
-----END EC PARAMETERS-----
)r   from_pemassertIsr   )self
pem_paramscurves      r   test_from_pem#TestParameterEncoding.test_from_pem"   s*    , 	 z*eX&r   c                     SnU R                  [        R                  5       n[        R                  " US/5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr   named_curvezexplicit curve parameters notassertRaisesr   UnexpectedDERr   r   assertInstr	exceptionr   r   es      r   2test_from_pem_with_explicit_when_explicit_disabledHTestParameterEncoding.test_from_pem_with_explicit_when_explicit_disabled0   s\    , 	 s001QNN:7 2 	5s1;;7GH 21   A))
A7c                     SnU R                  [        R                  5       n[        R                  " US/5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)NzK-----BEGIN EC PARAMETERS-----
BggqhkjOPQMBBw==
-----END EC PARAMETERS-----
explicitz named_curve curve parameters notr$   r*   s      r   8test_from_pem_with_named_curve_with_named_curve_disabledNTestParameterEncoding.test_from_pem_with_named_curve_with_named_curve_disabled?   s\    , 	
 s001QNN:
|4 2 	8#akk:JK 21r.   c                     SnU R                  [        R                  5       n[        R                  " U5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nai  -----BEGIN PARAMETERS-----
MIHgAgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP/////////
//////zBEBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12K
o6k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsEQQRrF9Hy4SxCR/i85uVjpEDyd
wN9gS3rM6D0oTlF2JjClk/jQuL+Gn+bjufrSnwPnhYrzjNXazFezsu2QGg3v1H1
AiEA/////wAAAAD//////////7zm+q2nF56E87nKwvxjJVECAQE=
-----END PARAMETERS-----
zPARAMETERS PEM headerr$   r*   s      r   test_from_pem_with_wrong_header5TestParameterEncoding.test_from_pem_with_wrong_headerJ   sX    ) 	 s001QNN:& 2 	-s1;;/?@ 21s   A''
A5c                 T    Sn[         R                  " 5       nU R                  X5        g )NsK   -----BEGIN EC PARAMETERS-----
BggqhkjOPQMBBw==
-----END EC PARAMETERS-----
)r   to_pemassertEqual)r   r   encodings      r   test_to_pem!TestParameterEncoding.test_to_pemY   s(    - 	
 ??$.r   c                 0    U R                  [        S5        g )N   )assertNotEqualr   )r   s    r   "test_compare_with_different_object8TestParameterEncoding.test_compare_with_different_objectc   s    Hc*r   c                 R    [         R                  " 5       nU R                  SU5        g )Ns
   *H=r   to_derr8   r   encodeds     r   test_named_curve_params_der1TestParameterEncoding.test_named_curve_params_derf   s!    //# 	DgNr   c                 |    [         R                  " 5       n[         R                  " S5      nU R                  X5        g Nr#   rB   )r   encoded_defaultencoded_nameds      r   +test_verify_that_default_is_named_curve_derATestParameterEncoding.test_verify_that_default_is_named_curve_derl   s*    "//+ 68r   c                     [         R                  " S5      nU R                  U[        [        R
                  " U R                  5      5      5        g Nr0   )r   rC   r8   bytesbase64	b64decoder   rD   s     r    test_encoding_to_explicit_params6TestParameterEncoding.test_encoding_to_explicit_paramsr   s6    //*-%(8(89K9K(L"MNr   c                     U R                  [        5       n[        R                  " S5        S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)NunsupportedzOnly 'named_curve')r%   
ValueErrorr   rC   r'   r(   r)   r   r+   s     r   !test_encoding_to_unsupported_type7TestParameterEncoding.test_encoding_to_unsupported_typew   sF    z*aOOM* + 	*C,<= +*s   A
A)c                     [         R                  " SS5      nSnU R                  U[        [        R
                  " U5      5      5        g )Nr0   
compresseda  MIHAAgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP///////////////zBEBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsEIQNrF9Hy4SxCR/i85uVjpEDydwN9gS3rM6D0oTlF2JjClgIhAP////8AAAAA//////////+85vqtpxeehPO5ysL8YyVRAgEB)r   rC   r8   rP   rQ   rR   )r   rE   compressed_base_points      r   +test_encoding_to_explicit_compressed_paramsATestParameterEncoding.test_encoding_to_explicit_compressed_params}   sB    //*l; 	 	U6++,ABC	
r   c                     Sn[         R                  " [        [        R                  " U5      5      5      nU R                  [        U5        g )NaP  MIH3AgEBMCwGByqGSM49AQECIQD/////AAAAAQAAAAAAAAAAAAAAAP///////////////zBbBCD/////AAAAAQAAAAAAAAAAAAAAAP///////////////AQgWsY12Ko6k+ez671VdpiGvGUdBrDMU7D2O848PifSYEsDFQDEnTYIhucEk2pmeOETnSa3gZ9+kARBBGsX0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPShOUXYmMKWT+NC4v4af5uO5+tKfA+eFivOM1drMV7Oy7ZAaDe/UfUCIQD/////AAAAAP//////////vOb6racXnoTzucrC/GMlUQIBAQ==)r   from_derrP   rQ   rR   r8   r   )r   p256_explicitdecodeds      r   #test_decoding_explicit_from_openssl9TestParameterEncoding.test_decoding_explicit_from_openssl   s<     	 ..v'7'7'F!GH7+r   c                     [         R                  " [        [        R                  " U R
                  5      5      5      nU R                  U[        5        g N)r   ra   rP   rQ   rR   r   r   r   )r   r   s     r   -test_decoding_well_known_from_explicit_paramsCTestParameterEncoding.test_decoding_well_known_from_explicit_params   s4    uV%5%5d6H6H%IJKeX&r   c                     U R                  [        5       n[        R                  " SS/5        S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr   
explicitCAzOnly named_curve)r%   rW   r   ra   r'   r(   r)   rX   s     r   ,test_decoding_with_incorrect_valid_encodingsBTestParameterEncoding.test_decoding_with_incorrect_valid_encodings   sJ    z*aNN3/ + 	(#akk*:; +*s   A
A+c           	          [        SSS5      n[        USSSSSS9n[        USS	SSSS9n[        S
XS 5      n[        S
XS 5      nU R                  XE5        g )N   r            	   T	generator   unknown)r
   r   r   r>   )r   curve_fpbase_abase_bcurve_acurve_bs         r   -test_compare_curves_with_different_generatorsCTestParameterEncoding.test_compare_curves_with_different_generators   sb    2q!$Xr1adCXq"adC	8T:	8T:G-r   c           	      $   [        SSS5      n[        USSSSSS9n[        S	XS 5      nUR                  5       n[        R                  " U5      nU R                  X55        S
nU R                  U[        [        R                  " U5      5      5        g )Nro   r   rp   rq   rr   rs   Trt   rw   z0MCECAQEwDAYHKoZIzj0BAQIBFzAGBAEBBAEHBAMEDQMCAQk=)	r
   r   r   rC   ra   r8   rP   rQ   rR   )r   rx   
base_pointr   rE   rc   expecteds          r   $test_default_encode_for_custom_curve:TestParameterEncoding.test_default_encode_for_custom_curve   s~    2q!$ 2q!Q$G
it<,,...)(E%(8(8(B"CDr   c           	         [        SSS5      n[        USSSSSS9n[        S	XS 5      nU R                  [        5       nUR                  S
5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nro   r   rp   rq   rr   rs   Trt   rw   r#   zCan't encode curve)	r
   r   r   r%   r   rC   r'   r(   r)   )r   rx   r   r   r+   s        r   (test_named_curve_encode_for_custom_curve>TestParameterEncoding.test_named_curve_encode_for_custom_curve   sw    2q!$ 2q!Q$G
it<01QLL' 2 	*C,<= 21s   A>>
Bc                    SnU R                  [        5       n[        R                  " [        R
                  " U5      5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)NzMIGRAgEBMBwGByqGSM49AQIwEQIBcQYJKoZIzj0BAgMCAgEJMDkEDwAwiCUMpufH/mSc6Fgg9wQPAOi+5NPiJgdEGIvg6ccjAxUAEOcjqxTWluZ2h1YVF1b+v4/LSakEHwQAnXNhbzX0qxQH1zViwQ8ApSgwJ3lY7oTRMV7TGIYCDwEAAAAAAAAA2czsijnlbwIBAg==z#Characteristic 2 curves unsupported)	r%   r   r   ra   rQ   rR   r'   r(   r)   )r   sect113r1_explicitr+   s      r   !test_try_decoding_binary_explicit7TestParameterEncoding.test_try_decoding_binary_explicit   s_     	 01QNN6++,>?@ 2 	;S=MN 21s   +A11
A?c                 \   [         R                  " [        R                  6 [         R                  " S5      -   nU R                  [         R                  5       n[        R                  " U5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr   zUnexpected data after OID)r   
encode_oidr   oidencode_integerr%   r&   r   ra   r'   r(   r)   r   bad_derr+   s      r   !test_decode_malformed_named_curve7TestParameterEncoding.test_decode_malformed_named_curve   sn    ..(,,/#2D2DQ2GGs001QNN7# 2 	13q{{3CD 21s   B
B+c                 l   [        [        R                  " U R                  5      5      [        R
                  " S5      -   nU R                  [        R                  5       n[        R                  " U5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr   z"Unexpected data after ECParameters)rP   rQ   rR   r   r   r   r%   r&   r   ra   r'   r(   r)   r   s      r   4test_decode_malformed_explicit_garbage_after_ECParamJTestParameterEncoding.test_decode_malformed_explicit_garbage_after_ECParam   s    T//0
q!" s001QNN7# 2 	:C<LM 21s    B%%
B3c                 @   [         R                  " [         R                  " S5      5      nU R                  [         R                  5       n[
        R                  " U5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)N   z!Unknown parameter encoding format)
r   encode_sequencer   r%   r&   r   ra   r'   r(   r)   r   s      r   ,test_decode_malformed_unknown_version_numberBTestParameterEncoding.test_decode_malformed_unknown_version_number   sg    %%c&8&8&;<s001QNN7# 2 	93q{{;KL 21s   
B
Bc                    [         R                  R                  5       n[        R                  " [        R
                  " S5      [        R                  " [        R                  " SSS5      [        R
                  " U5      5      [        R                  " [        R                  " [        [         R                  R                  5       U-  U5      5      [        R                  " [        [         R                  R                  5       U5      5      5      [        R                  " [         R                  R                  S5      5      [        R
                  " [         R                  R                  5       5      5      nU R                  [        5       n[         R"                  " U5        S S S 5        U R%                  S['        WR(                  5      5        g ! , (       d  f       N4= f)Nr   r   rr   uncompressedzUnknown field type: (1, 2, 3))r   r   pr   r   r   r   encode_octet_stringr   abru   to_bytesorderr%   r   r   ra   r'   r(   r)   r   curve_pr   r+   s       r   (test_decode_malformed_unknown_field_type>TestParameterEncoding.test_decode_malformed_unknown_field_type   sH   ..""$%%q!q!Q'););G)D ''$X^^%5%5%7'%A7K ''$X^^%5%5%7A	 ##""++N; x11779:!
& 01QNN7# 2 	5s1;;7GH 21s   G
G!c                    [         R                  R                  5       n[        R                  " [        R
                  " S5      [        R                  " [        R                  " [        6 [        R
                  " U5      [        R
                  " S5      5      [        R                  " [        R                  " [        [         R                  R                  5       U-  U5      5      [        R                  " [        [         R                  R                  5       U5      5      5      [        R                  " [         R                  R                  S5      5      [        R
                  " [         R                  R                  5       5      5      nU R                  [        R                   5       n["        R$                  " U5        S S S 5        U R'                  S[)        WR*                  5      5        g ! , (       d  f       N4= f)Nr   r   zPrime-p element)r   r   r   r   r   r   r   r   r   r   r   r   ru   r   r   r%   r&   r   ra   r'   r(   r)   r   s       r   )test_decode_malformed_garbage_after_prime?TestParameterEncoding.test_decode_malformed_garbage_after_prime  sX   ..""$%%q!0""7+""1%
 ''$X^^%5%5%7'%A7K ''$X^^%5%5%7A	 ##""++N; x11779:%
* s001QNN7# 2 	'Q[[)9: 21s   ,G11
G? N)__name__
__module____qualname____firstlineno__classmethodr   r    r,   r1   r4   r:   r?   rF   rL   rS   rY   r^   rd   rh   rl   r}   r   r   r   r   r   r   r   r   __static_attributes__r   r   r   r   r      s    	
 	
'I	LA/+O9O
>
, '
<.E 	>OENMI4;r   r   c                   ,    \ rS rSrS rS rS rS rSrg)TestCurveSearchingi*  c                 F    [        S5      nU R                  U[        5        g )Nr   r	   r   r   r   cs     r   test_correct_name$TestCurveSearching.test_correct_name+  s    *%a"r   c                 F    [        S5      nU R                  U[        5        g )N
prime256v1r   r   s     r   test_openssl_name$TestCurveSearching.test_openssl_name/  s    ,'a"r   c                     U R                  [        5       n[        S5        S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nzfoo barzFname 'foo bar' unknown, only curves supported: ['NIST192p', 'NIST224p'r%   r   r	   r'   r(   r)   rX   s     r   test_unknown_curve%TestCurveSearching.test_unknown_curve3  sH    01Q)$ 2 	&	
 21   A
Ac                     U R                  [        5       n[        S 5        S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)NzAname None unknown, only curves supported: ['NIST192p', 'NIST224p'r   rX   s     r   test_with_None_as_parameter.TestCurveSearching.test_with_None_as_parameter=  sH    01Q$ 2 	&	
 21r   r   N)	r   r   r   r   r   r   r   r   r   r   r   r   r   r   *  s    ##

r   r   r   )idsc                 \    [         R                  " U R                  S5      5      nX:X  d   eg rI   r   ra   rC   r   rets     r   %test_curve_params_encode_decode_namedr   H  s#    
..m4
5C<<r   c                 &   [        U R                  [        5      (       a5  [        R                  " [
        5         U R                  S5        S S S 5        g [        R                  " U R                  S5      5      nX:X  d   eg ! , (       d  f       g = frO   	
isinstancer   r   pytestraisesr   rC   r   ra   r   s     r   (test_curve_params_encode_decode_explicitr   O  s`    %++y))]],-LL$ .- nnU\\*56|| .-s   B
Bc                 Z    [         R                  " U R                  5       5      nX:X  d   eg rg   r   r   s     r   'test_curve_params_encode_decode_defaultr   Z  s     
..
(C<<r   c                 *   [        U R                  [        5      (       a6  [        R                  " [
        5         U R                  SS5        S S S 5        g [        R                  " U R                  SS5      5      nX:X  d   eg ! , (       d  f       g = f)Nr0   r\   r   r   s     r   3test_curve_params_encode_decode_explicit_compressedr   a  sd    %++y))]],-LL\2 .- nnU\\*lCD|| .-s   B
B)	unittest2unittestImportErrorrQ   r   r   r   r   r   r   r	   ellipticcurver
   r   r    r   utilr   TestCaser   r   markparametrizenamer   r   r   r   )is   0r   <module>r      sq       ; :  "R;H-- R;j
** 
< &v.Fv!vvv.FG H &v.Fv!vvv.FG H &v.Fv!vvv.FG H &v.Fv!vvv.FG H
  J
 /G /G /G /Gs)   E 9E4E!/E&*E+
EE