UNPKG

@andybry/crypto-testing

Version:

Utilities for expermenting with cryptography

35 lines (25 loc) 1.5 kB
# Crypto Testing Experimentation and research in cryptography. Contains a number of experimental utilities for building cryptographic primitives and a few experimental implementations. It is hoped that some of the items here will be useful for other people who are also studying cryptography in a JavaScript context. In particular the implementations, computation algorithms and tests could be useful to help improve understanding. ## Installation `npm install @andybry/crypto-testing` # Utilities - `shared/big-int`: working with and converting to and from big ints - `shared/bit`: working with and converting to and from bits - `shared/byte`: working with and converting to and from bytes - `shared/curve`: elliptic curve implementation - `shared/fp2`: implementation of field of order p squared - `shared/random`: secure random generators - `shared/secp256k1`: parameters and associated elliptic curve implementation - `shared/string`: working with and converting to and from string representations of data - `shared/zn`: implementation of field of order p (or could be used for rings if n is not prime) ## Scripts - `npm run des`: implementation of the Data Encryption Standard (for 1 64-bit block) - `npm run des:node`: the same thing using nodes `crypto` API for comparison - `npm run ecdsa`: demonstrates the implentation of ECDSA using secp256k1 - `npm run ecdsa:vs-ethereum`: compares local signing and recovery with the Ethereum version (from web3.js)