diff --git a/DiffieHellman.c b/DiffieHellman.c index 7326c1b9989c85767e5aee291231266d220a3a45..bf63fd9aa8c30a7fc28fa2eace5246b7cce186b7 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 Binary files /dev/null and b/pwd6sha256 differ