Git Product home page Git Product logo

secure-chat's Introduction

Secure Chat (P2P)
===================================

Programming language: Java
Author(s): Nilo Redini, Davide Pellegrino
Site(s):
        * http://redo86.altervista.org (Nilo Redini)
Class: Computer engeneering from University of Pisa - Accademic year 2011-2012




What this software do ?
===================================
This program allows to you to comunicate in a secure way with other users. 
In order to use this software is necessary retrieve the public key of the 
user with which you want to talk, and put this in the correct folder (see below for details).
You can register to the service and login whenever you want, the passwords are stored locally 
and protected by SHA1 using SALT bytes.
The session key (used to comunicate among users) is created using Diffie-Hellman algorithm 
and,in order to avoid man in the middle attack, every phase of the algorithm is signed by 
private key(provided by user or created in registration phase).
In the end the entire communication is encrypted with DES algorithm.
Whether the RSA keys are not present when a new user is registering, these are created and stored
in the test/KeyFiles folder (see below).
Otherwise you can use your pair keys simply putting these in the directory above, renaming these
like this:
* Private key: UserName_private.key
* Public key: UserName_public.key


For more details pleas read the documentation and the files of the specifications in
the doc/.



Compile the entire project
===================================
To compile the entire project and the library just type:
$make
  
If all went well you should see three new classes in bin directory:
Client.class , ClientThread.class and Receive.class



Chat part
===================================
To start chatting, after taking the user's public key with which you want to talk, just make :
$ java Client [PORT: used to receive connections]

By default port value is 1234.

You can also use defalut configuration typing:
$ make test1  (To use port 1234)
$ make test2 (To use port 1345)



Test part
===================================
To test the software please use these two user's credentials:

* User: asd
  Password: lol

* User: lol
  Password: asd



Clean all
===================================
To clean all using the makefile:
$make cleanall



Documentation
===================================
To compile the documentation just type:
$ make documentation

Doxygen is required.
http://www.stack.nl/~dimitri/doxygen/



Folders contents
===================================

bin/  contains the binary files 
doc/  contains the documentation files
src/  contains all sources classes
test/ contains the files were used for testing operations
    /Credentials/ contains the password file
    /KeyFiles/ contains all keys stored locally (for each user is stored his private key and
                 the public keys which he has retrieved)







Tested on Ubuntu 10.04 with kernel 2.6.32-34 and on Ubuntu 11.04 with kerne 1.6.38-11

License
===================================
Released under GNU GPLv3 license (http://www.gnu.org/licenses/gpl-3.0.txt)


secure-chat's People

Contributors

badnack avatar pelldav avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.