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