Exemple #1
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 #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_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 #4
0
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT

# Adafruit_CircuitPython_RSA Encryption/Decryption
import adafruit_rsa

# Create a keypair
print("Generating keypair...")
(public_key, private_key) = adafruit_rsa.newkeys(512)

# Message to send
message = "hello blinka"

# Encode the string as bytes (Adafruit_RSA only operates on bytes!)
message = message.encode("utf-8")

# Encrypt the message using the public key
print("Encrypting message...")
encrypted_message = adafruit_rsa.encrypt(message, public_key)

# Decrypt the encrypted message using a private key
print("Decrypting message...")
decrypted_message = adafruit_rsa.decrypt(encrypted_message, private_key)

# Print out the decrypted message
print("Decrypted Message: ", decrypted_message.decode("utf-8"))