
    iP1                         S r SrSSKrSSKrSSKJr  SSK7  SSKrSSKJrJ	r	J
r
   " S S\R                  5      r0 4S	 jr\S
:X  a  S r\R                   " SS9  gg)z(Self-test suite for Crypto.PublicKey.RSAz$Id$    N)PicklingError)*)list_test_casesa2b_hexb2a_hexc                       \ 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S rS rS rS rS rS rS r Sr!g )!RSATest%   a  
           eb 7a 19 ac e9 e3 00 63 50 e3 29 50 4b 45 e2
        ca 82 31 0b 26 dc d8 7d 5c 68 f1 ee a8 f5 52 67
        c3 1b 2e 8b b4 25 1f 84 d7 e0 b2 c0 46 26 f5 af
        f9 3e dc fb 25 c9 c2 b3 ff 8a e1 0e 83 9a 2d db
        4c dc fe 4f f4 77 28 b4 a1 b7 c1 36 2b aa d2 9a
        b4 8d 28 69 d5 02 41 21 43 58 11 59 1b e3 92 f9
        82 fb 3e 87 d0 95 ae b4 04 48 db 97 2f 3a c1 4f
        7b c2 75 19 52 81 ce 32 d2 f1 b7 6d 4d 35 3e 2d
    a  
        12 53 e0 4d c0 a5 39 7b b4 4a 7a b8 7e 9b f2 a0
        39 a3 3d 1e 99 6f c8 2a 94 cc d3 00 74 c9 5d f7
        63 72 20 17 06 9e 52 68 da 5d 1c 0b 4f 87 2c f6
        53 c1 1d f8 23 14 a6 79 68 df ea e2 8d ef 04 bb
        6d 84 b1 c3 1d 65 4a 19 70 e5 78 3b d6 eb 96 a0
        24 c2 ca 2f 4a 90 fe 9f 2e f5 c9 c1 40 e5 bb 48
        da 95 36 ad 87 00 c8 4f c9 13 0a de a7 4e 55 8d
        51 a7 4d df 85 d8 b5 0d e9 68 38 d6 06 3e 09 55
    a  
        bb f8 2f 09 06 82 ce 9c 23 38 ac 2b 9d a8 71 f7
        36 8d 07 ee d4 10 43 a4 40 d6 b6 f0 74 54 f5 1f
        b8 df ba af 03 5c 02 ab 61 ea 48 ce eb 6f cd 48
        76 ed 52 0d 60 e1 ec 46 19 71 9d 8a 5b 8b 80 7f
        af b8 e0 a3 df c7 37 72 3e e6 b4 b7 d9 3a 25 84
        ee 6a 64 9d 06 09 53 74 88 34 b2 45 45 98 39 4e
        e0 aa b1 2d 7b 61 a5 1f 52 7a 9a 41 f6 c1 68 7f
        e2 53 72 98 ca 2a 8f 59 46 f8 e5 fd 09 1d bd cb
       z
        c9 7f b1 f0 27 f4 53 f6 34 12 33 ea aa d1 d9 35
        3f 6c 42 d0 88 66 b1 d0 5a 0f 20 35 02 8b 9d 86
        98 40 b4 16 66 b4 2e 92 ea 0d a3 b4 32 04 b5 cf
        ce 33 52 52 4d 04 16 a5 a4 41 e7 00 af 46 15 03
    c                    SSK Jq  SSKJq  SSKJqJn  [        [        U R                  5      5      U l	        [        [        U R                  5      5      U l        U R                  U R                  -  U l        U" U R                  U R                  S-
  U R                  S-
  -  5      U l        U" U R                  U R                  5      U l        [        U l        g )Nr   )RSA)Random)bytes_to_longinverse   )Crypto.PublicKeyr   Cryptor   Crypto.Util.numberr   r   r   modulusnprime_factorpqedursa)selfr   s     ]/var/www/html/trading/venv/lib/python3.13/site-packages/Crypto/SelfTest/PublicKey/test_RSA.pysetUpRSATest.setUpY   s    (!=wt||45wt'8'89: 466!$&&(TVVAX!67(    c                     U R                   R                  S5      nU R                  U5        U R                  U5        UR	                  5       nU R                  U5        U R                  U5        g)z7RSA (default implementation) generated key (1 argument)   N)r   generate_check_private_key_exercise_primitive
public_key_check_public_key_exercise_public_primitiver   rsaObjpubs      r   test_generate_1argRSATest.test_generate_1argh   s\    ""4('  (!s#''/r"   c                    U R                   R                  S[        R                  5       R                  5      nU R                  U5        U R                  U5        UR                  5       nU R                  U5        U R                  U5        g)z8RSA (default implementation) generated key (2 arguments)r$   N)
r   r%   r   newreadr&   r'   r(   r)   r*   r+   s      r   test_generate_2argRSATest.test_generate_2argq   sj    ""4):):;'  (!s#''/r"   c                 R   U R                   R                  S[        R                  5       R                  SS9nU R                  U5        U R                  U5        UR                  5       nU R                  U5        U R                  U5        U R                  SUR                  5        g )Nr$   i  )r   )r   r%   r   r1   r2   r&   r'   r(   r)   r*   assertEqualr   r+   s      r   test_generate_3argsRSATest.test_generate_3argsz   s    ""4):):U"C'  (!s#''/vxx(r"   c                     U R                   R                  U R                  U R                  45      nU R	                  U5        U R                  U5        g)z6RSA (default implementation) constructed key (2-tuple)N)r   	constructr   r   r)   _check_encryptionr   r-   s     r   test_construct_2tupleRSATest.test_construct_2tuple   s?    hh  $&&$&&!12s#s#r"   c                     U R                   R                  U R                  U R                  U R                  45      nU R                  U5        U R                  U5        g)z6RSA (default implementation) constructed key (3-tuple)N)r   r:   r   r   r   r;   _check_decryptionr   r,   s     r   test_construct_3tupleRSATest.test_construct_3tuple   sE    ##TVVTVVTVV$<=v&v&r"   c                     U R                   R                  U R                  U R                  U R                  U R
                  45      nU R                  U5        U R                  U5        g)z6RSA (default implementation) constructed key (4-tuple)N)r   r:   r   r   r   r   r;   r@   rA   s     r   test_construct_4tupleRSATest.test_construct_4tuple   sK    ##TVVTVVTVVTVV$DEv&v&r"   c                    U R                   R                  U R                  U R                  U R                  U R
                  U R                  45      nU R                  U5        U R                  U5        U R                  U5        g)z6RSA (default implementation) constructed key (5-tuple)N)
r   r:   r   r   r   r   r   r&   r;   r@   rA   s     r   test_construct_5tupleRSATest.test_construct_5tuple   s_    ##TVVTVVTVVTVVTVV$LM'v&v&r"   c                 $   U R                   R                  U R                  U R                  U R                  U R
                  U R                  U R                  45      nU R                  U5        U R                  U5        U R                  U5        g)z6RSA (default implementation) constructed key (6-tuple)N)r   r:   r   r   r   r   r   r   r&   r;   r@   rA   s     r   test_construct_6tupleRSATest.test_construct_6tuple   se    ##TVVTVVTVVTVVTVVTVV$TU'v&v&r"   c                    U R                   S4nU R                  [        U R                  R                  U5        U R                   S-   U R
                  4nU R                  [        U R                  R                  U5        g Nr   )r   assertRaises
