Beispiel #1
0
 def test_unsupported_mgf1_hash_algorithm_ripemd160_decrypt(self):
     private_key = RSA_KEY_512.private_key(backend)
     with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_PADDING):
         private_key.decrypt(
             b"0" * 64,
             padding.OAEP(mgf=padding.MGF1(algorithm=hashes.RIPEMD160()),
                          algorithm=hashes.RIPEMD160(),
                          label=None))
Beispiel #2
0
class TestRIPEMD160(object):
    test_RIPEMD160 = generate_hash_test(
        load_hash_vectors,
        os.path.join("hashes", "ripemd160"),
        [
            "ripevectors.txt",
        ],
        hashes.RIPEMD160(),
    )

    test_RIPEMD160_long_string = generate_long_string_hash_test(
        hashes.RIPEMD160(),
        "52783243c1697bdbe16d37f97f68f08325dc1528",
    )
Beispiel #3
0
 def test_rsa_padding_unsupported_oaep_sha1_ripemd160(self):
     assert backend.rsa_padding_supported(
         padding.OAEP(
             mgf=padding.MGF1(algorithm=hashes.SHA1()),
             algorithm=hashes.RIPEMD160(),
             label=None
         ),
     ) is False
class TestHMACRIPEMD160(object):
    test_hmac_ripemd160 = generate_hmac_test(
        load_hash_vectors,
        "HMAC",
        [
            "rfc-2286-ripemd160.txt",
        ],
        hashes.RIPEMD160(),
    )
Beispiel #5
0
)
@pytest.mark.hash
class TestSHA512(object):
    test_SHA512 = generate_hash_test(
        load_hash_vectors,
        os.path.join("hashes", "SHA2"),
        [
            "SHA512LongMsg.rsp",
            "SHA512ShortMsg.rsp",
        ],
        hashes.SHA512(),
    )


