0% found this document useful (0 votes)
62 views7 pages

Information and Network Security Practical No.9

This document contains code to implement SSL between a client and server. It includes code for both the client and server. The client code generates private and public keys, sends the public key to the server, and calculates a shared secret key. The server code receives the client's public key, generates its own private and public keys, sends its public key to the client, and calculates the same shared secret key.

Uploaded by

Devika Dakhore
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views7 pages

Information and Network Security Practical No.9

This document contains code to implement SSL between a client and server. It includes code for both the client and server. The client code generates private and public keys, sends the public key to the server, and calculates a shared secret key. The server code receives the client's public key, generates its own private and public keys, sends its public key to the client, and calculates the same shared secret key.

Uploaded by

Devika Dakhore
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Name: Amey Pendhari

Roll no: CS-4114


Division : 2 / B3
Class: T.Y.BSc-CS
Date: 01/09/2021

Information and Network Security


Practical No.9

Title: Write a program to implement SSL.

# SSL Secure Socket Layer:


SSL, or Secure Sockets Layer, is an encryption-based Internet security
protocol. It was first developed by Netscape in 1995 for the purpose of
ensuring privacy, authentication, and data integrity in Internet
communications. SSL is the predecessor to the modern TLS encryption
used today.

A website that implements SSL/TLS has "HTTPS" in its URL instead of


"HTTP."

CODE: #Client:

import java.net.*;

import java.io.*;

public class GreetingClient {

public static void main(String[] args)


{

try {

String pstr, gstr, Astr;

String serverName = "localhost";

int port = 8088;

// Declare p, g, and Key of client

int p = 23;

int g = 9;

int a = 4;

double Adash, serverB;

// Established the connection

System.out.println("Connecting to " + serverName

+ " on port " + port);

Socket client = new Socket(serverName, port);

System.out.println("Just connected to "

+ client.getRemoteSocketAddress());

// Sends the data to client

OutputStream outToServer = client.getOutputStream();

DataOutputStream out = new DataOutputStream(outToServer);

pstr = Integer.toString(p);

out.writeUTF(pstr); // Sending p
gstr = Integer.toString(g);

out.writeUTF(gstr); // Sending g

double A = ((Math.pow(g, a)) % p); // calculation of A

Astr = Double.toString(A);

out.writeUTF(Astr); // Sending A

// Client's Private Key

System.out.println("From Client : Private Key = " + a);

// Accepts the data

DataInputStream in = new DataInputStream(client.getInputStream());

serverB = Double.parseDouble(in.readUTF());

System.out.println("From Server : Public Key = " + serverB);

Adash = ((Math.pow(serverB, a)) % p); // calculation of Adash

System.out.println("Secret Key to perform Symmetric Encryption = "

+ Adash);

client.close();

catch (Exception e) {

e.printStackTrace();

}
}

OUTPUT:

CODE: #Server:

import java.net.*;

import java.io.*;

public class GreetingServer {

public static void main(String[] args) throws IOException

try {

int port = 8088;

// Server Key

int b = 3;
// Client p, g, and key

double clientP, clientG, clientA, B, Bdash;

String Bstr;

// Established the Connection

ServerSocket serverSocket = new ServerSocket(port);

System.out.println("Waiting for client on port " + serverSocket.getLocalPort()


+ "...");

Socket server = serverSocket.accept();

System.out.println("Just connected to " + server.getRemoteSocketAddress());

// Server's Private Key

System.out.println("From Server : Private Key = " + b);

// Accepts the data from client

DataInputStream in = new DataInputStream(server.getInputStream());

clientP = Integer.parseInt(in.readUTF()); // to accept p

System.out.println("From Client : P = " + clientP);

clientG = Integer.parseInt(in.readUTF()); // to accept g


System.out.println("From Client : G = " + clientG);

clientA = Double.parseDouble(in.readUTF()); // to accept A

System.out.println("From Client : Public Key = " + clientA);

B = ((Math.pow(clientG, b)) % clientP); // calculation of B

Bstr = Double.toString(B);

// Sends data to client

// Value of B

OutputStream outToclient = server.getOutputStream();

DataOutputStream out = new DataOutputStream(outToclient);

out.writeUTF(Bstr); // Sending B

Bdash = ((Math.pow(clientA, b)) % clientP); // calculation of Bdash

System.out.println("Secret Key to perform Symmetric Encryption = "

+ Bdash);

server.close();

}
catch (SocketTimeoutException s) {

System.out.println("Socket timed out!");

catch (IOException e) {

OUTPUT:

You might also like