Ë
    V.j‰M  ã                   ób  — d dl Z d dlmZ 	 d dlZd dlZd dlmZ	 d dl
mZmZ d dlZddlmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZ  G d„ d	ej@                  «      Z! G d
„ dej@                  «      Z" G d„ dej@                  «      Z# G d„ dej@                  «      Z$ G d„ dej@                  «      Z% G d„ dej@                  «      Z& G d„ dej@                  «      Z' G d„ dej@                  «      Z( G d„ dej@                  «      Z) G d„ dej@                  «      Z* G d„ dej@                  «      Z+ G d„ dej@                  «      Z,e	jZ                  d d!z  d"fd#„«       Z.i Z/d$ej`                  v rd e/d%<    ed*i e/¤Ž e e.«       «      d&„ «       «       Z1d'„ Z2d(„ Z3d)„ Z4y# e$ r d dlZY �Œ�w xY w)+é    N)Úhexlify)ÚgivenÚsettingsé   )Ústr_idx_as_int)ÚNIST256pÚNIST224p)Úremove_integerÚUnexpectedDERÚread_lengthÚencode_bitstringÚremove_bitstringÚremove_objectÚ
encode_oidÚremove_constructedÚremove_implicitÚremove_octet_stringÚremove_sequenceÚencode_implicitc                   óN   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚTestRemoveIntegerc                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns    ©ÚassertRaisesr   r
   ©Úselfs    úPC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\ecdsa/test_der.pyÚtest_non_minimal_encodingz+TestRemoveInteger.test_non_minimal_encoding#   s%   € Ø×Ñœ}Õ-ÜÐ.Ô/÷ .×-Ñ-úó   –+«4c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns   €r   r   s    r   Útest_negative_with_high_bit_setz1TestRemoveInteger.test_negative_with_high_bit_set'   s$   € Ø×Ñœ}Õ-Ü˜?Ô+÷ .×-Ñ-úr   c                 óh   — t        d«      \  }}| j                  |d«       | j                  |d«       y ©Ns    €é€   ó    ©r
   ÚassertEqual©r   ÚvalÚrems      r   Útest_minimal_with_high_bit_setz0TestRemoveInteger.test_minimal_with_high_bit_set+   s1   € Ü!Ð"5Ó6‰ˆˆSà×Ñ˜˜dÔ#Ø×Ñ˜˜cÕ"r%   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns     ÿr   r   s    r   Ú%test_two_zero_bytes_with_high_bit_setz7TestRemoveInteger.test_two_zero_bytes_with_high_bit_set1   s%   € Ø×Ñœ}Õ-ÜÐ2Ô3÷ .×-Ñ-úr   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns    r   r   s    r   Útest_zero_length_integerz*TestRemoveInteger.test_zero_length_integer5   s$   € Ø×Ñœ}Õ-Ü˜;Ô'÷ .×-Ñ-úr   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w©Nr%   r   r   s    r   Útest_empty_stringz#TestRemoveInteger.test_empty_string9   s$   € Ø×Ñœ}Õ-Ü˜3Ô÷ .×-Ñ-úr   c                 óh   — t        d«      \  }}| j                  |d«       | j                  |d«       y )Ns    r   r%   r&   r(   s      r   Útest_encoding_of_zeroz'TestRemoveInteger.test_encoding_of_zero=   s0   € Ü! /Ó2‰ˆˆSà×Ñ˜˜aÔ Ø×Ñ˜˜cÕ"r%   c                 óh   — t        d«      \  }}| j                  |d«       | j                  |d«       y )Ns   é   r%   r&   r(   s      r   Útest_encoding_of_127z&TestRemoveInteger.test_encoding_of_127C   s0   € Ü! /Ó2‰ˆˆSà×Ñ˜˜cÔ"Ø×Ñ˜˜cÕ"r%   c                 óh   — t        d«      \  }}| j                  |d«       | j                  |d«       y r#   r&   r(   s      r   Útest_encoding_of_128z&TestRemoveInteger.test_encoding_of_128I   s1   € Ü!Ð"5Ó6‰ˆˆSà×Ñ˜˜cÔ"Ø×Ñ˜˜cÕ"r%   c                 ó¸   — | j                  t        «      5 }t        d«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Ns    €zwanted type 'integer'©r   r   r
   ÚassertInÚstrÚ	exception©r   Úes     r   Útest_wrong_tagz TestRemoveInteger.test_wrong_tagO   sC   € Ø×Ñœ}Ô-°ÜÐ.Ô/÷ .ð 	�‰Ð-¬s°1·;±;Ó/?Õ@÷ .Ð-úó   –AÁAc                 ó¸   — | j                  t        «      5 }t        d«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Ns    €úLength longerr;   r?   s     r   Útest_wrong_lengthz#TestRemoveInteger.test_wrong_lengthU   sB   € Ø×Ñœ}Ô-°ÜÐ.Ô/÷ .ð 	�‰�o¤s¨1¯;©;Ó'7Õ8÷ .Ð-úrB   N)Ú__name__Ú
