Nathan-LS / Cryptography-Spring2019

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cryptography-Spring2019 Project 2 AES and DES

Build Status Build status codecov

Group Members:

  • Nathan S
  • Stephen S
  • Jasper C
  • Allen S
  • Hector M

Programming Language: Java

How to Execute:

This project builds upon the existing testing frameworks and cipher interfaces used in project 1.

  1. Clone the project if you don't have it yet.
    https://github.com/Nathan-LS/Cryptography-Spring2019.git
    
  2. Make the gradle wrapper file executable.
    cd Cryptography-Spring2019
    chmod +x ./gradlew
    
  3. Compile and run the application with arguments as specified in the project assignment details. Format:
    ./gradlew run --args=<CIPHER NAME> <KEY> <ENC/DEC> <INPUT FILE> <OUTPUT FILE>
    
    For example:
    ./gradlew run --args="DES 0123456789abcedf ENC src/test/resources/DES/0123456789abcedf/plaintext_image_tux.png encrypted_tux.png"
    
    This will compile the Java application and encrypt a picture of Tux to the encrypted_tux.png file.
  4. Let's decrypt the image of Tux and ensure it matches the plain original.
    ./gradlew run --args="DES 0123456789abcedf DEC encrypted_tux.png decrypted_tux.png"
    sha256sum decrypted_tux.png src/test/resources/DES/0123456789abcedf/plaintext_image_tux.png
    

Notes on testing

This application is fully unit tested with JUnit and runs with continuous integration services. Files exist in the /src/test/resources/ folder based on encryption key and cipher type. For example, the file src/test/resources/DES/0123456789abcedf/plaintext_1.txt will have a corresponding assert file named src/test/resources/DES/0123456789abcedf/encrypted_1.txt which are used for decryption and encryption testing. You should run all of our unit tests with the following command:

./gradlew test

Path format:

src/test/resources/CIPHER/KEY/plaintext_CASE.txt

Extra Credit Implementation:

Not attempted.

Project Notes:

  • None

About

License:GNU General Public License v3.0


Languages

Language:Java 100.0%