
    ,hyG                        d Z ddlZddlZddlmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZmZ dd	lmZ dd
lmZ d ed      j'                         ddfdddddddd ed      j'                         ddfd ed      j'                         ddfdddd d!d"d#d$gZd%d&d'd(e ed)      d*fd+d,d-d(e ed.      d*fd/d0d1d(e ed2      d*fd3d4d5d(e ed6      d*fgZd7d8d9d:e ed;      d*fd<d8d=d>e ed?      d*fd@d8dAdBe ed?      d*fd@dCdDdEe edF      d*fgZ G dG dHej.                        Z G dI dJej.                        Z G dK dLe      Z G dM dNe      Z G dO dPej.                        Zi fdQZedRk(  rdS Z  ejB                  dTU       yy)Vz)Self-test suite for Crypto.Hash._Poly1305    N)	unhexlifyhexlify   )make_mac_tests)list_test_cases)Poly1305)AESChaCha20)tobytes)strxor_c@85d6be7857556d337f4452fe42d506a80103808afb0db2fd4abff6af4149f51bs"   Cryptographic Forum Research Group a8061dc1305136c6c22b8baf0c0127a9RFC7539)@746869732069732033322d62797465206b657920666f7220506f6c7931333035@0000000000000000000000000000000000000000000000000000000000000000 49ec78090e481ec6c26b33b91ccc0307zIhttps://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-00#section-7 A)r   48656c6c6f20776f726c6421 a6f745008f81c916a20dcc74eef2b2f0zIhttps://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-00#section-7 B)r     6b657920666f7220506f6c7931333035Generated with pure Python)r   FF f7e4e0ef4c46d106219da3d1bdaeb3ffr   )r   FF00 7471eceeb22988fc936da1d6e838b70er   )r   "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 32590bc07cb2afaccca3f67f122975fer   )r   ڀ00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000zRFC7539 A.3 #1@0000000000000000000000000000000036e5f6b5c5e06070f0efca96227a863esw  Any submission to the IETF intended by the Contributor for publication as all or part of an IETF Internet-Draft or RFC and any statement made within the context of an IETF activity is considered an "IETF Contribution". Such statements include oral statements in IETF sessions, as well as written and electronic communications made at any time or place, which are addressed to 36e5f6b5c5e06070f0efca96227a863ezRFC7539 A.3 #2@36e5f6b5c5e06070f0efca96227a863e00000000000000000000000000000000 f3477e7cd95417af89a6b8794c310cf0zRFC7539 A.3 #3)@1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c02754776173206272696c6c69672c20616e642074686520736c6974687920746f7665730a446964206779726520616e642067696d626c6520696e2074686520776162653a0a416c6c206d696d737920776572652074686520626f726f676f7665732c0a416e6420746865206d6f6d65207261746873206f757467726162652e 4541669a7eaaee61e708dc7cbcc5eb62zRFC7539 A.3 #4)@0200000000000000000000000000000000000000000000000000000000000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 03000000000000000000000000000000zRFC7539 A.3 #5)@02000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 02000000000000000000000000000000r)   zRFC7539 A.3 #6)@0100000000000000000000000000000000000000000000000000000000000000`FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11000000000000000000000000000000 05000000000000000000000000000000zRFC7539 A.3 #7)r,   `FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE01010101010101010101010101010101r   zRFC7539 A.3 #8)r'    FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFzRFC7539 A.3 #9)^01 00 00 00 00 00 00 00 04 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00zE3 35 94 D7 50 5E 43 B9 00 00 00 00 00 00 00 0033 94 D7 50 5E 43 79 CD 01 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0001 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00z/14 00 00 00 00 00 00 00 55 00 00 00 00 00 00 00zRFC7539 A.3 #10)r2   zE3 35 94 D7 50 5E 43 B9 00 00 00 00 00 00 00 0033 94 D7 50 5E 43 79 CD 01 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13000000000000000000000000000000zRFC7539 A.3 #11@ec074c835580741701425b623235add6851fc40c3467ac0be05cc20404f3f700f3f6 f4c633c3044fc145f84f335cb81953dez)http://cr.yp.to/mac/poly1305-20050329.pdf fb447350c4e868c52ac3275cf9d4327e)ciphernonce@75deaa25c09f208e1dc4ce6b5cad3fbfa0f3080000f46400d0c7e9076c834403r    dd3fab2251f11ac759f0887129cc2ee7 61ee09218d29b0aaed7e154a2c5509cc@6acb5f61a7176dd320c5c1eb2edcdc7448443d0bb0d21109c89a100b5ce2c208@663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136 0ee1c16bb73f0f4fd19881753c01cdbe ae212a55399729595dea458bc621ff0e@e1a5668a4d5b66a5f68cc5424ed5982d12976a08c4426d0ce8a82407c4f48207~ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9 5154ad0d2cb26e01274fc51148491f1b 9ae831e743978d3a23527c7128149e3ar   FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 13cc5bbadc36b03a5163928f0bcb65aazRFC7539 A.4 #1000000000000000000000000@0000000000000000000000000000000000000000000000000000000000000001 0baf33c1d6df211bdd50a6767e98e00azRFC7539 A.4 #2000000000000000000000002z^1c 92 40 a5 eb 55 d3 8a f3 33 88 86 04 f6 b5 f047 39 17 c1 40 2b 80 09 9d ca 5c bc 20 70 75 c0 e8b4c6db226cd8939e65e02eebf834cezRFC7539 A.4 #3a}  f3 33 88 86 00 00 00 00 00 00 4e 91 00 00 00 0064 a0 86 15 75 86 1a f4 60 f0 62 c7 9b e6 43 bd5e 80 5c fd 34 5c f3 89 f1 08 67 0a c7 6c 8c b24c 6c fc 18 75 5d 43 ee a0 9e e9 4e 38 2d 26 b0bd b7 b7 3c 32 1b 01 00 d4 f0 3b 7f 35 58 94 cf33 2f 83 0e 71 0b 97 ce 98 c8 a8 4a bd 0b 94 8114 ad 17 6e 00 8d 33 bd 60 f9 82 b1 ff 37 c8 5597 97 a0 6e f4 f0 ef 61 c1 86 32 4e 2b 35 06 3836 06 90 7b 6a 7c 02 b0 f9 f6 15 7b 53 c8 67 e4b9 16 6c 76 7b 80 4d 46 a5 9b 52 16 cd e7 a4 e990 40 c5 a4 04 33 22 5e e2 82 a1 b0 a0 6c 52 3eaf 45 34 d7 f8 3f a1 15 5b 00 47 71 8c bc 54 6a0d 07 2b 04 b3 56 4e ea 1b 42 22 73 f5 48 27 1a0b b2 31 60 53 fa 76 99 19 55 eb d6 31 59 43 4ece bb 4e 46 6d ae 5a 10 73 a6 72 76 27 09 7a 1049 e6 17 d9 1d 36 10 94 fa 68 f0 ff 77 98 71 3030 5b ea ba 2e da 04 df 99 7b 71 4d 6c 6f 2c 29a6 ad 5c b4 02 2b 02 70 9b 00 00 00 00 00 00 000c 00 00 00 00 00 00 00 09 01 00 00 00 00 00 00z/ee ad 9d 67 89 0c bb 22 39 23 36 fe a1 85 1f 38zRFC7539 A.5000000000102030405060708c                   R    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)Poly1305Test_AES    c                 :   d}t        j                  | j                  t              }| j	                  |j
                  d       | j	                  t        |j                        d       |j                  |      j                         }| j	                  t        |      d       t        j                  | j                  |j                  |t              }|j                         }| j	                  |j                  |j                         | j	                  ||       y )Nd   rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrkeyr8      )rS   r9   datar8   )
