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."
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"
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
# 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"))