JS Cryptographic Signing Tutorial
TL;DR
We want to find easy ways to cryptographically sign, encrypt, and check for interoperability between cryptographic standards.
Let's make the Blockchain Singularity a reality.
Also just check out OpenPGPJS-Tutorial
TODO
- Proposal: 50x Price reduction for chain-key ECDSA signing / threshold ECDSA signing - Developers - Internet Computer Developer Forum
- Threshold ECDSA Signatures - Roadmap - Internet Computer Developer Forum
- Cardano will be more interoperable with Bitcoin and other blockchains - English / Education - Cardano Forum
- EdDSA and Ed25519 - Practical Cryptography for Developers
What is this Technology?
Skip if you already know how encryption and signing already work.
Encryption uses special math called cryptography that allows people to send private messages that other people and glowies can't read.
Digital Signatures also use cryptography to prove people said something. Rather than signing using a pen a digital signature signs using a big password stored on a computer and rather than a name your get a very specific string of random characters.
Encryption and Digital Signatures rely on public private keys. A private key is a password you can use to sign and encrypt data. Other people use your public key to send you encrypted secret data and you can do the same for them.
Description
In this tutorial we are going to test out and validate a couple different encryption and signing libraries in Javascript and see if any of them can work together.
- Signing Curves
- Symmetric Key Systems
- PKCS - Public Key Crypto Systems
- RSA - webcrypto
- Asymmetric
- RSA with webcrypto
- AES - webcrypto
- Symmetric
- AES with webcrypto
- PGP - openpgp js
- 100,000 Downloads
- openpgp in Javascript Tutorial
- Age software - age-encryption
- 8 Downloads a week
- Age Javascript Tutorial
- SSH - node-sshpk
- Nostr - nostr-tools
- X.509 Certificates - fidm-x509 1
- Keybase - NaCl (Salt) Encryption
- USE THIS - tweetnacl-js/README.md at master ยท dchest/tweetnacl-js
- Requires saltpack be compiled to WASM
- libsodium
- libkeybase-js
- IPNS
- PeerGos
- Post Quantum Encryption
- RSA - webcrypto
- Signing + Encryption Blockchain Libraries
- Other Notable Software
Background Information
Outline - Goals of This Tutorial
- Tasks
- Generate Private Key
- Generate Private Key from Seed Phrase
- Generate Public Key
- Encrypt Data
- Decrypt Data
- Sign Data
- Backup Private Key
- Restore Private Key
Source Code
Getting Started with this technology
Help I don't know how to Code
- Check out my Learn to Code document and come back here.