ValueErrorr   r:   r   r   tups     r   test_construct_bad_key2RSATest.test_construct_bad_key2   s_    vvqk*dhh&8&8#> vvax *dhh&8&8#>r"   c                     U R                   U R                  U R                  S-   4nU R                  [        U R
                  R                  U5        g rN   )r   r   r   rO   rP   r   r:   rQ   s     r   test_construct_bad_key3RSATest.test_construct_bad_key3   s:    vvtvvtvvax(*dhh&8&8#>r"   c                 P   U R                   U R                  U R                  U R                  U R                  4nU R	                  [
        U R                  R                  U5        U R                  U R                  -  U R                  U R                  U R                  4nU R	                  [
        U R                  R                  U5        U R                  U R                  -  SU R                  U R                  4nU R	                  [
        U R                  R                  U5        g )N   )	r   r   r   r   rO   rP   r   r:   r   rQ   s     r   test_construct_bad_key5RSATest.test_construct_bad_key5   s    vvtvvtvvtvvtvv6*dhh&8&8#>vvdff}dffdffdff5*dhh&8&8#>vvdff}a0*dhh&8&8#>r"   c           	         U R                   U R                  U R                  U R                  U R                  S4nU R                  [        U R                  R                  U5        SSK	J
n  U R                   U R                  U R                  U R                  U R                  U" U R                  U R                  5      4nU R                  [        U R                  R                  U5        g )N
   r   )r   )r   r   r   r   r   rO   rP   r   r:   r   r   )r   rR   r   s      r   test_construct_bad_key6RSATest.test_construct_bad_key6   s    vvtvvtvvtvvtvvr:*dhh&8&8#>.vvtvvtvvtvvtvvwtvvtvv7NO*dhh&8&8#>r"   c                    U R                   R                  U R                  U R                  U R                  /5      nU R                  UR                  U R                  :H  =(       d    UR                  U R                  :H  5        U R                  UR                  U R                  :H  =(       d    UR                  U R                  :H  5        U R                  UR                  UR                  -  U R                  :H  5        U R                  [        U R                   R                  U R                  U R                  U R                  S-
  /5        g rN   )
