Esempio n. 1
0
 def test_ecb_padding(self):
     key = "My secret key"
     encrypter = get_ecb_encrypter(key)
     encrypt_image_file(SOURCE_IMAGE_42, encrypter, "examples/ecb-42.png")
     decrypter = get_ecb_decrypter(key)
     decrypt_image_file("examples/ecb-42.png", decrypter, "examples/ecb-42-d.png")
     difference = _get_images_difference(SOURCE_IMAGE_42, "examples/ecb-42-d.png")
     self.assertTrue(difference <= TARGET_DIFFERENCE_42)
Esempio n. 2
0
 def test_make_caesar(self):
     offset = 128
     caesar_encrypter = lambda image: bytes([(pixel + offset) % 0xff for pixel in image])
     caesar_decrypter = lambda image: bytes([(pixel - offset) % 0xff for pixel in image])
     encrypt_image_file(SOURCE_IMAGE_TUX, caesar_encrypter, "examples/caesar.png")
     decrypt_image_file("examples/caesar.png", caesar_decrypter, "examples/caesar-d.png")
     difference = _get_images_difference(SOURCE_IMAGE_TUX, "examples/caesar-d.png")
     self.assertTrue(difference == 0.00)
Esempio n. 3
0
    def test_make_otp(self):
        cipher = get_stream_cipher(seed="My secret seed")
        encrypt_image_file(SOURCE_IMAGE_TUX, cipher, "examples/otp.png")

        # Decrypt correctly
        decrypt_image_file("examples/otp.png", cipher, "examples/otp-d.png")
        difference = _get_images_difference(SOURCE_IMAGE_TUX, "examples/otp-d.png")
        self.assertTrue(difference <= TARGET_DIFFERENCE_TUX)

        # Use a wrong cipher to decrypt
        cipher = get_stream_cipher(seed="Not my secret seed")
        decrypt_image_file("examples/otp.png", cipher, "examples/otp-d.png")
        difference = _get_images_difference(SOURCE_IMAGE_TUX, "examples/otp-d.png")
        self.assertTrue(difference > TARGET_DIFFERENCE_TUX)
Esempio n. 4
0
    def test_sanity(self):
        invert = lambda x: bytes([255 - y for y in x])
        image = load_image(SOURCE_IMAGE_TUX)
        original = image.b
        inverted = encrypt_image(image, invert)
        self.assertTrue(original != inverted.b)
        inverted = decrypt_image(image, invert)
        self.assertTrue(original == inverted.b)

        key = "My secret key"
        encrypter = get_ecb_encrypter(key)
        encrypt_image_file(SOURCE_IMAGE_TUX, encrypter, "examples/ecb.png")

        # Decrypt correctly
        decrypter = get_ecb_decrypter(key)
        decrypt_image_file("examples/ecb.png", decrypter, "examples/ecb-d.png")
        difference = _get_images_difference(SOURCE_IMAGE_TUX, "examples/ecb-d.png")
        self.assertTrue(difference <= TARGET_DIFFERENCE_TUX)

        # Use a wrong decrypter
        decrypter = get_ecb_decrypter("Some other key")
        decrypt_image_file("examples/ecb.png", decrypter, "examples/ecb-x.png")
        difference = _get_images_difference(SOURCE_IMAGE_TUX, "examples/ecb-x.png")
        self.assertTrue(difference > TARGET_DIFFERENCE_TUX)
Esempio n. 5
0
 def test_make_shorter_invert(self):
     inverter = lambda image: [0xff - pixel for pixel in image]
     encrypt_image_file(SOURCE_IMAGE_TUX, inverter, "examples/inverted.png")
     decrypt_image_file("examples/inverted.png", inverter, "examples/inverted-d.png")
     difference = _get_images_difference(SOURCE_IMAGE_TUX, "examples/inverted-d.png")
     self.assertTrue(difference == 0.00)