@andybry/crypto-testing
Version:
Utilities for expermenting with cryptography
35 lines (25 loc) • 1.5 kB
Markdown
# 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)