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

已关闭 已发布的 3 年前 货到付款
已关闭 货到付款

Objectives:

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.

Description:

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.

C 编程 C++编程 Linux Network Security

项目ID: #25656332

关于项目

5个方案 远程项目 活跃的3 年前

有5名威客正在参与此工作的竞标,均价$421/小时

fabienbenoit1984

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 在3天内
(11条评论)
5.2
Darwish001

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 更多

$140 USD 在7天内
(3条评论)
4.7
greatswork

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 更多

$650USD 在1天里
(4条评论)
3.9
guillermopablo

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 更多

$180 USD 在10天内
(4条评论)
3.1