From efd533331d6a7f0c51ef857af448a6c84c3084ed Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Fri, 12 Feb 2016 15:01:00 +0100 Subject: Removed spaces in path --- Assignment 3/des-demo.py | 62 ------------------------------------------------ 1 file changed, 62 deletions(-) delete mode 100755 Assignment 3/des-demo.py (limited to 'Assignment 3/des-demo.py') diff --git a/Assignment 3/des-demo.py b/Assignment 3/des-demo.py deleted file mode 100755 index 0a4954f..0000000 --- a/Assignment 3/des-demo.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/python - -# Copyright (c) 2015 Camil Staps - -import sys, getopt, binascii -from Crypto.Cipher import DES - -def main(argv): - key = '' - plaintext = '' - ciphertext = '' - - # Parse arguments. Use -h for help. - try: - opts, args = getopt.getopt(argv, "hk:p:c:", ["key=","plaintext=","ciphertext="]) - except getopt.GetoptError: - usage() - sys.exit(2) - - for opt, arg in opts: - if opt == '-h': - usage() - sys.exit() - elif opt in ("-k", "--key"): - key = binascii.a2b_hex(arg) - elif opt in ("-p", "--plaintext"): - plaintext = binascii.a2b_hex(arg) - elif opt in ("-c", "--ciphertext"): - ciphertext = binascii.a2b_hex(arg) - - if key == '' or plaintext == '' and ciphertext == '': - usage() - sys.exit(2) - - # PyCrypto does the hard work - cipher = DES.new(key, DES.MODE_ECB) - - encryption = '' - decryption = '' - - if plaintext != '': - encryption = cipher.encrypt(plaintext) - if ciphertext != '': - decryption = cipher.decrypt(ciphertext) - - # When plaintext and ciphertext are provided, output if DES[k](p) = c. Otherwise, output the encryption / decryption. - if encryption != '' and decryption != '': - print encryption == ciphertext - elif encryption != '': - print binascii.b2a_hex(encryption) - elif decryption != '': - print binascii.b2a_hex(decryption) - -def usage(): - print 'Usage: des-demo.py -k [-p ] [-c <ciphertext>]' - print ' key : an 8-byte value entered as hexadecimal numbers' - print ' plaintext : an 8-byte value entered as hexadecimal numbers' - print ' ciphertext : an 8-byte value entered as hexadecimal numbers' - print 'At least one of plaintext and ciphertext should be provided. When both are provided, we check if DES[k](p) = c.' - -if __name__ == "__main__": - main(sys.argv[1:]) -- cgit v1.2.3