mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-29 19:08:12 +00:00
.. | ||
aes | ||
chacha20poly1305 | ||
ed25519-donna | ||
fuzzer | ||
gui | ||
monero | ||
tests | ||
tools | ||
.gitignore | ||
.gitmodules | ||
.gitrepo | ||
address.c | ||
address.h | ||
AUTHORS | ||
base32.c | ||
base32.h | ||
base58.c | ||
base58.h | ||
bignum.c | ||
bignum.h | ||
bip32.c | ||
bip32.h | ||
bip39_english.c | ||
bip39.c | ||
bip39.h | ||
blake2_common.h | ||
blake2b.c | ||
blake2b.h | ||
blake2s.c | ||
blake2s.h | ||
blake256.c | ||
blake256.h | ||
buffer.c | ||
buffer.h | ||
byte_order.h | ||
cardano.c | ||
cardano.h | ||
cash_addr.c | ||
cash_addr.h | ||
chacha_drbg.c | ||
chacha_drbg.h | ||
check_mem.h | ||
CONTRIBUTORS | ||
curves.c | ||
curves.h | ||
der.c | ||
der.h | ||
ecdsa_internal.h | ||
ecdsa.c | ||
ecdsa.h | ||
elligator2.c | ||
elligator2.h | ||
groestl_internal.h | ||
groestl.c | ||
groestl.h | ||
hash_to_curve.c | ||
hash_to_curve.h | ||
hasher.c | ||
hasher.h | ||
hmac_drbg.c | ||
hmac_drbg.h | ||
hmac.c | ||
hmac.h | ||
LICENSE | ||
Makefile | ||
memzero.c | ||
memzero.h | ||
nem.c | ||
nem.h | ||
nist256p1.c | ||
nist256p1.h | ||
nist256p1.table | ||
options.h | ||
pbkdf2.c | ||
pbkdf2.h | ||
rand.c | ||
rand.h | ||
rc4.c | ||
rc4.h | ||
README.md | ||
rfc6979.c | ||
rfc6979.h | ||
ripemd160.c | ||
ripemd160.h | ||
script.c | ||
script.h | ||
secp256k1.c | ||
secp256k1.h | ||
secp256k1.table | ||
segwit_addr.c | ||
segwit_addr.h | ||
setup.py | ||
sha2.c | ||
sha2.h | ||
sha3.c | ||
sha3.h | ||
shamir.c | ||
shamir.h | ||
slip39_english.c | ||
slip39_wordlist.h | ||
slip39.c | ||
slip39.h | ||
tls_prf.c | ||
tls_prf.h | ||
zkp_bip340.c | ||
zkp_bip340.h | ||
zkp_context.c | ||
zkp_context.h | ||
zkp_ecdsa.c | ||
zkp_ecdsa.h |
trezor-crypto
Heavily optimized cryptography algorithms for embedded devices.
These include:
- AES/Rijndael encryption/decryption
- Big Number (256 bit) Arithmetics
- BIP32 Hierarchical Deterministic Wallets
- BIP39 Mnemonic code
- ECDSA signing/verifying (supports secp256k1 and nist256p1 curves, uses RFC6979 for deterministic signatures)
- ECDSA public key derivation
- BIP340 Schnorr signature signing/verifying
- Base32 (RFC4648 and custom alphabets)
- Base58 address representation
- Ed25519 signing/verifying (also SHA3 and Keccak variants)
- ECDH using secp256k1, nist256p1 and Curve25519
- HMAC-SHA256 and HMAC-SHA512
- PBKDF2
- RIPEMD-160
- SHA1
- SHA2-256/SHA2-512
- SHA3/Keccak
- BLAKE2s/BLAKE2b
- Chacha20-Poly1305
- unit tests (using Check - check.sf.net; in test_check.c)
- tests against OpenSSL (in test_openssl.c)
- integrated Wycheproof tests
Distibuted under MIT License.
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
- Chacha20: https://github.com/wg/c20p1305
- Poly1305: https://github.com/floodyberry/poly1305-donna