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