__module__Ú__qualname__r   r!   r+   r-   r/   r2   r4   r7   r9   rA   rE   © r%   r   r   r       s:   „ ò0ò,ò#ò4ò(ò ò#ò#ò#òAó9r%   r   c                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚTestReadLengthc                 ó:   — | j                  dt        d«      «       y )N)r   r   ó    ©r'   r   r   s    r   Útest_zero_lengthzTestReadLength.test_zero_length`   s   € Ø×Ñ˜¤¨WÓ!5Õ6r%   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns   � ©r   r   r   r   s    r   Útest_two_byte_zero_lengthz(TestReadLength.test_two_byte_zero_lengthc   ó$   € Ø×Ñœ}Õ-Ü˜Ô$÷ .×-Ñ-úr   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns   �rQ   r   s    r   Útest_two_byte_small_lengthz)TestReadLength.test_two_byte_small_lengthg   rS   r   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Nó   €rQ   r   s    r   Útest_long_form_with_zero_lengthz.TestReadLength.test_long_form_with_zero_lengthk   s$   € Ø×Ñœ}Õ-Ü˜Ô ÷ .×-Ñ-úr   c                 ó:   — | j                  dt        d«      «       y )N)r$   é   s   �€rN   r   s    r   Útest_smallest_two_byte_lengthz,TestReadLength.test_smallest_two_byte_lengtho   s   € Ø×Ñ˜¤;¨{Ó#;Õ<r%   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns   ‚ €rQ   r   s    r   Útest_zero_padded_lengthz&TestReadLength.test_zero_padded_lengthr   ó$   € Ø×Ñœ}Õ-Ü˜Ô(÷ .×-Ñ-úr   c                 ó:   — | j                  dt        d«      «       y )N)é   é   s   ‚ rN   r   s    r   Útest_two_three_byte_lengthz)TestReadLength.test_two_three_byte_lengthv   s   € Ø×Ñ˜¤;¨Ó#?Õ@r%   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY wr1   rQ   r   s    r   r2   z TestReadLength.test_empty_stringy   s$   € Ø×Ñœ}Õ-Ü˜Ô÷ .×-Ñ-úr   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns   ƒ rQ   r   s    r   Útest_length_overflowz#TestReadLength.test_length_overflow}   r^   r   N)rF   rG   rH   rO   rR   rU   rX   r[   r]   rb   r2   re   rI   r%   r   rK   rK   \   s0   „ ò7ò%ò%ò!ò=ò)òAòó)r%   rK   c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestEncodeBitstringc                 óR  — t        j                  d«       t        j                  t        «      5 }t        d«      }ddd«       | j                  t        «      d«       | j                  d|d   j                  j                  d   «       | j                  d«       y# 1 sw Y   ŒcxY w)z(This is the old way to use the function.Úalwaysó    ÿNr   zunused= needs to be specifiedr   ó    ÿ)ÚwarningsÚsimplefilterÚpytestÚwarnsÚDeprecationWarningr   r'   Úlenr<   ÚmessageÚargs)r   ro   Úders      r   Útest_old_call_conventionz,TestEncodeBitstring.test_old_call_convention†   s†   € ä×Ñ˜hÔ'Ü�\‰\Ô,Ô-°Ü" ;Ó/ˆC÷ .ð 	×Ñœ˜U› QÔ'Ø�‰Ø+¨U°1©X×-=Ñ-=×-BÑ-BÀ1Ñ-Eô	
ð 	×Ñ˜Ð1Õ2÷ .Ð-ús   ¯BÂB&c                 ó¼   — t        j                  «       5  t        j                  d«       t        dd«      }ddd«       | j	                  d«       y# 1 sw Y   ŒxY w)z$This is how it should be called now.Úerroró   ÿr   Nrk   ©rl   Úcatch_warningsrm   r   r'   ©r   rt   s     r   Útest_new_call_conventionz,TestEncodeBitstring.test_new_call_convention“   sK   € ô ×$Ñ$Õ&Ü×!Ñ! 'Ô*Ü" 7¨AÓ.ˆC÷ 'ð 	×Ñ˜Ð1Õ2÷	 'Ð&úó   •"AÁAc                 ó¼   — t        j                  «       5  t        j                  d«       t        dd«      }ddd«       | j	                  d«       y# 1 sw Y   ŒxY w)zU
        Writing bit string with already included the number of unused bits.
        rw   rj   Nrk   ry   r{   s     r   Útest_implicit_unused_bitsz-TestEncodeBitstring.test_implicit_unused_bitsœ   sK   € ô
 ×$Ñ$Õ&Ü×!Ñ! 'Ô*Ü" ;°Ó5ˆC÷ 'ð 	×Ñ˜Ð1Õ2÷	 'Ð&úr}   c                 ó@   — t        dd«      }| j                  |d«       y )Ns   ÿðé   s   ÿð)r   r'   r{   s     r   Útest_explicit_unused_bitsz-TestEncodeBitstring.test_explicit_unused_bits§   s   € Ü˜{¨AÓ.ˆà×Ñ˜Ð5Õ6r%   c                 ó<   — | j                  t        dd«      d«       y )Nr%   r   s    )r'   r   r   s    r   r2   z%TestEncodeBitstring.test_empty_string¬   s   € Ø×ÑÔ)¨#¨qÓ1°?ÕCr%   c                 óp   — | j                  t        «      5  t        dd«       d d d «       y # 1 sw Y   y xY w)Ns   ÿ é   ©r   Ú
ValueErrorr   r   s    r   Útest_invalid_unused_countz-TestEncodeBitstring.test_invalid_unused_count¯   s&   € Ø×ÑœzÕ*Ü˜[¨!Ô,÷ +×*Ñ*úó   –,¬5c                 óp   — | j                  t        «      5  t        dd«       d d d «       y # 1 sw Y   y xY w)Nr%   r   r†   r   s    r   Ú%test_invalid_unused_with_empty_stringz9TestEncodeBitstring.test_invalid_unused_with_empty_string³   s&   € Ø×ÑœzÕ*Ü˜S !Ô$÷ +×*Ñ*úr‰   c                 óp   — | j                  t        «      5  t        dd«       d d d «       y # 1 sw Y   y xY w)Nrx   rZ   r†   r   s    r   Útest_non_zero_padding_bitsz.TestEncodeBitstring.test_non_zero_padding_bits·   s&   € Ø×ÑœzÕ*Ü˜W aÔ(÷ +×*Ñ*úr‰   N)rF   rG   rH   ru   r|   r   r‚   r2   rˆ   r‹   r�   rI   r%   r   rg   rg   ‚   s+   „ ò3ò3ò	3ò7ò
Dò-ò%ó)r%   rg   c                   óT   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zy)ÚTestRemoveBitstringc                 ó|  — t        j                  d«       t        j                  t        «      5 }t        d«      \  }}ddd«       | j                  t        «      d«       | j                  d|d   j                  j                  d   «       | j                  d«       | j                  d«       y# 1 sw Y   ŒuxY w)	z)This is the old way to call the function.ri   rk   Nr   z$expect_unused= needs to be specifiedr   rj   r%   )rl   rm   rn   ro   rp   r   r'   rq   r<   rr   rs   )r   ro   ÚbitsÚrests       r   ru   z,TestRemoveBitstring.test_old_call_convention½   sš   € ä×Ñ˜hÔ'Ü�\‰\Ô,Ô-°Ü)Ð*=Ó>‰JˆD�$÷ .ð 	×Ñœ˜U› QÔ'Ø�‰Ø2°E¸!±H×4DÑ4D×4IÑ4IÈ!Ñ4Lô	
ð 	×Ñ˜˜{Ô+Ø×Ñ˜˜sÕ#÷ .Ð-ús   ¯B2Â2B;c                 óæ   — t        j                  «       5  t        j                  d«       t        dd«      \  }}d d d «       | j	                  d«       | j	                  d«       y # 1 sw Y   Œ.xY w)Nrw   rk   r   rx   r%   ©rl   rz   rm   r   r'   ©r   r‘   r’   s      r   r|   z,TestRemoveBitstring.test_new_call_conventionË   s]   € ä×$Ñ$Õ&Ü×!Ñ! 'Ô*Ü)Ð*=¸qÓA‰JˆD�$÷ 'ð 	×Ñ˜˜wÔ'Ø×Ñ˜˜sÕ#÷ 'Ð&úó   •%A'Á'A0c                 óæ   — t        j                  «       5  t        j                  d«       t        dd «      \  }}d d d «       | j	                  d«       | j	                  d«       y # 1 sw Y   Œ.xY w)Nrw   rk   )rx   r   r%   r”   r•   s      r   Útest_implicit_unexpected_unusedz3TestRemoveBitstring.test_implicit_unexpected_unusedÔ   s]   € ä×$Ñ$Õ&Ü×!Ñ! 'Ô*Ü)Ð*=¸tÓD‰JˆD�$÷ 'ð 	×Ñ˜˜|Ô,Ø×Ñ˜˜sÕ#÷ 'Ð&úr–   c                 ój   — t        dd «      \  }}| j                  |d«       | j                  |d«       y )Ns   ð)ó   ðr�   r%   )r   r'   )r   Úretr’   s      r   Útest_with_paddingz%TestRemoveBitstring.test_with_paddingÝ   s3   € Ü$Ð%8¸$Ó?‰	ˆˆTà×Ñ˜˜lÔ+Ø×Ñ˜˜sÕ#r%   c                 óp   — | j                  t        «      5  t        dd «       d d d «       y # 1 sw Y   y xY w)Ns    ÿ©r   r   r   r   s    r   Útest_not_a_bitstringz(TestRemoveBitstring.test_not_a_bitstringã   ó'   € Ø×Ñœ}Õ-ÜÐ0°$Ô7÷ .×-Ñ-úr‰   c                 óp   — | j                  t        «      5  t        dd «       d d d «       y # 1 sw Y   y xY w)Ns    rž   r   s    r   Útest_empty_encodingz'TestRemoveBitstring.test_empty_encodingç   s&   € Ø×Ñœ}Õ-Ü˜[¨$Ô/÷ .×-Ñ-úr‰   c                 óp   — | j                  t        «      5  t        dd «       d d d «       y # 1 sw Y   y xY wr1   rž   r   s    r   r2   z%TestRemoveBitstring.test_empty_stringë   s&   € Ø×Ñœ}Õ-Ü˜S $Ô'÷ .×-Ñ-úr‰   c                 óp   — | j                  t        «      5  t        dd «       d d d «       y # 1 sw Y   y xY w)Nó   rž   r   s    r   Útest_no_lengthz"TestRemoveBitstring.test_no_lengthï   s&   € Ø×Ñœ}Õ-Ü˜W dÔ+÷ .×-Ñ-úr‰   c                 óp   — | j                  t        «      5  t        dd«       d d d «       y # 1 sw Y   y xY w)Nrk   r   rž   r   s    r   Ú%test_unexpected_number_of_unused_bitsz9TestRemoveBitstring.test_unexpected_number_of_unused_bitsó   s'   € Ø×Ñœ}Õ-ÜÐ0°!Ô4÷ .×-Ñ-úr‰   c                 óp   — | j                  t        «      5  t        dd «       d d d «       y # 1 sw Y   y xY w)Ns   ÿ rž   r   s    r   Ú$test_invalid_encoding_of_unused_bitsz8TestRemoveBitstring.test_invalid_encoding_of_unused_bits÷   s'   € Ø×Ñœ}Õ-ÜÐ4°dÔ;÷ .×-Ñ-úr‰   c                 óp   — | j                  t        «      5  t        dd «       d d d «       y # 1 sw Y   y xY w)Ns   rž   r   s    r   Ú%test_invalid_encoding_of_empty_stringz9TestRemoveBitstring.test_invalid_encoding_of_empty_stringû   s&   € Ø×Ñœ}Õ-Ü˜_¨dÔ3÷ .×-Ñ-úr‰   c                 óp   — | j                  t        «      5  t        dd «       d d d «       y # 1 sw Y   y xY w)Ns   ÿrž   r   s    r   Útest_invalid_padding_bitsz-TestRemoveBitstring.test_invalid_padding_bitsÿ   r    r‰   N)rF   rG   rH   ru   r|   r˜   rœ   rŸ   r¢   r2   r¦   r¨   rª   r¬   r®   rI   r%   r   r�   r�   ¼   s>   „ ò$ò$ò$ò$ò8ò0ò(ò,ò5ò<ò4ó8r%   r�   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestStrIdxAsIntc                 ó<   — | j                  dt        dd«      «       y )Nés   r=   r   ©r'   r   r   s    r   Útest_strzTestStrIdxAsInt.test_str  s   € Ø×Ñ˜œn¨U°AÓ6Õ7r%   c                 ó<   — | j                  dt        dd«      «       y ©Nr²   s   strr   r³   r   s    r   Ú
test_byteszTestStrIdxAsInt.test_bytes  s   € Ø×Ñ˜œn¨V°QÓ7Õ8r%   c                 óN   — | j                  dt        t        d«      d«      «       y r¶   )r'   r   Ú	bytearrayr   s    r   Útest_bytearrayzTestStrIdxAsInt.test_bytearray  s   € Ø×Ñ˜œn¬Y°vÓ->ÀÓBÕCr%   N)rF   rG   rH   r´   r·   rº   rI   r%   r   r°   r°     s   „ ò8ò9óDr%   r°   c                   óH   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚTestEncodeOidc                 óZ   — t        dddddd«      }| j                  t        |«      d«       y )Nr   rZ   éH  é='  s   06072a8648ce3d0201)r   r'   r   )r   Úoid_ecPublicKeys     r   Útest_pub_key_oidzTestEncodeOid.test_pub_key_oid  s,   € Ü$ Q¨¨3°°q¸!Ó<ˆØ×Ñœ Ó1Ð3HÕIr%   c                 óV   — | j                  t        t        j                  «      d«       y )Ns   06052b81040021)r'   r   r	   Úencoded_oidr   s    r   Útest_nist224p_oidzTestEncodeOid.test_nist224p_oid  s   € Ø×Ñœ¤×!5Ñ!5Ó6Ð8IÕJr%   c                 óV   — | j                  t        t        j                  «      d«       y )Ns   06082a8648ce3d030107)r'   r   r   rÃ   r   s    r   Útest_nist256p_oidzTestEncodeOid.test_nist256p_oid  s!   € Ø×ÑÜ”H×(Ñ(Ó)Ð+Bõ	
r%   c                 óB   — t        ddd«      }| j                  |d«       y )NrZ   éç  ra   ó   ˆ7©r   r'   ©r   Úoids     r   Útest_large_second_subidz%TestEncodeOid.test_large_second_subid  s!   € ä˜˜C Ó#ˆØ×Ñ˜Ð5Õ6r%   c                 ó@   — t        dd«      }| j                  |d«       y )NrZ   rÈ   ó   ˆ7rÊ   rË   s     r   Útest_with_two_subidsz"TestEncodeOid.test_with_two_subids!  s   € Ü˜˜CÓ ˆØ×Ñ˜Ð1Õ2r%   c                 ó@   — t        dd«      }| j                  |d«       y )Nr   ó    rÊ   rË   s     r   Útest_zero_zerozTestEncodeOid.test_zero_zero%  s   € Ü˜˜AÓˆØ×Ñ˜˜oÕ.r%   c                 ó|   — | j                  t        t        f«      5  t        dd «       d d d «       y # 1 sw Y   y xY w)Nr   )r   Ú	TypeErrorÚAssertionErrorr   r   s    r   Útest_with_wrong_typesz#TestEncodeOid.test_with_wrong_types)  s+   € Ø×Ñ¤	¬>Ð:Õ;Ü�q˜$Ô÷ <×;Ñ;ús   œ2²;c                 óp   — | j                  t        «      5  t        dd«       d d d «       y # 1 sw Y   y xY w)Nr   é(   ©r   rÖ   r   r   s    r   Ú"test_with_small_first_large_secondz0TestEncodeOid.test_with_small_first_large_second-  ó&   € Ø×Ñœ~Õ.Ü�q˜"Ô÷ /×.Ñ.úr‰   c                 ó@   — t        dd«      }| j                  |d«       y )Nr   é'   s   OrÊ   rË   s     r   Útest_small_first_max_secondz)TestEncodeOid.test_small_first_max_second1  s   € Ü˜˜BÓˆØ×Ñ˜˜oÕ.r%   c                 óp   — | j                  t        «      5  t        dd«       d d d «       y # 1 sw Y   y xY w)Nra   rÞ   rÚ   r   s    r   Útest_with_invalid_firstz%TestEncodeOid.test_with_invalid_first5  rÜ   r‰   N)rF   rG   rH   rÁ   rÄ   rÆ   rÍ   rÐ   rÓ   r×   rÛ   rß   rá   rI   r%   r   r¼   r¼     s6   „ òJòKò
ò
7ò
3ò/ò òò/ór%   r¼   c                   óp   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestRemoveObjectc                 ó.   — t        dddddd«      | _        y )Nr   rZ   r¾   r¿   )r   rÀ   ©Úclss    r   Ú
setUpClasszTestRemoveObject.setUpClass;  s   € ä(¨¨A¨s°E¸1¸aÓ@ˆÕr%   c                 ó|   — t        | j                  «      \  }}| j                  |d«       | j                  |d«       y )Nr%   ©r   rZ   r¾   r¿   rZ   r   ©r   rÀ   r'   ©r   rÌ   r’   s      r   rÁ   z!TestRemoveObject.test_pub_key_oid?  s7   € Ü! $×"6Ñ"6Ó7‰	ˆˆTØ×Ñ˜˜sÔ#Ø×Ñ˜Ð6Õ7r%   c                 ó‚   — t        | j                  dz   «      \  }}| j                  |d«       | j                  |d«       y )Ns   moreré   rê   rë   s      r   Útest_with_extra_bytesz&TestRemoveObject.test_with_extra_bytesD  s<   € Ü! $×"6Ñ"6¸Ñ"@ÓA‰	ˆˆTØ×Ñ˜˜wÔ'Ø×Ñ˜Ð6Õ7r%   c                 óh   — t        d«      \  }}| j                  |d«       | j                  |d«       y )NrÉ   r%   )rZ   rÈ   ra   ©r   r'   rë   s      r   Útest_with_large_second_subidz-TestRemoveObject.test_with_large_second_subidI  s1   € ä!Ð"9Ó:‰	ˆˆTØ×Ñ˜˜sÔ#Ø×Ñ˜˜kÕ*r%   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns   € ©r   r   r   r   s    r   Útest_with_padded_first_subidz-TestRemoveObject.test_with_padded_first_subidO  ó%   € Ø×Ñœ}Õ-ÜÐ-Ô.÷ .×-Ñ-úr   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns   ˆ7€rò   r   s    r   Útest_with_padded_second_subidz.TestRemoveObject.test_with_padded_second_subidS  s%   € Ø×Ñœ}Õ-ÜÐ5Ô6÷ .×-Ñ-úr   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns   ˆ7ƒrò   r   s    r   Ú)test_with_missing_last_byte_of_multi_bytez:TestRemoveObject.test_with_missing_last_byte_of_multi_byteW  s%   € Ø×Ñœ}Õ-ÜÐ1Ô2÷ .×-Ñ-úr   c                 óh   — t        d«      \  }}| j                  |d«       | j                  |d«       y )NrÏ   r%   )rZ   rÈ   rï   rë   s      r   rÐ   z%TestRemoveObject.test_with_two_subids[  s1   € Ü!Ð"5Ó6‰	ˆˆTØ×Ñ˜˜sÔ#Ø×Ñ˜˜hÕ'r%   c                 óh   — t        d«      \  }}| j                  |d«       | j                  |d«       y )NrÒ   r%   )r   r   rï   rë   s      r   rÓ   zTestRemoveObject.test_zero_zero`  s0   € Ü! /Ó2‰	ˆˆTØ×Ñ˜˜sÔ#Ø×Ñ˜˜fÕ%r%   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY wr1   rò   r   s    r   r2   z"TestRemoveObject.test_empty_stringe  s$   € Ø×Ñœ}Õ-Ü˜#Ô÷ .×-Ñ-úr   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Nó   rò   r   s    r   Útest_missing_lengthz$TestRemoveObject.test_missing_lengthi  s$   € Ø×Ñœ}Õ-Ü˜'Ô"÷ .×-Ñ-úr   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns    rò   r   s    r   Útest_empty_oidzTestRemoveObject.test_empty_oidm  ó$   € Ø×Ñœ}Õ-Ü˜+Ô&÷ .×-Ñ-úr   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns   rò   r   s    r   Útest_empty_oid_overflowz(TestRemoveObject.test_empty_oid_overflowq  r  r   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns   ˆ7rò   r   s    r   Útest_with_wrong_typez%TestRemoveObject.test_with_wrong_typeu  rô   r   c                 ón   — | j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Ns   ˆ7rò   r   s    r   Útest_with_too_long_lengthz*TestRemoveObject.test_with_too_long_lengthy  rô   r   N)rF   rG   rH   Úclassmethodrç   rÁ   rí   rð   ró   rö   rø   rÐ   rÓ   r2   rþ   r   r  r  r  rI   r%   r   rã   rã   :  s\   „ ØñAó ðAò8ò
8ò
+ò/ò7ò3ò(ò
&ò
ò#ò'ò'ò/ó/r%   rã   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestRemoveConstructedc                 ó’   — d}t        |«      \  }}}| j                  |d«       | j                  |d«       | j                  |d«       y )Ns   ¡ÿªr   ó   ÿªr%   )r   r'   ©r   ÚdataÚtagÚbodyr’   s        r   Útest_simplez!TestRemoveConstructed.test_simple  sG   € Ø"ˆä,¨TÓ2‰ˆˆT�4à×Ñ˜˜dÔ#Ø×Ñ˜˜{Ô+Ø×Ñ˜˜sÕ#r%   c                 ó¼   — d}| j                  t        «      5 }t        |«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Ns   ÿªzconstructed tag)r   r   r   r<   r=   r>   ©r   r  r@   s      r   Útest_with_malformed_tagz-TestRemoveConstructed.test_with_malformed_tagˆ  sG   € Ø"ˆà×Ñœ}Ô-°Ü˜tÔ$÷ .ð 	�‰Ð'¬¨Q¯[©[Ó)9Õ:÷ .Ð-úó   ˜AÁAN©rF   rG   rH   r  r  rI   r%   r   r
  r
  ~  s   „ ò$ó;r%   r
  c                   óL   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zy
)ÚTestRemoveImplicitc                 óJ   — d| _         d| _        d| _        d| _        d| _        y )Né   ó   
ó   F
ó   †
ó   Æ
)Úexp_tagÚexp_dataÚdata_applicationÚdata_context_specificÚdata_privaterå   s    r   rç   zTestRemoveImplicit.setUpClass’  s(   € àˆŒØ"ˆŒà2ˆÔà$7ˆÔ!à.ˆÕr%   c                 óÊ   — t        | j                  «      \  }}}| j                  || j                  «       | j                  || j                  «       | j                  |d«       y r1   ©r   r"  r'   r  r   ©r   r  r  r’   s       r   r  zTestRemoveImplicit.test_simple�  sP   € Ü)¨$×*DÑ*DÓE‰ˆˆT�4à×Ñ˜˜dŸl™lÔ+Ø×Ñ˜˜tŸ}™}Ô-Ø×Ñ˜˜sÕ#r%   c                 óÎ   — | j                  t        «      5 }t        | j                  d«       d d d «       | j	                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NÚfoobarzinvalid `exp_class` value)r   r‡   r   r"  r<   r=   r>   r?   s     r   Útest_wrong_expected_classz,TestRemoveImplicit.test_wrong_expected_class¤  sJ   € Ø×ÑœzÔ*¨aÜ˜D×6Ñ6¸ÔA÷ +ð 	�‰Ð1´3°q·{±{Ó3CÕD÷ +Ð*úó   –AÁA$c                 óÌ   — | j                  t        «      5 }t        | j                  «       d d d «       | j	                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nz+wanted class context-specific, got 0x46 tag)r   r   r   r!  r<   r=   r>   r?   s     r   Útest_with_wrong_classz(TestRemoveImplicit.test_with_wrong_classª  sJ   € Ø×Ñœ}Ô-°Ü˜D×1Ñ1Ô2÷ .ð 	�‰Ø9¼3¸q¿{¹{Ó;Kõ	
÷ .Ð-ús   –AÁA#c                 óÌ   — t        | j                  d«      \  }}}| j                  || j                  «       | j                  || j                  «       | j                  |d«       y )NÚapplicationr%   )r   r!  r'   r  r   r&  s       r   Útest_with_application_classz.TestRemoveImplicit.test_with_application_class²  sR   € Ü)¨$×*?Ñ*?ÀÓO‰ˆˆT�4à×Ñ˜˜dŸl™lÔ+Ø×Ñ˜˜tŸ}™}Ô-Ø×Ñ˜˜sÕ#r%   c                 óÌ   — t        | j                  d«      \  }}}| j                  || j                  «       | j                  || j                  «       | j                  |d«       y )NÚprivater%   )r   r#  r'   r  r   r&  s       r   Útest_with_private_classz*TestRemoveImplicit.test_with_private_class¹  sR   € Ü)¨$×*;Ñ*;¸YÓG‰ˆˆT�4à×Ñ˜˜dŸl™lÔ+Ø×Ñ˜˜tŸ}™}Ô-Ø×Ñ˜˜sÕ#r%   c                 óÔ   — d}t        | j                  |z   «      \  }}}| j                  || j                  «       | j                  || j                  «       | j                  ||«       y )Ns    r%  )r   Ú
extra_datar  r  r’   s        r   Útest_with_data_followingz+TestRemoveImplicit.test_with_data_followingÀ  s_   € Ø ˆ
ä)Ø×&Ñ&¨Ñ3ó
‰ˆˆT�4ð 	×Ñ˜˜dŸl™lÔ+Ø×Ñ˜˜tŸ}™}Ô-Ø×Ñ˜˜zÕ*r%   c                 ó¼   — d}| j                  t        «      5 }t        |«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Ns   ¦
z#wanted type primitive, got 0xa6 tag)r   r   r   r<   r=   r>   r  s      r   Útest_with_constructedz(TestRemoveImplicit.test_with_constructedË  sG   € Ø"ˆà×Ñœ}Ô-°Ü˜DÔ!÷ .ð 	�‰Ð;¼SÀÇÁÓ=MÕN÷ .Ð-úr  c                 óª   — d}t        t        d|d«      d«      \  }}}| j                  |d«       | j                  ||«       | j                  |d«       y )Ns   some longish stringr  r.  r%   )r   r   r'   r  s        r   Útest_encode_decodez%TestRemoveImplicit.test_encode_decodeÓ  sW   € Ø%ˆä)Ü˜A˜t ]Ó3°]ó
‰ˆˆT�4ð 	×Ñ˜˜aÔ Ø×Ñ˜˜tÔ$Ø×Ñ˜˜sÕ#r%   N)rF   rG   rH   r  rç   r  r)  r,  r/  r2  r5  r7  r9  rI   r%   r   r  r  ‘  s>   „ Øñ/ó ð/ò$òEò
ò$ò$ò	+òOó	$r%   r  c                   ó@   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y)	ÚTestEncodeImplicitc                 ó<   — d| _         d| _        d| _        d| _        y )Nr  r  r  r  )r  r!  r"  r#  rå   s    r   rç   zTestEncodeImplicit.setUpClassà  s!   € àˆŒà2ˆÔà$7ˆÔ!à.ˆÕr%   c                 óh   — t        d| j                  «      }| j                  || j                  «       y )Nr  ©r   r  r'   r"  ©r   r›   s     r   Útest_encode_with_default_classz1TestEncodeImplicit.test_encode_with_default_classê  s(   € Ü˜a §¡Ó+ˆà×Ñ˜˜d×8Ñ8Õ9r%   c                 ój   — t        d| j                  d«      }| j                  || j                  «       y )Nr  r.  )r   r  r'   r!  r?  s     r   Ú"test_encode_with_application_classz5TestEncodeImplicit.test_encode_with_application_classï  s*   € Ü˜a §¡¨MÓ:ˆà×Ñ˜˜d×3Ñ3Õ4r%   c                 ój   — t        d| j                  d«      }| j                  || j                  «       y )Nr  zcontext-specificr>  r?  s     r   Ú'test_encode_with_context_specific_classz:TestEncodeImplicit.test_encode_with_context_specific_classô  s+   € Ü˜a §¡Ð,>Ó?ˆà×Ñ˜˜d×8Ñ8Õ9r%   c                 ój   — t        d| j                  d«      }| j                  || j                  «       y )Nr  r1  )r   r  r'   r#  r?  s     r   Útest_encode_with_private_classz1TestEncodeImplicit.test_encode_with_private_classù  s*   € Ü˜a §¡¨IÓ6ˆà×Ñ˜˜d×/Ñ/Õ0r%   c                 óÐ   — | j                  t        «      5 }t        d| j                  d«       d d d «       | j	                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nr  r(  zinvalid tag class©r   r‡   r   r  r<   r=   r>   r?   s     r   Útest_encode_with_invalid_classz1TestEncodeImplicit.test_encode_with_invalid_classþ  sJ   € Ø×ÑœzÔ*¨aÜ˜A˜tŸy™y¨(Ô3÷ +ð 	�‰Ð)¬3¨q¯{©{Ó+;Õ<÷ +Ð*ús   –AÁA%c                 óÎ   — | j                  t        «      5 }t        d| j                  «       d d d «       | j	                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Né    zLong tags not supportedrH  r?   s     r   Útest_encode_with_too_large_tagz1TestEncodeImplicit.test_encode_with_too_large_tag  sH   € Ø×ÑœzÔ*¨aÜ˜B §	¡	Ô*÷ +ð 	�‰Ð/´°Q·[±[Ó1AÕB÷ +Ð*úr*  N)rF   rG   rH   r  rç   r@  rB  rD  rF  rI  rL  rI   r%   r   r;  r;  ß  s3   „ Øñ/ó ð/ò:ò
5ò
:ò
1ò
=óCr%   r;  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestRemoveOctetStringc                 ól   — d}t        |«      \  }}| j                  |d«       | j                  |d«       y )Ns   ª»Ìs   ª»Ìr%   )r   r'   ©r   r  r  r’   s       r   r  z!TestRemoveOctetString.test_simple  s5   € Ø&ˆÜ(¨Ó.‰
ˆˆdØ×Ñ˜˜Ô/Ø×Ñ˜˜sÕ#r%   c                 ó¼   — d}| j                  t        «      5 }t        |«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Ns   ª»ÌÚoctetstring)r   r   r   r<   r=   r>   r  s      r   r  z-TestRemoveOctetString.test_with_malformed_tag  sF   € Ø&ˆØ×Ñœ}Ô-°Ü Ô%÷ .ð 	�‰�m¤S¨¯©Ó%5Õ6÷ .Ð-úr  Nr  rI   r%   r   rN  rN    s   „ ò$ó7r%   rN  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestRemoveSequencec                 ól   — d}t        |«      \  }}| j                  |d«       | j                  |d«       y )Ns   0ÿªr  r%   )r   r'   rP  s       r   r  zTestRemoveSequence.test_simple  s5   € Ø"ˆÜ$ TÓ*‰
ˆˆdØ×Ñ˜˜{Ô+Ø×Ñ˜˜sÕ#r%   c                 ó¸   — | j                  t        «      5 }t        d«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nr%   zEmpty string©r   r   r   r<   r=   r>   r?   s     r   Útest_with_empty_stringz)TestRemoveSequence.test_with_empty_string!  sA   € Ø×Ñœ}Ô-°Ü˜CÔ ÷ .ð 	�‰�n¤c¨!¯+©+Ó&6Õ7÷ .Ð-úrB   c                 ó¼   — d}| j                  t        «      5 }t        |«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Ns    ÿªzwanted type 'sequence'rW  r  s      r   Útest_with_wrong_tagz&TestRemoveSequence.test_with_wrong_tag'  sG   € Ø"ˆà×Ñœ}Ô-°Ü˜DÔ!÷ .ð 	�‰Ð.´°A·K±KÓ0@ÕA÷ .Ð-úr  c                 ó¼   — d}| j                  t        «      5 }t        |«       d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Ns   0ÿªrD   rW  r  s      r   Útest_with_wrong_lengthz)TestRemoveSequence.test_with_wrong_length/  sF   € Ø"ˆà×Ñœ}Ô-°Ü˜DÔ!÷ .ð 	�‰�o¤s¨1¯;©;Ó'7Õ8÷ .Ð-úr  N)rF   rG   rH   r  rX  rZ  r\  rI   r%   r   rT  rT    s   „ ò$ò8òBó9r%   rT  rZ   i   é2   c                 ó@  —  | t        j                  dd¬«      «      }|dk  r | t        j                  dd¬«      «      }n | t        j                  d|¬«      «      } | t        j                  t        j                  d|¬«      |¬«      «      }||ft        |«      z   S )zÈ
    Hypothesis strategy that returns valid OBJECT IDENTIFIERs as tuples

    :param max_value: maximum value of any single sub-identifier
    :param max_size: maximum length of the generated OID
    r   rZ   )Ú	min_valueÚ	max_valuerÞ   )Úmax_size)ÚstÚintegersÚlistsÚtuple)Údrawr`  ra  ÚfirstÚsecondr’   s         r   Úst_oidri  8  s…   € ñ ”—‘ q°AÔ6Ó7€EØˆq‚yÙ”b—k‘k¨A¸Ô<Ó=‰á”b—k‘k¨A¸ÔCÓDˆÙÜ
