From 015b867d34a9626db4d82d2d8c96583edae765d2 Mon Sep 17 00:00:00 2001
From: Egon Nathan Bittencourt Araujo <enba14@inf.ufpr.br>
Date: Wed, 25 Apr 2018 15:33:29 -0300
Subject: [PATCH] playfair pela metade

Signed-off-by: Egon Nathan Bittencourt Araujo <enba14@inf.ufpr.br>
---
 .gitignore         |   3 +++
 include/playfair.h |   2 +-
 playfair.cpp       |  34 ++++++++++++++++++++++++++++------
 playfair.o         | Bin 52368 -> 0 bytes
 playunfair         | Bin 36800 -> 0 bytes
 playunfair.o       | Bin 6920 -> 0 bytes
 6 files changed, 32 insertions(+), 7 deletions(-)
 create mode 100644 .gitignore
 delete mode 100644 playfair.o
 delete mode 100755 playunfair
 delete mode 100644 playunfair.o

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..838aa8e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.o
+playunfair
+*.out
diff --git a/include/playfair.h b/include/playfair.h
index d3fb066..51675d4 100644
--- a/include/playfair.h
+++ b/include/playfair.h
@@ -3,5 +3,5 @@
 #include <vector>
 #include <iterator>
 
-std::vector< std::vector<char> > createKM ( const std::string key);
+std::vector< char > createKM ( const std::string key);
 std::string playfair(std::string text , const std::string key );
diff --git a/playfair.cpp b/playfair.cpp
index ec04911..3bed308 100644
--- a/playfair.cpp
+++ b/playfair.cpp
@@ -3,9 +3,10 @@
 
 #define _charbit(X) (1 << (X - 'a'))
 
-
-std::vector< std::vector<char> > createKM ( const std::string key){
-	std::vector< std::vector<char> > mKey(5, std::vector<char>(5));
+//Base idea is to use an 32-bit int as mask to detect which char
+// is already on the matrix
+std::vector< char > createKM ( const std::string key){
+	std::vector< char > mKey(25);
 	std::string abc(key + "abcdefghijklmnopqrstuvxwyz");
 	int mask =0;
 	//mask with 32 bits for the 25 letter alfabet
@@ -20,21 +21,42 @@ std::vector< std::vector<char> > createKM ( const std::string key){
 				mask = mask | (_charbit('j') | _charbit('i'));
 			}
 
-			mKey[i][j] = abc[si];
+			mKey[i*5 + j] = abc[si];
 		}
 	}
 	return mKey;
 }
 
 std::string playfair(std::string text, const std::string key){
-	std::vector< std::vector <char> > mKey(createKM(key));
+	std::ostringstream ret;
+	std::vector< char > mKey(createKM(key));
 	for (int i=0; i<5; ++i){
 		for (int j=0; j<5; ++j){
-			std::cout << mKey[i][j] << ' ';
+			std::cout << mKey[i*5 + j] << ' ';
 		}
 		std::cout << std::endl;
 	}
 
+	int indexT = -1;
+	char fst = text[++indexT];
+	char snd = text[++indexT];
+	if (fst == snd && snd != 'x'){
+		snd = 'x';
+		--indexT;
+	}
+
+	int iFst, iSnd;
+
+	for (int i=0; i<25; ++i){
+		if(mKey[i] == fst){
+			iFst=i;
+		}
+		if(mKey[i] == snd){
+			iSnd=i;
+		}
+	}
+	char retfst,retsnd;
+	retfst = mKey[iFst/5 + iSnd%5]
 
 	//TODO:change
 	return text;
diff --git a/playfair.o b/playfair.o
deleted file mode 100644
index bd96c5f689a85f39d9613e64fa6e361a62a73fe1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 52368
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
LsB;c*xcdJ;@=eZ>

diff --git a/playunfair b/playunfair
deleted file mode 100755
index 25214f30dda0255c6fca59324b72bb581049e10a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 36800
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

diff --git a/playunfair.o b/playunfair.o
deleted file mode 100644
index 060fc99a4b5e7b17bbf29b8304eccd926094093d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6920
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
JBYBL@{~x=*S^WS2

-- 
GitLab