1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-22 22:38:08 +00:00
trezor-firmware/crypto
Christian Reitter 525bbab165 tests(crypto): update wycheproof testcase source and parsing
The JSON schema of the test cases has slightly changed.
The "curve" field has moved to the "testGroups" level and the X25519 algorithm has been renamed,
which requires adjustments in the parsing code.

A duplicate definition of "ecdh_vectors" has also been removed.
2022-01-07 16:55:24 +01:00
..
aes fix(crypto): fix build on clang/arm64 2020-12-17 00:09:47 +01:00
chacha20poly1305 feat(core): make chacha_drbg more robust 2021-05-21 13:42:53 +02:00
ed25519-donna fix(crypto): Clean up stack in ed25519.c. 2021-11-01 16:39:53 +01:00
fuzzer crypto: new iteration of fuzz testing code, improved dictionary script, minor documentation changes 2021-08-05 17:03:04 +02:00
gui all: rename TREZOR to Trezor where possible 2019-06-17 20:28:29 +02:00
monero fix(crypto): clarify incorrect base58.c code comment 2021-12-01 18:09:52 +01:00
tests tests(crypto): update wycheproof testcase source and parsing 2022-01-07 16:55:24 +01:00
tools fix(crypto): fix wrong input handling in mktable 2021-11-19 23:10:34 +01:00
.gitignore toplevel: reorganize .gitignore files 2019-04-17 00:05:24 +02:00
.gitmodules MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
.gitrepo git subrepo pull crypto 2019-09-12 11:52:12 +02:00
address.c feat(core,legacy): add support for Ethereum 64-bit chain_id 2021-09-10 15:09:03 +02:00
address.h feat(core,legacy): add support for Ethereum 64-bit chain_id 2021-09-10 15:09:03 +02:00
AUTHORS MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
base32.c crypto: explicitly initialize variable length arrays 2019-10-09 17:05:34 +02:00
base32.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
base58.c crypto: Fix buffer overflow in b58tobin. 2020-05-24 14:36:37 +00:00
base58.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
bignum.c fix(crypto): revert to bitwise OR operator and silence warning 2021-12-09 14:31:52 +01:00
bignum.h style(crypto): cleanup unused functions 2021-03-09 13:21:34 +01:00
bip32.c feat(crypto/cardano): implement Cardano Ledger derivation 2021-11-10 13:57:57 +01:00
bip32.h refactor(crypto): extract Cardano derivations to separate file 2021-11-10 13:57:57 +01:00
bip39_english.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
bip39.c feat(crypto): support all bip39 lengths in mnemonic_to_bits 2021-11-10 13:57:57 +01:00
bip39.h Refactor mnemonic_to_entropy to not (misleadingly) return checksum 2020-12-19 20:17:16 +01:00
blake2_common.h feat(crypto): add big endian support 2021-11-04 20:38:52 +01:00
blake2b.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
blake2b.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
blake2s.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
blake2s.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
blake256.c fix(crypto): Fix incorrect handling of empty input in blake256_Update(). 2021-06-11 20:22:42 +02:00
blake256.h all: remove extraneous whitespace 2019-05-26 22:20:14 +02:00
byte_order.h feat(crypto): add big endian support 2021-11-04 20:38:52 +01:00
cardano.c feat(crypto/cardano): implement Cardano Ledger derivation 2021-11-10 13:57:57 +01:00
cardano.h refactor(crypto): extract Cardano derivations to separate file 2021-11-10 13:57:57 +01:00
cash_addr.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
cash_addr.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
chacha_drbg.c feat(core): make chacha_drbg more robust 2021-05-21 13:42:53 +02:00
chacha_drbg.h feat(core): make chacha_drbg more robust 2021-05-21 13:42:53 +02:00
check_mem.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
CONTRIBUTORS crypto: add fuzz testing harnesses and documentation 2020-07-07 14:41:10 +02:00
curves.c feat(crypto/cardano): implement Cardano Ledger derivation 2021-11-10 13:57:57 +01:00
curves.h feat(crypto/cardano): implement Cardano Ledger derivation 2021-11-10 13:57:57 +01:00
ecdsa.c fix(crypto): Treat point at infinity as an invalid public key in ecdsa_recover_pub_from_sig(). 2022-01-07 14:37:40 +01:00
ecdsa.h refactor(core,crypto): make public key derivation functions return 2021-10-25 14:41:28 +02:00
groestl_internal.h fix(crypto): fix build on clang/arm64 2020-12-17 00:09:47 +01:00
groestl.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
groestl.h ci: enable editorconfig checks, fix whitespace issues 2020-11-11 14:43:50 +01:00
hasher.c feat(crypto): Add TapSigHash to Hasher. 2021-11-18 22:39:32 +01:00
hasher.h feat(crypto): Add TapSigHash to Hasher. 2021-11-18 22:39:32 +01:00
hmac_drbg.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
hmac_drbg.h crypto/hmac_drbg: Fix style. 2019-06-11 11:41:40 +02:00
hmac.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
hmac.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
LICENSE MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
Makefile build(crypto): make valgrind flag compatible with secp256k1-zkp (#2027) 2021-12-20 15:19:14 +01:00
memzero.c fix(crypto): update case of windows.h (#1560) 2021-04-08 14:16:23 +02:00
memzero.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
nem.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
nem.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
nist256p1.c crypto/bignum: change limb size to 29, add tests 2020-05-24 14:36:38 +00:00
nist256p1.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
nist256p1.table crypto/bignum: change limb size to 29, add tests 2020-05-24 14:36:38 +00:00
options.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
pbkdf2.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
pbkdf2.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
rand.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
rand.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
rc4.c MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
rc4.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
README.md Add support for Schnorr crypto (BCH variant) 2021-03-09 14:22:56 +01:00
rfc6979.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
rfc6979.h crypto/rfc6979: Use the new HMAC DRBG implementation in rfc6979.c. Remove code duplication between rfc6979.c and ecdsa.c. 2019-06-11 11:41:40 +02:00
ripemd160.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
ripemd160.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
schnorr.c fix(crypto,core,legacy): Check private key validity when deriving public key. 2021-11-01 16:39:53 +01:00
schnorr.h Add support for Schnorr crypto (BCH variant) 2021-03-09 14:22:56 +01:00
script.c crypto: explicitly initialize variables 2019-10-09 17:05:33 +02:00
script.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
secp256k1.c crypto/bignum: change limb size to 29, add tests 2020-05-24 14:36:38 +00:00
secp256k1.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
secp256k1.table crypto/bignum: change limb size to 29, add tests 2020-05-24 14:36:38 +00:00
segwit_addr.c feat(crypto): update segwit_addr to support Bech32m 2021-10-18 13:36:05 +02:00
segwit_addr.h feat(crypto): update segwit_addr to support Bech32m 2021-10-18 13:36:05 +02:00
setup.py MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
sha2.c feat(crypto): Add key tweaking functions to zkp_bip340.c. 2021-11-13 13:33:46 +01:00
sha2.h feat(crypto): Add key tweaking functions to zkp_bip340.c. 2021-11-13 13:33:46 +01:00
sha3.c fix(crypto): fix undefined behaviour of IS_ALIGNED_64 macro 2021-11-08 17:38:51 +01:00
sha3.h MONOREPO MERGE trezor-crypto 2019-04-15 19:14:52 +02:00
shamir.c crypto: fix undefined behavior in shamir unbitslice (#1219) 2020-08-24 14:25:43 +02:00
shamir.h crypto/shamir: Add copyright. 2019-04-18 15:11:54 +02:00
slip39_wordlist.h chore(crypto): Rework SLIP-39 word lookup. 2020-12-15 13:41:42 +01:00
slip39.c chore(crypto): Rework SLIP-39 word lookup. 2020-12-15 13:41:42 +01:00
slip39.h fix(crypto): Improve naming and robustness of SLIP39's T9 mask lookup. 2020-12-15 13:41:42 +01:00
zkp_bip340.c refactor(crypto): make secp256k1_context_writable_randomize() return status 2021-11-18 19:05:40 +01:00
zkp_bip340.h feat(crypto): Add key tweaking functions to zkp_bip340.c. 2021-11-13 13:33:46 +01:00
zkp_context.c fix(crypto): assign NULL to zkp_context after is is destroyed 2021-11-29 14:16:42 +01:00
zkp_context.h refactor(crypto): expose zkp_context_is_initialized 2021-11-29 14:16:42 +01:00
zkp_ecdsa.c refactor(crypto): make secp256k1_context_writable_randomize() return status 2021-11-18 19:05:40 +01:00
zkp_ecdsa.h refactor(core,crypto): make public key derivation functions return 2021-10-25 14:41:28 +02:00

trezor-crypto

Build Status gitter

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
  • Schnorr (BCH variant) 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: