Coder Social home page Coder Social logo

bouncycastles's Introduction

NIS Practical

This repository is the source documents for the NIS 2022 Practical. Implementing a client server communication protocol that implements end-to-end encryption using the BouncyCastlesFips library.

Files

The following Java class files can be found under the src directory:

Class Description
Utils Utils for running the client server setup.
KeyWithMessageDigest A class for wrapping a signed one time key with a signed message digest.
Hashing A class for testing the hashing and signing flow.
Encryption A class for testing the encryption flow.
HashingAndEncryption A class for testing the full flow including hashing, signing and encryption methods.
ClientHandler This class helps the server keep track of all connected clients.
Client This class represents the client in a client-server network.
ClientRunner Creates a key pair for a Client then runs a new instance of a Client passing in the key pair encoded.
Server This class represents the server in a client-server network.

Compiling and Running

There is a Makefile in the root of the repository to make running the client-server network easy. In order to setup a network you can run the following commands in separate terminals:

make
make server
make client
make client

Docs

Javadocs can also be generated by running make docs. This will generate documentation in the doc directory. Opening the index.html file will open a webpage with documentation for all the classes in the repository.

Usage

Once the server is running, each new client will request a name. Once the name is granted, the client is connected and can send/receive messages from the group.

Authors

  • Sihle Calana - CLNSIH001
  • Simangaliso Mncwango - MNCSIM006
  • Tinotenda Muzambi - MZMTIN002
  • Tumo Masire - MSRTUM001

bouncycastles's People

Contributors

tinomuzambi avatar

Watchers

 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.