Mailbox Messaging Service with End-to-End Encryption using UDP Sockets


To understand the underlying activities which occur during inter-process communication;

To implement a client/server program using UDP sockets;

To use C/C++ library functions for implementing a socket program; and

To get familiarized with the Unix programming environment.

Introduction: For this project, you will be writing a client/server application to implement a mailbox messaging service with end-to-end encryption using UDP sockets. Secure communication between clients will be through RSA public key encryption (PKE). The server program will act as the public-key and mailbox manager. For purposes of making this project less complex, we will limit messages to a maximum of 4 characters (a "psst"). The "psst" message length will allow the encrypted messages to fit in an 4-byte long int data type.


The components to this programming project are:

Client: sends and receives encrypted beeps through a mailbox between users.

Server: manages public-keys sent by users, and stores and forwards encrypted messages between users.

Server. The server process performs the following activities. The server should maintain a table of public keys that have been registered and a table to store all messages.

Process key registration

The server should respond with an acknowledgement that the key was received

Process key requests

The server should respond with the corresponding public key of the requested user.

Process encrypted messages from any user.

The server should store messages by recipient and send an acknowledgement to the sending client.

Process "retrieve message" requests

The server should send all stored messages for the requesting recipient user,

Client. The client process should perform the following activities:

Send a register message to the server

A client should always register a public key to the server at the beginning of a session.

Send "request public key"

The client should be able to request for another user's public key to the server at any time.

Send encrypted messages

The client should be able to send messages from the user to other known users. The message should be encrypted using the recipient user's public key.

Send "retrieve messages" request

The client should be able to request to retrieve all his/her messages

The client should be able to receive ALL messages.

The messages should be decrypted using the user's own private key and displayed.

Exit – Provide an option for the user to exit the program. Client program should not quit.

Skills: C Programming, C++ Programming, Linux, Network Security

See more: communications employing java udp sockets, transferring image using udp using, using excel front end database, exchange 2016 ports to open on firewall, rsa vs aes which is more secure, exchange 2013 ports to open on firewall, client server encryption/decryption program in python, client side encryption and server side decryption in java, client server encryption decryption program in java, encryption and decryption in client server, rsa client server implementation in c, client p2p connection using udp, cnet upload images using flash front end, code game using language front end office end, sending byte using udp vbnet, consultancy service project using html php, using vnc without end user knowing, creating service call using econnect, design service rates using indesign, customized instant messaging service

About the Employer:
( 0 reviews ) Westland, United States

Project ID: #25656332

6 freelancers are bidding on average $386 for this job


Hello! I'd like to deliver messaging app. I'm familiar with network programming, C++, cryptography. I'll do the job fairly good. Please, give me a try!

$980 USD in 3 days
(10 Reviews)

I CAN COMPLETE YOUR PROJECT EASILY Hello, I am programmer with enough experiences on C/C++ for 13 years. C/C++ is nice programming language and I am majoring on it for long years so I have confident to complete your pr More

$140 USD in 7 days
(2 Reviews)

Best regards I am an expert specialized in the development of software and web platforms. I have the following skills Programming languages: ----- C, C++, C#, Matlab, Java, Python, VB ----- ✅ Modelado 3d, Animación More

$650 USD in 1 day
(3 Reviews)

Hi there, I have more than 25 years of experience in C and C++ over linux, bsd, solaris, qnx, freeRtos, OS/2, DOS or windows in backend working for very important corporations, so I think I can help you with this stuff More

$180 USD in 10 days
(1 Review)

Dear Prospect Hiring Manager. Thank you for giving me a chance to bid on your project. I am a serious bidder here and I have already worked on a similar project before and can deliver as u have mentioned "I can do th More

$225 USD in 7 days
(0 Reviews)

Hi there.... This is Irfan, an experienced Web developer with over 10 years of experience. I have extensive experience in Microsoft .Net, Wordpress, PHP, Python, Android- and Javascript libraries like Angular JS, Re More

$140 USD in 7 days
(0 Reviews)