@pytest.mark.supported(
    only_if=lambda backend: backend.hash_supported(hashes.RIPEMD160()),
    skip_message="Does not support RIPEMD160",
)
@pytest.mark.hash
class TestRIPEMD160(object):
    test_RIPEMD160 = generate_hash_test(
        load_hash_vectors,
        os.path.join("hashes", "ripemd160"),
        [
            "ripevectors.txt",
        ],
        hashes.RIPEMD160(),
    )

    test_RIPEMD160_long_string = generate_long_string_hash_test(
        hashes.RIPEMD160(),
Beispiel #6
0
class TestRIPEMD160(object):
    test_RIPEMD160 = generate_base_hash_test(
        hashes.RIPEMD160(),
        digest_size=20,
        block_size=64,
    )
Beispiel #7
0
    set_run.append(algo_run)
    
    lib_run.append(set_run)
    
    
    # BEGIN HASHING OPERATIONS
    set_run = ['hash']
    # All message digest operations can use the same setup; need to copy empty
    # Hash object outside of timing run to avoid growing data size with each run
    setup = """\
from __main__ import digest_prime, message
digest = digest_prime.copy()
"""
    
    algo_run = ['RIPEMD160']
    digest_prime = hashes.Hash(hashes.RIPEMD160(), backend=backend)
    trial = Timer("digest.update(message); digest.finalize()", setup)
    algo_run.append(trial.repeat(RUN_COUNT, 1))
    set_run.append(algo_run)
    
    algo_run = ['SHA512']
    digest_prime = hashes.Hash(hashes.SHA512(), backend=backend)
    trial = Timer("digest.update(message); digest.finalize()", setup)
    algo_run.append(trial.repeat(RUN_COUNT, 1))
    set_run.append(algo_run)
    
    algo_run = ['Whirlpool']
    digest_prime = hashes.Hash(hashes.Whirlpool(), backend=backend)
    trial = Timer("digest.update(message); digest.finalize()", setup)
    algo_run.append(trial.repeat(RUN_COUNT, 1))
    set_run.append(algo_run)
Beispiel #8
0
def create_test_list():
    hash_msg_bitsizes = tuple(pow(2, _) for _ in range(8, 24))
    symm_msg_bitsizes = tuple(pow(2, _) for _ in range(8, 24))
    prng_msg_bitsizes = tuple(pow(2, _) for _ in range(8, 18))

    return [
        TestArgRange(TestPythonRandom, msgbits=prng_msg_bitsizes),
        TestArgRange(TestPythonSysRandom, msgbits=prng_msg_bitsizes),
        TestArgRange(TestPyCryptPRNG, msgbits=prng_msg_bitsizes),
        TestArgRange(TestGenPrime, bits=(32, 64, 128, 256, 512)),


        # cryptography symmetric ciphers
        TestArgRange(TestCryptCipher, algorithms.AES,       keybits=256, msgbits=symm_msg_bitsizes),
        TestArgRange(TestCryptCipher, algorithms.TripleDES, keybits=64,  msgbits=symm_msg_bitsizes),
        TestArgRange(TestCryptCipher, algorithms.TripleDES, keybits=128, msgbits=symm_msg_bitsizes),
        TestArgRange(TestCryptCipher, algorithms.TripleDES, keybits=192, msgbits=symm_msg_bitsizes),
        TestArgRange(TestCryptCipher, algorithms.Blowfish,  keybits=256, msgbits=symm_msg_bitsizes),
        TestArgRange(TestCryptCipher, algorithms.CAST5,     keybits=128, msgbits=symm_msg_bitsizes),
        TestArgRange(TestCryptCipher, algorithms.ARC4,      keybits=256, msgbits=symm_msg_bitsizes),
        TestArgRange(TestCryptCipher, algorithms.IDEA,      keybits=128, msgbits=symm_msg_bitsizes),
        TestArgRange(TestCryptCipher, algorithms.SEED,      keybits=128, msgbits=symm_msg_bitsizes),
        TestArgRange(TestCryptCipher, algorithms.Camellia,  keybits=256, msgbits=symm_msg_bitsizes),


        # pycrypt symmetric ciphers
        TestArgRange(TestPyCryptCipher, Crypto.Cipher.AES,      keybits=256, msgbits=symm_msg_bitsizes),
        TestArgRange(TestPyCryptCipher, Crypto.Cipher.DES,      keybits=64,  msgbits=symm_msg_bitsizes),
        TestArgRange(TestPyCryptCipher, Crypto.Cipher.DES3,     keybits=128, msgbits=symm_msg_bitsizes),
        TestArgRange(TestPyCryptCipher, Crypto.Cipher.DES3,     keybits=192, msgbits=symm_msg_bitsizes),
        TestArgRange(TestPyCryptCipher, Crypto.Cipher.Blowfish, keybits=256, msgbits=symm_msg_bitsizes),
        TestArgRange(TestPyCryptCipher, Crypto.Cipher.CAST,     keybits=128, msgbits=symm_msg_bitsizes),
        TestArgRange(TestPyCryptCipher, Crypto.Cipher.ARC4,     keybits=256, msgbits=symm_msg_bitsizes),
        TestArgRange(TestPyCryptCipher, Crypto.Cipher.XOR,      keybits=256, msgbits=symm_msg_bitsizes),
        TestArgRange(TestPyCryptCipher, Crypto.Cipher.ARC2,     keybits=256, msgbits=symm_msg_bitsizes),


        # cryptography hashes
        TestArgRange(TestCryptHash, hashes.SHA224(),    msgbits=hash_msg_bitsizes),
        TestArgRange(TestCryptHash, hashes.SHA256(),    msgbits=hash_msg_bitsizes),
        TestArgRange(TestCryptHash, hashes.SHA384(),    msgbits=hash_msg_bitsizes),
        TestArgRange(TestCryptHash, hashes.SHA512(),    msgbits=hash_msg_bitsizes),
        TestArgRange(TestCryptHash, hashes.SHA1(),      msgbits=hash_msg_bitsizes),
        TestArgRange(TestCryptHash, hashes.MD5(),       msgbits=hash_msg_bitsizes),
        TestArgRange(TestCryptHash, hashes.RIPEMD160(), msgbits=hash_msg_bitsizes),
        TestArgRange(TestCryptHash, hashes.Whirlpool(), msgbits=hash_msg_bitsizes),

        # pycrypt hashes
        TestArgRange(TestPyCryptHash, Crypto.Hash.SHA224,    msgbits=hash_msg_bitsizes),
        TestArgRange(TestPyCryptHash, Crypto.Hash.SHA256,    msgbits=hash_msg_bitsizes),
        TestArgRange(TestPyCryptHash, Crypto.Hash.SHA384,    msgbits=hash_msg_bitsizes),
        TestArgRange(TestPyCryptHash, Crypto.Hash.SHA512,    msgbits=hash_msg_bitsizes),
        TestArgRange(TestPyCryptHash, Crypto.Hash.SHA,       msgbits=hash_msg_bitsizes),
        TestArgRange(TestPyCryptHash, Crypto.Hash.MD5,       msgbits=hash_msg_bitsizes),
        TestArgRange(TestPyCryptHash, Crypto.Hash.RIPEMD,    msgbits=hash_msg_bitsizes),
        TestArgRange(TestPyCryptHash, Crypto.Hash.MD2,       msgbits=hash_msg_bitsizes),
        TestArgRange(TestPyCryptHash, Crypto.Hash.MD4,       msgbits=hash_msg_bitsizes),

        # cryptography rsa
        TestArgRange(TestCryptRsa, modbits=(1024,2048,4096), msgbits=(2,256,512,1024)),

        # PyCrypto rsa
        TestArgRange(TestPyCryptRsa, modbits=(1024,2048,4096), msgbits=(2,256,512,1024)),

        # now some tests to see how very simple operations perform
        TestEval("pass"),
        TestEval("1+2"),
        TestEval("8*9"),

        TestLambda(nop),
        TestLambda(lambda: 1),
        TestLambda(lambda: 1+2),
        TestLambda(lambda: 1+2+3+4),
        TestLambda(lambda: 8*9),
        TestLambda(lambda: pow(1, 1, 2)),

        # some elliptic curve crypto
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECT571R1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECT409R1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECT283R1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECT233R1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECT163R2),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECT571K1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECT409K1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECT283K1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECT233K1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECT163K1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECP521R1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECP384R1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECP256R1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECP256K1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECP224R1),
        TestCryptEc(cryptography.hazmat.primitives.asymmetric.ec.SECP192R1),


    ]
import signal
import sys
import time

#Reads line by line, since reading entire file will consume too much ram

choice = 0;
numhashes = 0;
filename = "";
file1 = "";
encoded_string = "";
choices = {
    1 : hashes.SHA256(),
    2 : hashes.MD5(),
    3 : hashes.RIPEMD160(),
    4 : hashes.Whirlpool(),
}



def menu():
     global choice;
     invalid = True
     while invalid :
         print ("\n\
         Please Select a Hashing Algorithm:\n\
         1. sha2 (256-bit hash)\n\
         2. md5 (128-bit hash)\n\
         3. ripemd160 (160-bit hash)\n\
         4. whirlpool (512-bit hash)\n\