Skip to content

aavegmit/AES

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aaveg Mittal
aavegmit@usc.edu
Homework6

. Design
. There are total 13 files 7 source file and 6 header files.

main.cc: 
. mainly contains the general code, such as userinput parsing & then calling the appropriote function. 

Some important class definitions

class Byte{
	private:
		unsigned char c ;

	public:
		Byte(unsigned char) ;
		unsigned char to_uchar() ;
		Byte operator*(Byte other) ;
		Byte xtimes() ;
		Byte SubByte() ;
		Byte InvSubByte() ;
		Byte Inverse() ;
		void setC(unsigned char ch){ 
			c = ch ;
		}

};

class Word{
	private:
		int len ;
		unsigned char *w ;
	public:
		Word(char *str, int l);			// Length of the word in bytes, default being 4
		Word(const Word& wo) ;

		Word SubWord();				// Uses the S-box for byte-level substitution
		void SubWord1();			// Uses the S-box for byte-level substitution
		void InvSubWord1();			// Uses the S-box for byte-level substitution
		Word RotWord();				// [a0, a1, a2, a3] -> [a1, a2, a3, a0]

		Word XOR(Word);				// Performs the XOR function on two words
		void CircularLShift(int times=1);	// Performs Circular left shift, by default one time 
		virtual void display();			// Display the word in the required format
		unsigned char *to_Array();		// Returns the Word in array form
		bool compare(Word&);
		static Word Rcon(int);
		void copyW(unsigned char *);
		Word& operator=(const Word&) ;



		void setW(int, unsigned char) ;

		void WModProd(unsigned char, char *) ;

		void Divide(Word, Word&, Word&) ;

		void Inverse() ;
		unsigned char* to_print(unsigned char *) ;

		~Word() ;

};



2.      Testing
1. Please follow the instruction mentioned on homework 6 page.

About

AES algorithm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages