2016-05-11 19:15:48 +00:00
|
|
|
# trezor-crypto
|
2013-08-17 12:20:15 +00:00
|
|
|
|
2016-05-11 19:15:48 +00:00
|
|
|
[![Build Status](https://travis-ci.org/trezor/trezor-crypto.svg?branch=master)](https://travis-ci.org/trezor/trezor-crypto) [![gitter](https://badges.gitter.im/trezor/community.svg)](https://gitter.im/trezor/community)
|
2015-07-29 18:53:36 +00:00
|
|
|
|
2013-10-08 12:18:35 +00:00
|
|
|
Heavily optimized cryptography algorithms for embedded devices.
|
2013-08-17 12:20:15 +00:00
|
|
|
|
2013-10-08 12:18:35 +00:00
|
|
|
These include:
|
2013-10-10 12:58:59 +00:00
|
|
|
- AES/Rijndael encryption/decryption
|
2013-10-08 12:18:35 +00:00
|
|
|
- Big Number (256 bit) Arithmetics
|
|
|
|
- BIP32 Hierarchical Deterministic Wallets
|
2013-11-08 00:24:47 +00:00
|
|
|
- BIP39 Mnemonic code
|
2015-07-07 07:38:16 +00:00
|
|
|
- ECDSA signing/verifying (supports secp256k1 and nist256p1 curves,
|
2013-10-08 15:25:28 +00:00
|
|
|
uses RFC6979 for deterministic signatures)
|
2017-05-08 12:57:55 +00:00
|
|
|
- ECDSA public key derivation
|
2017-06-05 18:17:30 +00:00
|
|
|
- Base32 (RFC4648 and custom alphabets)
|
2017-05-08 12:57:55 +00:00
|
|
|
- Base58 address representation
|
2017-06-05 15:04:11 +00:00
|
|
|
- Ed25519 signing/verifying (also SHA3 and Keccak variants)
|
2016-10-21 22:29:14 +00:00
|
|
|
- ECDH using secp256k1, nist256p1 and Curve25519
|
2013-10-08 12:18:35 +00:00
|
|
|
- HMAC-SHA256 and HMAC-SHA512
|
2013-12-09 15:21:42 +00:00
|
|
|
- PBKDF2
|
2013-10-08 12:18:35 +00:00
|
|
|
- RIPEMD-160
|
2017-05-08 15:15:54 +00:00
|
|
|
- SHA1
|
|
|
|
- SHA2-256/SHA2-512
|
2016-04-26 09:09:29 +00:00
|
|
|
- SHA3/Keccak
|
2017-03-30 23:36:29 +00:00
|
|
|
- BLAKE2s/BLAKE2b
|
2017-05-11 11:27:34 +00:00
|
|
|
- Chacha20-Poly1305
|
2017-06-03 21:43:58 +00:00
|
|
|
- unit tests (using Check - check.sf.net; in test_check.c)
|
|
|
|
- tests against OpenSSL (in test_openssl.c)
|
2013-08-21 16:07:02 +00:00
|
|
|
|
2013-10-08 12:18:35 +00:00
|
|
|
Distibuted under MIT License.
|
2017-05-08 15:15:54 +00:00
|
|
|
|
|
|
|
## Some parts of the library come from external sources:
|
|
|
|
|
|
|
|
- AES: https://github.com/BrianGladman/aes
|
|
|
|
- Base58: https://github.com/luke-jr/libbase58
|
|
|
|
- BLAKE2s/BLAKE2b: https://github.com/BLAKE2/BLAKE2
|
|
|
|
- RIPEMD-160: https://github.com/ARMmbed/mbedtls
|
|
|
|
- SHA1/SHA2: http://www.aarongifford.com/computers/sha.html
|
|
|
|
- SHA3: https://github.com/rhash/RHash
|
|
|
|
- Curve25519: https://github.com/agl/curve25519-donna
|
|
|
|
- Ed25519: https://github.com/floodyberry/ed25519-donna
|
2017-05-11 11:27:34 +00:00
|
|
|
- Chacha20: https://github.com/wg/c20p1305
|
|
|
|
- Poly1305: https://github.com/floodyberry/poly1305-donna
|