From 3299d14d27e7626e5b14bfb448e2b7b73070ba71 Mon Sep 17 00:00:00 2001 From: Qifan Tang <q.tang2@student.unimelb.edu.au> Date: Sat, 25 May 2019 13:03:16 +0000 Subject: [PATCH] uploading dh.c before 12 --- dh | Bin 0 -> 13400 bytes dh.c | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 175 insertions(+) create mode 100755 dh create mode 100644 dh.c diff --git a/dh b/dh new file mode 100755 index 0000000000000000000000000000000000000000..0e61a2db2ab954d5d41e77fde088708749be237f GIT binary patch literal 13400 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 JJOqKR9{|WA8f5?g literal 0 HcmV?d00001 diff --git a/dh.c b/dh.c new file mode 100644 index 0000000..561249f --- /dev/null +++ b/dh.c @@ -0,0 +1,175 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <string.h> +#include <strings.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <netdb.h> +#include <unistd.h> +#include <ctype.h> +#define G 15 +#define P 97 + + + +//used this instead of the power, but not sure why +int calculate(int g, int m, int p) +{ + int r; + int y = 1; + while (m > 0){ + r = m % 2; + // fast exponention + if (r == 1) + y = (y*g) % p; + g = g*g % p; + m = m / 2; + } + return y; +} + +//to calculate the hex value +int toInt(char a){ + if(isalpha(a)){ + a = a - 87; + }else{ + a = a - 48; + } + return (int) a; +} + +int main(int argc, char ** argv) +{ + char buffer[256]; + //get the sha256 file + FILE* file = popen("openssl sha256 dh.c", "r"); + if(!file){ + printf("something wrong with your command or file\n"); + exit(0); + } + + while(fgets(buffer, 256, file)){ + + } + + pclose(file); + //copy the file + //printf("buffer = %s\n", buffer); + + char hashed[256]; + strcpy(hashed, buffer); + + //convert to integer + int hex1 = toInt(hashed[14]); + int hex2 = toInt(hashed[15]); + //printf("%d\n", hex1); + //printf("%d\n", hex2); + //this b is for the one to calculate + int b = hex1 * 16 + hex2; + //printf("b = %d\n", b); + //calculate the one to send + int B = calculate(G, b, P); + printf("B = %d\n", B); + + + + //time to establish connection + int sockfd, portno, n; + struct sockaddr_in serv_addr; + struct hostent * server; + + portno = 7800; + + + /* Translate host name into peer's IP address ; + * This is name translation service by the operating system + */ + server = gethostbyname("172.26.37.44"); + + if (server == NULL) + { + fprintf(stderr, "ERROR, no such host\n"); + exit(0); + } + + /* Building data structures for socket */ + + bzero((char *)&serv_addr, sizeof(serv_addr)); + + serv_addr.sin_family = AF_INET; + + bcopy(server->h_addr_list[0], (char *)&serv_addr.sin_addr.s_addr, server->h_length); + + serv_addr.sin_port = htons(portno); + + /* Create TCP socket -- active open + * Preliminary steps: Setup: creation of active open socket + */ + + sockfd = socket(AF_INET, SOCK_STREAM, 0); + + if (sockfd < 0) + { + perror("ERROR opening socket"); + exit(0); + } + + if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) + { + perror("ERROR connecting"); + exit(0); + } + printf("successfully creat socket\n"); + + bzero(buffer, 256); + + //send name + strcpy(buffer, "qifant\n"); + n = write(sockfd, buffer, strlen(buffer)); + printf("successfully sent name\n"); + + //send the value of B + bzero(buffer, 256); + //put integer B into into buffer + sprintf(buffer, "%d\n", B); + n = write(sockfd,buffer, strlen(buffer)); + printf("successfully sent B\n"); + + bzero(buffer, 256); + //wait for the response + n = read(sockfd, buffer, 255); + + if (n < 0){ + perror("ERROR reading from socket"); + exit(0); + } + + //should receive a int + int receive = atoi(buffer); + //printf("receive = %d\n",receive); + printf("successfully received"); + + int key = calculate(receive, b, P); + //printf("key = %d\n", key); + + bzero(buffer, 256); + + //confirm the key + sprintf(buffer, "%d\n", key); + n = write(sockfd, buffer, strlen(buffer)); + bzero(buffer, 256); + + //receive the result + n = read(sockfd, buffer, 255); + if (n < 0){ + perror("ERROR reading from socket"); + exit(0); + } + + printf("result: %s\n", buffer); + + +} + -- GitLab