Exemple #1
0
def test_sign_verify_sha512():
    """Test SHA-512 sign and verify the message.
    """
    (pub, priv) = adafruit_rsa.newkeys(752, log_level="DEBUG")
    msg = "red apple"
    signature = adafruit_rsa.sign(msg, priv, "SHA-512")
    adafruit_rsa.verify(msg, signature, pub)
Exemple #2
0
def test_encrypt_decrypt():
    # Generate general purpose keys
    (pub, priv) = adafruit_rsa.newkeys(256, log_level="DEBUG")
    msg = "blinka".encode("utf-8")
    msg_enc = adafruit_rsa.encrypt(msg, pub)
    msg_dec = adafruit_rsa.decrypt(msg_enc, priv)
    assert msg == msg_dec, "Decrypted message does not match original message"
Exemple #3
0
def test_randomness():
    """Encrypt msg 2x yields diff. encrypted values."""
    # Generate general purpose keys
    (pub, priv) = adafruit_rsa.newkeys(256, log_level="DEBUG")
    msg = "blinka".encode("utf-8")
    msg_enc_1 = adafruit_rsa.encrypt(msg, pub)
    msg_enc_2 = adafruit_rsa.encrypt(msg, pub)
    assert msg_enc_1 != msg_enc_2, "Messages should yield different values."
Exemple #4
0
def test_mod_msg():
    """Modifies an enecrypted message, asserts failure"""
    # Generate general purpose keys
    (pub, priv) = adafruit_rsa.newkeys(256, log_level="DEBUG")
    msg = "blinka".encode("utf-8")
    msg_enc = adafruit_rsa.encrypt(msg, pub)
    msg_enc = msg_enc[:-1] + b"X"  # change the last byte
    try:
        adafruit_rsa.decrypt(msg_enc, priv)
        raise "ERROR: Decrypted message matches original"
    except adafruit_rsa.pkcs1.DecryptionError:
        pass
Exemple #5
0
def test_sign_verify_fail():
    """Check for adafruit_rsa.pkcs1.VerificationError on
    a modified message (invalid signature).
    """
    # Generate general purpose keys
    (pub, priv) = adafruit_rsa.newkeys(256, log_level="DEBUG")
    msg = "red apple"
    signature = adafruit_rsa.sign(msg, priv, "SHA-512")
    msg = "blue apple"
    try:
        adafruit_rsa.verify(msg, signature, pub)
    except adafruit_rsa.pkcs1.VerificationError:
        # Expected error
        pass
import adafruit_rsa

# Generate a keypair
#
# Supported Hash method   Suggested minimum key size (bits)
# SHA-256                 496
# SHA-384                 624
# SHA-512                 752
#
(public_key, private_key) = adafruit_rsa.newkeys(496)

# Create a new secret message
message = 'Meet me at 6pm'

# Hash the message using SHA-224
hash_method = "SHA-256"
signature = adafruit_rsa.sign(message, private_key, hash_method)

# Verify Message Signature
if adafruit_rsa.verify(message, signature, public_key) != hash_method:
    raise ValueError(
        "Verification failed - signature does not match secret message sent!")