
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
ybD                 @   sp   d dl mZmZ ddlmZmZmZmZmZm	Z	 ddlm
Z
mZmZ ddlmZ ddlmZ G dd	 d	eZd
S )    )hexlify	unhexlify   )AESbytes_to_longbytes_to_intlong_to_byteshmac_sha256blake2b_256)increment_ivbytes16_to_intint_to_bytes16)hkdf_hmac_sha512   )BaseTestCasec               @   sl   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd ZdS )CryptoTestCasec             C   s   | j tdd d S )Ns      r   )assert_equalr   )self r   /usr/lib64/python3.6/crypto.pytest_bytes_to_int   s    z CryptoTestCase.test_bytes_to_intc             C   s$   | j tdd | j tdd d S )Ns          r   )r   r   r   )r   r   r   r   test_bytes_to_long   s    z!CryptoTestCase.test_bytes_to_longc             C   sD   | j tdd | j tdd | j tdd | j tdd d S )Ns                  r   s                  r   @   l            l            )r   r   r   )r   r   r   r   test_bytes16_to_int   s    z"CryptoTestCase.test_bytes16_to_intc             C   s   d}d}d}| j t|d| | j t|d| | j t|d| d}d}d	}| j t|d| | j t|d| | j t|d| | j t|d| d S )Ns                   s                  s                  r   r   r   s           s                  s                 r   l            )r   r   )r   Ziv0Ziv1Ziv2ZivaZivbZivcr   r   r   test_increment_iv   s    z CryptoTestCase.test_increment_ivc             C   s   dd }dd }t d|d}| jt|jdd |j|}| jt|d	 | jt|jdd
 t d|d}| jt|jdd |j|}| j|| | jt|jdd
 d S )N   X    s   foo
   T)Z
is_encryptkey   r   s<   c6efb702de12498f34a2c2bbc8149e759996d08bf6dc5c610aefc0c3a466r   F)r   r   r   ZivZencryptr   Zdecrypt)r   r   dataZaesZcdataZpdatar   r   r   test_aes'   s    

zCryptoTestCase.test_aesc             C   s   d}t td}td}t|||ks*ttd}td}td}t|||ksTtd}d	d
 }td}t|||kszttd}dd
 }td}t|||kstd S )N      Z4869205468657265Z@b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7Z4a656665Z87768617420646f2079612077616e7420666f72206e6f7468696e673fZ@5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843      2   Z@773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565feZ20102030405060708090a0b0c0d0e0f10111213141516171819   Z@82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665bs   s   )
memoryviewr   r	   AssertionError)r   r   r    Zhmacr   r   r   test_hmac_sha2567   s     zCryptoTestCase.test_hmac_sha256c             C   s   t ddtdkstt ddtdks,tt ddtdksBtt ddtdksXttd}td	d
 }t ||tdkstd S )N    s   abcZ@bddd813c634239723171ef3fee98579b94964e3bb1cb3e427262c8c068d52319   as   bcs   ab   cZ@e944973af2256d4d670c12dd75304c319f58f4e40df6fb18ef996cb47e063676s
   1234567890d   Z@97ede832378531dd0f4c668685d166e797da27b47d8cd441e885b60abd5e0cb2)r
   r   r)   r(   )r   r   r    r   r   r   test_blake2b_256Q   s    zCryptoTestCase.test_blake2b_256c             C   sD   dd }t jd}t jd}d}t||||}|t jdks@td S )Nr"      000102030405060708090a0b0cf0f1f2f3f4f5f6f7f8f9*   ZT832390086cda71fb47625bb5ceb168e4c8e26a1a16ed34d9fc7fe92c1481579338da362cb8d9f925d7cb)bytesfromhexr   r)   )r   ikmsaltinfolokmr   r   r   test_hkdf_hmac_sha512d   s    

z$CryptoTestCase.test_hkdf_hmac_sha512c             C   sF   t jd}t jd}t jd}d}t||||}|t jdksBtd S )NZ000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4fZ606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafZb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffR   Zce6c97192805b346e6161e821ed165673b84f400a2b514b2fe23d84cd189ddf1b695b48cbd1c8388441137b3ce28f16aa64ba33ba466b24df6cfcb021ecff235f6a2056ce3af1de44d572097a8505d9e7a93)r4   r5   r   r)   )r   r6   r7   r8   r9   r:   r   r   r   test_hkdf_hmac_sha512_2m   s    


z&CryptoTestCase.test_hkdf_hmac_sha512_2c             C   s:   t jd}d }d}d}t||||}|t jdks6td S )NZ,0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0br+   r3   ZTf5fa02b18298a72a8c23898a8703472c6eb179dc204c03425c970e3b164bf90fff22d04836d0e2343bac)r4   r5   r   r)   )r   r6   r7   r8   r9   r:   r   r   r   test_hkdf_hmac_sha512_3z   s    
z&CryptoTestCase.test_hkdf_hmac_sha512_3c             C   sF   t jd}t jd}t jd}d}t||||}|t jdksBtd S )NZ0b0b0b0b0b0b0b0b0b0b0br1   r2   r3   ZT7413e8997e020610fbf6823f2ce14bff01875db1ca55f68cfcf3954dc8aff53559bd5e3028b080f7c068)r4   r5   r   r)   )r   r6   r7   r8   r9   r:   r   r   r   test_hkdf_hmac_sha512_4   s    


z&CryptoTestCase.test_hkdf_hmac_sha512_4c             C   s:   t jd}d }d}d}t||||}|t jdks6td S )NZ,0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0cr+   r3   ZT1407d46013d98bc6decefcfee55f0f90b0c7f63d68eb1a80eaf07e953cfc0a3a5240a155d6e4daa965bb)r4   r5   r   r)   )r   r6   r7   r8   r9   r:   r   r   r   test_hkdf_hmac_sha512_5   s    
z&CryptoTestCase.test_hkdf_hmac_sha512_5N)__name__
__module____qualname__r   r   r   r   r!   r*   r/   r;   r=   r>   r?   r@   r   r   r   r   r   	   s   			r   N)Zbinasciir   r   Zcrypto.low_levelr   r   r   r   r	   r
   r   r   r   r    r   r   r   r   r   r   <module>   s
    