r   newrS   r	   assertEqualdigest_sizelenr9   updatedigest)selfrU   h1d1h2d2s         d/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/Crypto/SelfTest/Hash/test_Poly1305.pytest_new_positivez"Poly1305Test_AES.test_new_positive;  s    \\dhhs3,RXX+YYt_##%R"%\\dhhbhhT#NYY[288,R     c                    ddl m} | j                  t        t        j
                  | j                  d d t               | j                  t        t        j
                  | j                  |       | j                  t        t        j
                  | j                  dt               | j                  t        t        j
                  dt               | j                  t        t        j
                  | j                  dt        	       y )
Nr   )DES3   rR   s   111111111111111rS   r9   r8    22222222222222222222222222222222d2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222rS   rU   r8   )	Crypto.Cipherre   assertRaises
ValueErrorr   rV   rS   r	   	TypeError)r\   re   s     ra   test_new_negativez"Poly1305Test_AES.test_new_negativeJ  s    &*hll"cR*hllN*hll	Z]^)X\\yM)X\\txxjY\]rc   c                    ddg}t        j                  | j                  t              }|j	                  |d         j	                  |d          |j                         }t        j                  | j                  t        |j                        }|j	                  |d   |d   z          |j                         }| j                  ||       y )Ns   







































































































































































































