From f7bed6d2cd8b4c4cfaa267d50e83fc863045b4e1 Mon Sep 17 00:00:00 2001
From: Abhisha Nirmalathas <a.nirmalathas1@student.unimelb.edu.au>
Date: Mon, 13 May 2019 22:16:24 +1000
Subject: [PATCH] completed diffie hellman exchange

---
 DiffieHellman.c |  50 +++++++++++++-----------------------------------
 pwd6sha256      | Bin 0 -> 640 bytes
 2 files changed, 13 insertions(+), 37 deletions(-)
 create mode 100644 pwd6sha256

diff --git a/DiffieHellman.c b/DiffieHellman.c
index 7326c1b..bf63fd9 100644
--- a/DiffieHellman.c
+++ b/DiffieHellman.c
@@ -22,7 +22,6 @@ int modulo(int a, int b, int n){
 }
 
 int main(int argc, char *argv[]){
-    printf("rnning main\n");
     int g,p;
 
     g = 15;
@@ -41,15 +40,9 @@ int main(int argc, char *argv[]){
         exit(EXIT_FAILURE);
     }
     char privKey[5];
-    // memset(privKey,0,0);
     memcpy(privKey, argv[2], 2);
     privKey[2] = '\0';
-    printf("privKey is %s\n\n", privKey);
-    // char hex[10];
-    // snprintf(hex, 2, "0x%s",privKey);
-    // printf("hex is %s\n\n", hex);
     int b = (int)strtol(privKey, NULL, 16);
-    printf("b is %d\n\n", b);
     portno = 7800;
 
     /* Translate host name into peer's IP address ;
@@ -92,25 +85,18 @@ int main(int argc, char *argv[]){
     printf("send username\n");
     char *username = "nirmalathasa"; 
     n = write(sockfd, username, strlen(username));
-    printf("n  is %d\n", n);
     n = write(sockfd, "\n", 1);
-    printf("n  is %d\n", n);
     if (n < 0)
         {
             perror("ERROR writing to socket");
             exit(EXIT_FAILURE);
         }
-    printf("g: %d, b: %d, p: %d\n", g,b,p);
-    // long int numerator = (int)pow(g,b);
-    // printf("numerator: %ld\n", numerator);
-    // int val = numerator%p;
-    int val = modulo(g,b,p);
-    printf("my key is is %d\n", val);
-    char value[100];
-    sprintf(value,"%d", val);
-    for(int i=0; i < strlen(value); i++){
-        printf("write value  is %s\n", value);
-        n = write(sockfd, value, 1);
+    int client_secret = modulo(g,b,p);
+    printf("my key is is %d\n", client_secret);
+    char secret[100];
+    sprintf(secret,"%d", client_secret);
+    for(int i=0; i < strlen(secret); i++){
+        n = write(sockfd, &secret[i], 1);
         if (n < 0)
         {
             perror("ERROR writing to socket");
@@ -118,26 +104,16 @@ int main(int argc, char *argv[]){
         }
     }
     n = write(sockfd, "\n", 1);
-    printf("write newline n is %d\n", n);
-    while(1){
-        n = read(sockfd, buffer, 255);
-        printf("read n is %d\n", n);
-        printf("bufferrr %s and size if %d\n\n",buffer, strlen(buffer));
-        if(!strncmp(buffer,"\n",1)){
-            printf("is newline");
-            buffer[n] = 0;
-            break;
-        }
-        // buffer[n] = 0;
+    n = read(sockfd, buffer, 255);
+    if(!strncmp(buffer,"\n",1)){
+        buffer[n] = 0;
     }
     buffer[n] = 0;
     int responseDiffie = atoi(buffer);
-    printf("response is %d\n", responseDiffie);
-    char sec[100];
-    sprintf(sec,"%d",modulo(val, responseDiffie, p));
-    printf("final is %s\n", sec);
-    for(int i=0; i < strlen(value); i++){
-        n = write(sockfd, value, 1);
+    char shared_value[100];
+    sprintf(shared_value,"%d",modulo(responseDiffie, b, p));
+     for(int i=0; i < strlen(shared_value); i++){
+        n = write(sockfd, &shared_value[i], 1);
         if (n < 0)
         {
             perror("ERROR writing to socket");
diff --git a/pwd6sha256 b/pwd6sha256
new file mode 100644
index 0000000000000000000000000000000000000000..d8609ea48cecc65468f49cedd30260ce7138a060
GIT binary patch
literal 640
zcmeBJ$f+vw_0PiEu2bxRhZaw7nR?yu@babCw!i*rr@i3gqT_wFZ6~wdI($kKpE2<t
zbI>HF1LytiD~hUnqx5Cl|EL)(SR|7otFiCrN24-BoA@)IB;=k6ichw#oFFin_1K$T
z5rvv-D}MZl<+v%pxm8E$$LgqsyLcHJwGZFD*lP7$mz9kndyV>w{8JS<P9p4`cBjiE
zRg-;^B{qKedEv{p??!!x1r)+&m-S2hD*V>KZK>W+acWMB?rIOMD-K%^@0l_8;1a&r
zV%_CI%XGqzEJ*v69h#)+=`Q=?vgPp{bt#^hiQF|N`~8FcrDiqB&XIR_yrI;0=jRS5
zhR~Z{J~`=gC!AaEdw@$xO2+-Bmf4P@^TTfKT7D+U#C864rmNQuF8My=>b~Xw=AJ(F
zt2OeKnfT&GQr~y1Vmq|!ezDTAnz(1%el(ojSQ=G$_Q=nRb2k4yDAQ~y-E>SoZOiT8
z_gW3-U9Pyy;P!J^d1L=tXO}Z-@=2OUpH7W3IK<33dyAgx)`M!n7OBjRx2&x0?mROu
zuS09K%WJ>SoElYkXHPf$%ba^P>ba<A&x{7~OND_G6^zyES6z7jr!DD0Mz$H#j5*5>
zH$AWAuWFdu5}|%BuRXM~m+|nQcXNw4om0PXxp8|;yphK%v9MVngGV5$Y2~?J;hrC+
zR)uiS&G@XO*tlEGL3m=|%q`ni2>;gqWn!~$%8$d_Jrtx<{ksiTtlY}SvM7aB%kX?&
zIeYW|1O2X?cIqnTXXjtKwEfCImJ1B?uW!A#!uZ@{p7$*Lsm4e6jZHrE+dr}PvY(jC
zQ8UM0CB|#X5}w<}KTQqeelE9~x%WZFdR@=A^(S`xs$BihDk1X0Z6ogOCXs)qC3$bz
GY!3j2nKq~Z

literal 0
HcmV?d00001

-- 
GitLab