Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

cryptochat

Package Overview
Dependencies
Maintainers
1
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cryptochat

encrypted P2P chat over ICMP

latest
Source
npmnpm
Version
1.1.5
Version published
Weekly downloads
21
2000%
Maintainers
1
Weekly downloads
 
Created
Source

cryptochat

npm

Encrypted P2P chat over ICMP (Internet Control Message Protocol).

I strongly advise you to pick a high-entropy encryption key to avoid the possibility of brute-force attacks.

Uses raw-socket for ICMP handling and terminal-colors to spice it up a bit.

Install and usage

Make sure you have node 0.10.x (tip: use n) and then install the package globally with sudo.

sudo npm install -g cryptochat

Three variants of cryptochat are available depending on your use case:

  • Send and receive messages

    $ sudo cryptochat <ip> <encryption_key>
    
  • Receive messages

    $ sudo cryptochat server <encryption_key>
    
  • Send messages

    $ sudo cryptochat client <ip> <encryption_key>
    

Because it relies on stdin for input, it is possible to use pipes to send data:

cat cryptochat.js | sudo cryptochat client <ip> <encryption_key>

ICMP Echo request format

bits 0-7bits 8-15bits 16-31
type = 0x08code = 0x00checksum
identifiersequence number
payload

The message data is attached as the ICMP payload.

Message

Messages are piped from stdin and split into payload packages, which are encrypted and sent as ICMP Echo requests. The payload size per request is currently set to 32 bytes. The first byte is the length of the message and the rest is the message itself.

The first request contains a salt and an initialization vector needed to decrypt the payloads.

byte 0bytes 1-15bytes 16-31
0x3esaltinitialization vector

An "end" request is sent in order for the receiver to know when a message is completed. The end request has the following format:

byte 0bytes 1-31
0x3e0xffffffff...

When the end request is received, the full message is printed to the screen.

Contribute

As always, contributions are much appreciated.

Keywords

aes

FAQs

Package last updated on 30 Sep 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts