Send encrypted and decrypted messages with verifiable keys and human readable names.

Overview

zooko-msg

Encrypt and decrypt messages using AES with a preshared ECDH key generated using keys associated with Handshake names.

I noticed that there wasn't an encrypt/decrypt function natively provided in Handshake, so I built this using concepts introduced earlier in the Bitcoin space. The benefit of this implementation is that it is complete because of Handshake names. Zooko's Triangle is solved with Handshake making crypto better than ever!

1

2

3

4

How it works

Basically, your private key is used in conjunction with the recipient's public key to generate a shared key. This shared key must not be shared. Instead, you can simply share the ciphertext and the intialization vector (IV).

Also go on chain

You can also use zmsg-broadcast which is the same as zmsg, except it will put your message on chain. Then, someone can use zmsgpull to pull messages, and then zmsgread to read them.

The benefit of this is that you can encrypt messages and send them. The world will know you encrypted a message and sent it, but it will not know to whom it was for or what it said.

Of course, opponents might have issue with using a chain for this purpose, but I feel the benefits outweight the cons.

Installation Instructions

  1. Clone
git clone https://github.com/publiusfederalist/zooko-msg
  1. Get the npms
cd zooko-msg
npm install hsd hs-client readline stream
  1. Setup your hsd keys folder
echo "someapikey" > keys/node
echo "somewalletkey" > keys/wallet

You can get these with hsd. Make sure hsd has all the index-tx, index-address and other options enabled.

  1. Run commands!

Commands

Encryption

zmsg <yourname> <theirname> "<msg>"

Decryption

zmsg <theirname> <yourname> <encrypted> <iv>

Copyright

Copyright (c) 2022 Publius Federalist

All Rights Reserved

MIT LICENSED.

You might also like...

Non-interactive publicly verifiable distributed key generation and resharing algorithm over BLS12-381

NPVDKG-RS This repository contains a mathematical presentation and some code to demonstrate our developed non-interactive publicly verifiable distribu

May 19, 2022

A template repo that contains a NodeJS app that will consume messages from a RabbitMQ queue and immediately send them to an Azure EventHub.

README.md Summary This repo (RabbitMQ to EventHub Shovel) is a template that contains a NodeJS app that will consume messages from a RabbitMQ queue an

Jul 2, 2022

Send messages to this bot and almacenate it on selected Notion's Database

Send messages to this bot and almacenate it on selected Notion's Database

Telegram to Notion Bot What can do this bot? With this bot you can authorize that it receive the text that you send and store it on one selected datab

Dec 11, 2022

Util for kafkajs to buffer messages and send them in batches, inspired by node-rdkafka

kafkjajs-buffer Plugin for kafkajs to buffer messages and send them in batches, inspired by node-rdkafka Overview kafkajs-buffer adds queue/buffer cap

Sep 7, 2022

A chat logs online saver for discord bots to save messages history & cleared messages online

A chat logs online saver for discord bots to save messages history & cleared messages online

Chat Logs NPM package that saves messages online to view it later Useful for bots where users can save messages history & cleared messages online Supp

Dec 28, 2022

MagšŸ”„Lit - A super fast and easy-to-use free and open source private encrypted Magnet/HTTP(s) Link Shortener

MagšŸ”„Lit - A super fast and easy-to-use free and open source private encrypted Magnet/HTTP(s) Link Shortener

Mag šŸ”„ Lit Mag šŸ”„ Lit - A super fast and easy-to-use free and open source private encrypted Magnet/HTTP(s) Link Shortener https://maglit.ml Features āœ…

Jan 8, 2023

Keep your sensitive information out of chat logs, emails, and more with heavily encrypted secrets.

Keep your sensitive information out of chat logs, emails, and more with heavily encrypted secrets.

Free encrypted secret sharing for everyone! This application is to be used to share encrypted secrets cross organizations, or as private persons. Hemm

Dec 31, 2022

Keyauth v1 example, includes a demo and is encrypted using aes.

Keyauth v1 example, includes a demo and is encrypted using aes.

Keyauth Keyauth V1.0 api wrapper in nodejs that includes requests being encrypted using aes. Discord & Support Server . Keyauth Example const Keyauth

Nov 27, 2022

Vaultacks lets users store files off-chain on Gaia. Files are encrypted by default but also can be made public and shared

Vaultacks lets users store files off-chain on Gaia. Files are encrypted by default but also can be made public and shared

Vaultacks Vaultacks is built on the Stacks Chain. It lets users upload files to Gaia, a off-chain data storage system. Vaultacks currently uses the de

Sep 14, 2022
Owner
Publius Federalist
Publius Federalist
A service for sharing encrypted Markdown notes from Obsidian. Notes are end-to-end-encrypted and are only stored temporarily.

?? Noteshare.space Noteshare.space is a service for sharing encrypted Markdown notes from Obsidian. Notes are end-to-end-encrypted and are only stored

Maxime Cannoodt 56 Dec 26, 2022
ā± Simple Alpine.js plugin to display the human-readable distance between a date and now.

ā± Alpine TimeAgo ā± An Alpine.js plugin to return the distance between a given date and now in words (like "3 months ago", "about 2 hours ago" or "in a

Marc Reichel 47 Dec 22, 2022
Enhanced interval features for Node.js, such as promisified interval and human readable time parsing.

Interval-next Interval-next is a package that extends Javascript's built-in setInterval() capabilities. You have a plain and promisified interval meth

Snowy 5 Jul 28, 2022
Convert JSON to human readable HTML

json.human.js: Json Formatting for Human Beings A small library to convert a JSON object into a human readable HTML representation that is easy to sty

Mariano Guerra 955 Dec 3, 2022
parses human-readable strings for JavaScript's Temporal API

?? temporal-parse What is the temporal-parse? Temporal is the next generation of JavaScript's standard Date API. It's currently proposed to TC39 (see:

Eser Ozvataf 22 Jan 2, 2023
Svelte component to display time distances in a human readable format.

Time Distance Display time distances in a human readable format. Based on date-fns Updates every 60 seconds View demo Usage Install package: pnpm i -D

Joshua Nussbaum 8 Nov 2, 2022
A Leaderscore app that send data to an API created from Postman and allow users to save names and scores in a table. Built with JavaScript

Leaderboard The leaderboard website displays scores submitted by different players. It also allows you to submit your score. All data is preserved tha

Anicet Murhula 11 May 16, 2022
Wrap zod validation errors in user-friendly readable messages

zod-validation-error Wrap zod validation errors in user-friendly readable messages. Features User-friendly readable messages, configurable via options

Causaly 70 Dec 23, 2022
Serverless for Web3, which is Immutable and Verifiableāœ…

Tender Layer 2 for IPFS / API Renderer for Web3 / Serverless for Ethereum Tender is dynamic content serving P2P Protocol for Ethereum. V1 Design A Cod

Hyojun Kim 23 Nov 18, 2022
ParkyDB - block based, linkable and verifiable document database -- javascript reference implementation

Ancon ParkyDB A data mesh database using Web 3.0 technology Note: Requires Node v17.7.2 and up for development More about data mesh architecture Block

Ancon Protocol 6 Aug 16, 2022