r   r:   r   r   r   
assertTruer   r   rO   rP   rA   s     r   test_factoringRSATest.test_factoring   s    ##TVVTVVTVV$<=$&&(<FHHdff,<=$&&(<FHHdff,<=)TVV34*dhh&8&8466466466RS8:TUr"   c                     U R                   R                  U R                  U R                  U R                  U R
                  U R                  45      n[        U5        g N)r   r:   r   r   r   r   r   reprrA   s     r   	test_reprRSATest.test_repr   s<    ##TVVTVVTVVTVVTVV$LMVr"   c                     U R                   R                  S5      nU R                  [        [        R
                  U5        g)zRSA keys are unpickabler$   N)r   r%   rO   r   pickledumps)r   rsa_keys     r   test_serializationRSATest.test_serialization   s.     ((##D)-w?r"   c                    U R                   R                  S5      nU R                  [        UR                  UR
                  5        U R                  [        UR                  UR
                  5        U R                  [        UR                  UR
                  5        U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR                  S5        g )Nr$   )r   r%   rO   rP   _decryptr   _decrypt_to_bytes_encrypt)r   rsa_objs     r   test_raw_rsa_boundaryRSATest.test_raw_rsa_boundary   s     ((##D)*g&6&6		B*g&?&?K*g&6&6		B*g&6&6;*g&?&?D*g&6&6;r"   c                     U R                   R                  U R                  U R                  45      nU R	                  UR                  5       S5        U R	                  UR                  5       S5        g )Nr$      )r   r:   r   r   r6   size_in_bitssize_in_bytesr<   s     r   	test_sizeRSATest.test_size   sU    hh  $&&$&&!12))+T2**,c2r"   c                    SSK Jn  U R                  SUR                  5       5        U R                  UR                  UR
                  UR                  -  5        [        U" UR
                  S-
  5      R                  UR                  S-
  5      5      nU R                  SUR                  UR                  -  U-  5        U R                  SUR
                  UR                  -  UR                  -  5        U R                  SUR
                  S:  5        U R                  SUR                  S:  5        U R                  SUR                  S:  5        U R                  SUR                  S:  5        U R                  UR                  UR                  5        U R                  SUR                  UR                  -  UR
                  -  5        g )Nr   )Integerr   )Crypto.Math.Numbersr~   r6   has_privater   r   r   intlcmr   r   r   invpinvq)r   r,   r~   r   s       r   r&   RSATest._check_private_key   sS   / 	F..01 	688fhh#67'&((1*%))&((1*56FHHvxx/#56FHHvxx/&((:;FHHqL)FHHqL)FHHqL)FHHqL)6;;/FHHv{{2VXX=>r"   c                    [        U R                  5      nU R                  SUR                  5       5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        U R                  S[        US5      5        U R                  S[        US5      5        U R                  S[        US5      5        U R                  S[        US5      5        U R                  SUR
                  S:  5        U R                  [        UR                  [        U5      5        U R                  [        UR                  [        U5      5        U R                  UR                  5       UR                  5       :H  S5        U R                  UR                  5       UR                  5       :g  S5        U R                  UR                  5       UR                  5       5        g )	Nr   r   r   r   r   r   TF)r   
ciphertextr6   r   r   r   hasattrrO   	TypeErrorrq   r   rr   r(   	publickey)r   r,   r   s      r   r)   RSATest._check_public_key   s   T__-
 	F..01 	688,688, 	GFC01GFC01GFC01GFC01 	FHHqL) 	)V__j)	+)V%=%=j)	+ 	**,0A0A0CCDI**,0A0A0CCEJ))+V->->-@Ar"   c                     [        [        U R                  5      5      nUR                  U5      nUR	                  U5      nU R                  X$5        g re   )r   r   r   rq   rs   r6   )r   r,   r   	plaintextnew_ciphertext2s        r   r'   RSATest._exercise_primitive  sE     #74??#;<
 OOJ/	 !//)45r"   c                 b    [        U R                  5      nUR                  [        U5      5      ng re   )r   r   rs   r   )r   r,   r   r   s       r   r*   "RSATest._exercise_public_primitive$  s%    DNN+	 !//-	*BCr"   c                     [        U R                  5      n[        U R                  5      nUR                  [	        U5      5      nU R                  [	        U5      U5        g re   )r   r   r   rs   r   r6   )r   r,   r   r   r   s        r   r;   RSATest._check_encryption*  sH    DNN+	T__-
 !//-	*BCz2ODr"   c                     [        [        U R                  5      5      n[        [        U R                  5      5      nUR	                  U5      nU R                  X$5        g re   )r   r   r   r   rq   r6   )r   r,   r   r   new_plaintexts        r   r@   RSATest._check_decryption2  sF    !'$.."9:	"74??#;<
 
32r"   )r   r   r   r   r   r   N)"__name__
__module____qualname____firstlineno__r   r   r   r   r   r    r.   r3   r7   r=   rB   rE   rH   rK   rS   rV   rZ   r^   rb   rg   rm   ru   r{   r&   r)   r'   r*   r;   r@   __static_attributes__ r"   r   r	   r	   %   s    	I	J	G 	AL00)$''''????V@<3
?&B>6DE3r"   r	   c                 .    / nU[        [        5      -  nU$ re   )r   r	   )configtestss     r   	get_testsr   ;  s    E	_W%%ELr"   __main__c                  >    [         R                  " [        5       5      $ re   )unittest	TestSuiter   r   r"   r   <lambda>r   A  s    H&&y{3r"   suite)defaultTest)__doc____revision__osrj   r   Crypto.Util.py3compatr   Crypto.SelfTest.st_commonr   r   r   TestCaser	   r   r   r   mainr   r"   r   <module>r      sc   2 / 	    #  G GS3h S3l  
 z3EMMg& r"   