�‰Ü�K‰K !¨yÔ9ÀHô	
ó€Dð
 �6ˆ?œU 4›[Ñ(Ð(r%   z--fastÚmax_examplesc                 óL   — t        | Ž }t        |«      \  }}|dk(  sJ ‚|| k(  sJ ‚y r1   )r   r   )ÚidsrÃ   Údecoded_oidr’   s       r   Ú	test_oidsrn  T  s7   € ô ˜cÐ"€KÜ% kÓ2Ñ€K�Ø�3Š;Ðˆ;Ø˜#ÒÐÑr%   c                  ó~   — d} t        j                  t        d¬«      5  t        | «       d d d «       y # 1 sw Y   y xY w)Ns   ‚ ABCú&Length longer than the provided buffer©Úmatch)rn   Úraisesr   r   ©Úbads    r   Ú1test_remove_octet_string_rejects_truncated_lengthrv  \  s+   € à
&€CÜ	�‰”}Ð,TÖ	UÜ˜CÔ ÷ 
V×	UÑ	Uúó   ž3³<c                  ó~   — d} t        j                  t        d¬«      5  t        | «       d d d «       y # 1 sw Y   y xY w)Ns    ‚ ABCrp  rq  )rn   rs  r   r   rt  s    r   Ú0test_remove_constructed_rejects_truncated_lengthry  b  s-   € ð '€CÜ	�‰”}Ð,TÖ	UÜ˜3Ô÷ 
V×	UÑ	Uúrw  c                  ó~   — d} t        j                  t        d¬«      5  t        | «       d d d «       y # 1 sw Y   y xY w)Ns   €‚ ABCrp  rq  )rn   rs  r   r   rt  s    r   Ú-test_remove_implicit_rejects_truncated_lengthr{  i  s-   € ð '€CÜ	�‰”}Ð,TÖ	UÜ˜Ô÷ 
V×	UÑ	Uúrw  rI   )5rl   Úbinasciir   Ú	unittest2ÚunittestÚImportErrorÚsysÚhypothesis.strategiesÚ
strategiesrb  Ú
hypothesisr   r   rn   Ú_compatr   Úcurvesr   r	   rt   r
   r   r   r   r   r   r   r   r   r   r   r   ÚTestCaser   rK   rg   r�   r°   r¼   rã   r
  r  r;  rN  rT  Ú	compositeri  ÚHYP_SETTINGSÚargvrn  rv  ry  r{  rI   r%   r   Ú<module>rŠ     sµ  ðó Ý ðÛ ó Ý "ß &Û Ý #ß &÷÷ ÷ ó ô 99˜×)Ñ)ô 99ôx#)�X×&Ñ&ô #)ôL7)˜(×+Ñ+ô 7)ôtE8˜(×+Ñ+ô E8ôPD�h×'Ñ'ô Dô(�H×%Ñ%ô (ôVA/�x×(Ñ(ô A/ôH;˜H×-Ñ-ô ;ô&K$˜×*Ñ*ô K$ô\)C˜×*Ñ*ô )CôX7˜H×-Ñ-ô 7ô9˜×*Ñ*ô 9ð< ‡�Ø˜c™6¨Bò )ó ð)ð( €ð ˆs�x‰xÑØ#$€L�Ñ ñ 
ÑˆLÑÙ�vƒxƒñó ó ðò!ò óøðC ò Þðús   ŒF! Æ!	F.Æ-F.