A cross Platform Encryption Library which Interact with Many Programming Languages Provides a Lightweight Encryption for all Devices. It gives the oportunity in many Companies to Interact with a server wrriten in pure node.js which can feeds data across any device or across any pc where supported this Programming Languages(Java,android,UWP,IOS,python)
Lightweight_IoT_Crypto_Library Encryption aims at providing an easy-to-use Cross Platform API which allows an encrypted communication ( multi platform programming languages)over socket which it can be used from every company or developers who want a High level security inside a network between multiple cross platform devices
Some of the important characteristics that make Lightweight_IoT_Crypto_Library such an attractive option include the following
Feature | Description |
---|---|
Multi platform programming languages system scales easily with no downtime. |
|
Ensure the reliability of Diffie Hellman Key based the model designed to guide policies for information security within an organization, the well known as CIA(Confidentiality,Integrity,Availability). |
|
Performance High throughput for both Server and Client, at the Higher layers of the OSI Reference Model(Application Layer ) that provide constant performance. |
#Philosophy
The Lightweight_IoT_Crypto_Library philosophy is to provide small, robust tooling for companies to adopt Bring your own device (BYOD) which is refers to the policy of permitting employees to bring personally owned devices (laptops, tablets, and smart phones) to their workplace, and to use those devices to access privileged company information and application with secure
#Quick Start
The quickest way to get started is to install the Server.All what you need to run the server is described below:
* About 15 minutes * A favorite text editor or IDE (i use this one c9 ). * Node.js v4.6.1 or laterThe package can be installed via git clone only (for now). Also you will need to run the Server Locally in order to play the example given. An easy way to do this if you use c9 is to follow this tutorial
$git clone https://github.com/PanagiotisDrakatos/Lightweight IoT Crypto Library.git
$cd Lightweight IoT Crypto Library
Install dependencies:
``` $npm install node-rsa $npm install node-forge $npm install big-integer ``` #Usage ``` $npm start ```Open a Web browser, go to http://localhost:1337,Navigate in PlainConnection.js and dont forget to change this lines of code with your values
```Javascript var _HOST = '192.168.1.68';//your local server ip var _PORT = 1337;//your local server port ``` ---et voilĂ !You are ready to Start the Server By Running the PlainConnection.js script
```Python from Handshake.SessionHandler import HandleSessionsessi = HandleSession("Plaintext") try: sessi.StartExhangeKey()
sessi.__SendSecurMessage__("Message")
print(sessi.__ReceiveSecurMessage__())
sessi.__SendSecurMessage__("Message1")
print(sessi.__ReceiveSecurMessage__())
except Exception as inst: print type(inst) finally: print("closing socket") sessi.Close()
---
<h2>Java Manual</h2>
```java
import com.security.crypto.Configuration.Properties;
import com.security.crypto.Handshake.SessionHandler;
/**
* Hello world!
*/
public class App {
public static void main(String[] args) throws Exception {
String Receive = null;
SessionHandler session = new SessionHandler(Properties.PlainTextConnection);
session.StartDHKeyExchange();
session.SendSecureMessage("hello Server 1");
Receive = session.ReceiveSecureMessage();
System.out.println(Receive);
session.SendSecureMessage("hello Server 2");
Receive = session.ReceiveSecureMessage();
System.out.println(Receive);
session.ConnectionClose();
}
}
Navigate here for furthermore informations of how to run this library in UWP apps
Navigate here for furthermore informations of how to run this library in Android apps
#Contribute
- Fork it: git clone https://github.com/PanagiotisDrakatos/Lightweight_IoT_Crypto_Library.git
- Create your feature branch: git checkout -b my-new-feature
- Commit your changes: git commit -am 'Add some feature'
- Push to the branch: git push origin my-new-feature
- Submit a pull request :D
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.