s,  rR   r   r   rS   r8   r9   )r   rV   rS   r	   rZ   r[   r9   rW   )r\   piecesr]   r^   r_   r`   s         ra   test_updatezPoly1305Test_AES.test_updateS  s    /\\dhhs3
		&)##F1I.YY[\\dhhs"((C
		&)fQi'(YY[R rc   c                     t        j                  | j                  t              }| j	                  t
        |j                  d       y )NrR   string)r   rV   rS   r	   rl   rn   rZ   )r\   hs     ra   test_update_negativez%Poly1305Test_AES.test_update_negative^  s,    LLTXXc2)QXXy9rc   c                     t        j                  | j                  t              }|j	                         }| j                  |j	                         |       | j                  t        |t        d                   y )NrR   s   digest)	r   rV   rS   r	   r[   rW   
assertTrue
isinstancetype)r\   rv   r[   s      ra   test_digestzPoly1305Test_AES.test_digestb  sP    LLTXXc2 	V,
64	?;<rc   c                     d}t        j                  | j                  |d d t              }|j	                          | j                  t        |j                  |dd         y )Ns   rrrrttt   rj   )r   rV   rS   r	   r[   rl   rn   rZ   )r\   msgrv   s      ra   test_update_after_digestz)Poly1305Test_AES.test_update_after_digestk  sJ     LLTXXCGC@	
)QXXs12w7rc   c                 ^   t        j                  | j                  t              }|j	                         }|j                         }| j                  t        |      t        |             | j                  |j                         |       | j                  t        |t        d                   y )NrR   r[   )r   rV   rS   r	   r[   	hexdigestrW   r   r   ry   rz   r{   )r\   macr[   r   s       ra   test_hex_digestz Poly1305Test_AES.test_hex_digests  st    lltxx4MMO	 	')*<=)4
9d8n=>rc   c                     t        j                  | j                  t              }|j	                         }|j                  |       t        |d      }| j                  t        |j
                  |       y )NrR      )	r   rV   rS   r	   r[   verifyr   rl   rm   )r\   rv   r   	wrong_macs       ra   test_verifyzPoly1305Test_AES.test_verify  sN    LLTXXc2hhj	S#&	*ahh	:rc   c                     t        j                  | j                  t              }|j	                         }|j                  |       | j                  t        |j
                  d       y )NrR   4556)r   rV   rS   r	   r   	hexverifyrl   rm   )r\   rv   r   s      ra   test_hexverifyzPoly1305Test_AES.test_hexverify  sC    LLTXXc2kkm	C*akk6:rc   c                 b   d}t        j                  | j                  |t              }|j	                         }t        | j                        }t        |      }t        j                  | j                  |t        |j                        }t        j                  ||t        |j                        }d|d d d|d d | j                  |j	                         |       | j                  |j	                         |       t        |      }t        j                  | j                  t              }t        j                  | j                  t        |j                        }|j                  |       |j                  |       d|d d | j                  |j	                         |j	                                y )	N    rj   rS   rU   r8   r9      r      rR   rq   )	r   rV   rS   r	   r[   	bytearrayr9   rW   rZ   )r\   rU   h0d_refkey_badata_bar]   r_   s           ra   test_bytearrayzPoly1305Test_AES.test_bytearray  s.   \\dhhT#>		 488$D/\\dhhT#RXXN\\f73bhhOr
e,e, D/\\dhhs3\\dhhs"((C
		$
		'biik2rc   c                    d}d }d }||fD ]l  } || j                         } ||      }t        j                  | j                   |t              }t        j                  ||t        |j                        }|j
                  s
d|d d d|d d | j                  |j                         |j                                 ||      }t        j                  | j                   t              }t        j                  | j                   t        |j                  	      }|j                  |       |j                  |       |j
                  sd|d d | j                  |j                         |j                                o y )
Nr   c                     t        |       S N)
memoryviewrU   s    ra   	get_mv_roz3Poly1305Test_AES.test_memoryview.<locals>.get_mv_ro  s    d##rc   c                 *    t        t        |             S r   )r   r   r   s    ra   	get_mv_rwz3Poly1305Test_AES.test_memoryview.<locals>.get_mv_rw  s    io..rc   rj   r   r   r   rR   rq   )	rS   r   rV   r	   r9   readonlyrW   r[   rZ   )	r\   rU   r   r   get_mvkey_mvdata_mvr]   r_   s	            ra   test_memoryviewz Poly1305Test_AES.test_memoryview  s,   	$	/ !), 	7F DHH%FTlG$((cBB&ws$&HH.B##%$r
RYY["))+6 TlG$((37B$((3bhhGBIIdOIIg##%RYY["))+63	7rc   N)__name__
__module____qualname__rS   rb   ro   rs   rw   r|   r   r   r   r   r   r    rc   ra   rN   rN   7  s?    
C!^	!:=8
?;;3:#7rc   rN   c                       e Zd ZdZd Zd Zy)Poly1305Test_ChaCha20rO   c                    d}t        j                  | j                  t              }| j	                  |j
                  d       | j	                  t        |j                        d       t        j                  | j                  t        d      }| j	                  t        |j                        d       | j	                  |j                  d       y )NrQ   rR   rT      s   88888888rq      )r   rV   rS   r
   rW   rX   rY   r9   )r\   rU   r]   r_   s       ra   rb   z'Poly1305Test_ChaCha20.test_new_positive  s    \\dhhx8,RXX+\\dhhxJRXX*8,rc   c                 p    | j                  t        t        j                  | j                  dt
               y )Ns   1111111rg   )rl   rm   r   rV   rS   r
   )r\   s    ra   ro   z'Poly1305Test_ChaCha20.test_new_negative  s$    *hllYabrc   N)r   r   r   rS   rb   ro   r   rc   ra   r   r     s    
C	-crc   r   c                       e Zd Zed        Zy)Poly1305_Newc                 x    t        |      }t        |      dk(  r|d   |d<   | |d<   t        j                  di |S )Nr   r   rU   rS   r   )dictrY   r   rV   )rS   rU   kwds_kwdss       ra   rV   zPoly1305_New.new  s>    T
t9> GE&Me||$e$$rc   Nr   r   r   staticmethodrV   r   rc   ra   r   r     s    % %rc   r   c                       e Zd Zed        Zy)Poly1305_Basicc                 Z    ddl m} t        |      dk(  r|d   }nd } || d d | dd  |      S )Nr   )Poly1305_MACr   rT   )Crypto.Hash.Poly1305r   rY   )rS   rU   r   r   r   s        ra   rV   zPoly1305_Basic.new  s9    5t9>q'CCCHc"#h44rc   Nr   r   rc   ra   r   r     s    5 5rc   r   c                       e Zd Zd Zy)Poly1305AES_MCc                 N   t        d      }d}t        d      D ]\  }|t        |d      z   }|d d d   }|dkD  r|t        |d         z   }t	        j
                  ||t        |      }|j                         }^ | j                  dj                         j                                y )	Ns    fb447350c4e868c52ac3275cf9d4327erc   i  r   r   )rS   r9   r8   rU    CDFA436DDD629C7DC20E1128530BAED2)r   ranger   r   r   rV   r	   r[   rW   r   upper)r\   tagr   msg_lenrS   r9   auths          ra   runTestzPoly1305AES_MC.runTest  s    ;<X 	 Gd++C"IE{GCFO+<<CuSsKD++-C	  	;T^^=M=S=S=UVrc   N)r   r   r   r   r   rc   ra   r   r      s    Wrc   r   c                     t        t        dt              }|t        t        dt              z  }|t        t        dt
              z  }|t               gz  }|t        t              z  }|t        t              z  }|S )Nr   )
r   r   test_data_basicr   test_data_aestest_data_chacha20r   r   rN   r   )configtestss     ra   	get_testsr     sl    >:GE	^L*mDDE	^L*6HIIE	~!!E	_-..E	_233ELrc   __main__c                  <    t        j                  t                     S r   )unittest	TestSuiter   r   rc   ra   <lambda>r     s    H&&y{3 rc   suite)defaultTest)"__doc__jsonr   binasciir   r   commonr   Crypto.SelfTest.st_commonr   Crypto.Hashr   rk   r	   r
   Crypto.Util.py3compatr   Crypto.Util.strxorr   decoder   r   r   TestCaserN   r   objectr   r   r   r   r   r   mainr   rc   ra   <module>r      s  D 0   ' " 5   ' ) '
 	K56==?*	 	K		0 FH*9> 	K		0 FH*9<	Ek` 	K*3	*L MO 	K
*3	*L MO 	K	+*3	*L MO 	K	) 	+3	*L MO	/!J 	*Yy%9; 	*Y/?%@B	:*Y/?%@B	:	:& 	:Y/I%JL1/1 hU7x(( U7pcH-- c0%6 %5V 5WX&& W$   z3EHMMg& rc   