From 23bfb31ad2931fa3a9ca83caac16ba3a1d6714fa Mon Sep 17 00:00:00 2001 From: Kurotych Anatolii Date: Wed, 17 Apr 2019 06:19:01 -0400 Subject: [PATCH 1/6] crypto/ecdsa: add compress_coords (#42) --- crypto/ecdsa.c | 5 +++++ crypto/ecdsa.h | 1 + crypto/tests/test_check.c | 44 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/crypto/ecdsa.c b/crypto/ecdsa.c index f566cdd97..124a79e74 100644 --- a/crypto/ecdsa.c +++ b/crypto/ecdsa.c @@ -936,6 +936,11 @@ int ecdsa_address_decode(const char *addr, uint32_t version, address_check_prefix(out, version); } +void compress_coords(const curve_point *cp, uint8_t *compressed) { + compressed[0] = bn_is_odd(&cp->y) ? 0x03 : 0x02; + bn_write_be(&cp->x, compressed + 1); +} + void uncompress_coords(const ecdsa_curve *curve, uint8_t odd, const bignum256 *x, bignum256 *y) { // y^2 = x^3 + a*x + b diff --git a/crypto/ecdsa.h b/crypto/ecdsa.h index 8f8d06457..df257fc63 100644 --- a/crypto/ecdsa.h +++ b/crypto/ecdsa.h @@ -75,6 +75,7 @@ void scalar_multiply(const ecdsa_curve *curve, const bignum256 *k, curve_point *res); int ecdh_multiply(const ecdsa_curve *curve, const uint8_t *priv_key, const uint8_t *pub_key, uint8_t *session_key); +void compress_coords(const curve_point *cp, uint8_t *compressed); void uncompress_coords(const ecdsa_curve *curve, uint8_t odd, const bignum256 *x, bignum256 *y); int ecdsa_uncompress_pubkey(const ecdsa_curve *curve, const uint8_t *pub_key, diff --git a/crypto/tests/test_check.c b/crypto/tests/test_check.c index 5fe219c4e..fc2de3033 100644 --- a/crypto/tests/test_check.c +++ b/crypto/tests/test_check.c @@ -8307,6 +8307,46 @@ START_TEST(test_rc4_rfc6229) { } END_TEST +static void test_compress_coord(const char *k_raw) { + const ecdsa_curve *curve = &secp256k1; + curve_point expected_coords; + + bignum256 k = {0}; + + bn_read_be(fromhex(k_raw), &k); + + point_multiply(curve, &k, &curve->G, &expected_coords); + + uint8_t compress[33] = {0}; + compress_coords(&expected_coords, compress); + + bignum256 x = {0}, y = {0}; + bn_read_be(compress + 1, &x); + uncompress_coords(curve, compress[0], &x, &y); + + ck_assert(bn_is_equal(&expected_coords.x, &x)); + ck_assert(bn_is_equal(&expected_coords.y, &y)); +} + +START_TEST(test_compress_coords) { + static const char *k_raw[] = { + "dc05960ac673fd59554c98655e26722d007bb7ada0c8ff00883fdee70783d0be", + "41e41e0a218c980411108a0a58cf88f528c828b4d6f0d2c86234bc2504bdc3cd", + "1d963ddcb79f6028a32cadd2421ff7fff969bff5774f73063dab41519b3da175", + "2414141f96da0874dbc374b58861589935b7f940806ddf8d2e6b911f62e240f3", + "01cc1fb182e29f60fe43e22d250de34f2d3f956bbef2aa9b182d09e5d9176873", + "89b3d621d813682692fd61b2baea6b2ea696a44abc76925d29c4887fc4db9367", + "20c80c633e05a3a7dfac05fa0e0a7c7a6b708b02323e687735cff81ea5944f59", + "5a803c263aa93a4f74648066c03e63fb00641193bae93dfa254dabd634e8b49c", + "05efbcc87007797dca68315b9271ac8fb75bddbece53f4dcbfb83fc21cb91fc0", + "0bed78ef43474630bd646eef2d7ec19a1acb8e9eecf6a0a3ac7241ac40a7706f", + }; + + for (int i = 0; i < (int)(sizeof(k_raw) / sizeof(*k_raw)); i++) + test_compress_coord(k_raw[i]); +} +END_TEST + static int my_strncasecmp(const char *s1, const char *s2, size_t n) { size_t i = 0; while (i < n) { @@ -8580,6 +8620,10 @@ Suite *test_suite(void) { tcase_add_test(tc, test_cashaddr); suite_add_tcase(s, tc); + tc = tcase_create("compress_coords"); + tcase_add_test(tc, test_compress_coords); + suite_add_tcase(s, tc); + #if USE_CARDANO tc = tcase_create("bip32-cardano"); From 5dc0a1ee0a8023fec2d385c65a63f8cbeb40d3a3 Mon Sep 17 00:00:00 2001 From: Tomas Susanka Date: Wed, 17 Apr 2019 16:23:25 +0200 Subject: [PATCH 2/6] core/extmod: return False or None consistently when a signature verification fails from https://github.com/trezor/trezor-core/pull/535 by @real-or-random --- .../modtrezorcrypto/modtrezorcrypto-ed25519.h | 6 +++--- .../modtrezorcrypto-nist256p1.h | 14 ++++++------- .../modtrezorcrypto-secp256k1.h | 14 ++++++------- .../modtrezorcrypto-secp256k1_zkp.h | 20 +++++++++---------- core/src/apps/ethereum/verify_message.py | 5 +---- 5 files changed, 28 insertions(+), 31 deletions(-) diff --git a/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h b/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h index 5ab2b7ba5..7c4245c97 100644 --- a/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h +++ b/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h @@ -147,13 +147,13 @@ STATIC mp_obj_t mod_trezorcrypto_ed25519_verify(mp_obj_t public_key, mp_get_buffer_raise(signature, &sig, MP_BUFFER_READ); mp_get_buffer_raise(message, &msg, MP_BUFFER_READ); if (pk.len != 32) { - mp_raise_ValueError("Invalid length of public key"); + return mp_const_false; } if (sig.len != 64) { - mp_raise_ValueError("Invalid length of signature"); + return mp_const_false; } if (msg.len == 0) { - mp_raise_ValueError("Empty data to verify"); + return mp_const_false; } return (0 == ed25519_sign_open(msg.buf, msg.len, *(const ed25519_public_key *)pk.buf, diff --git a/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h b/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h index 84c98af16..67ddbfa0a 100644 --- a/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h +++ b/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h @@ -122,14 +122,14 @@ STATIC mp_obj_t mod_trezorcrypto_nist256p1_verify(mp_obj_t public_key, mp_get_buffer_raise(signature, &sig, MP_BUFFER_READ); mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ); if (pk.len != 33 && pk.len != 65) { - mp_raise_ValueError("Invalid length of public key"); + return mp_const_false; } if (sig.len != 64 && sig.len != 65) { - mp_raise_ValueError("Invalid length of signature"); + return mp_const_false; } int offset = sig.len - 64; if (dig.len != 32) { - mp_raise_ValueError("Invalid length of digest"); + return mp_const_false; } return mp_obj_new_bool( 0 == ecdsa_verify_digest(&nist256p1, (const uint8_t *)pk.buf, @@ -142,7 +142,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_3(mod_trezorcrypto_nist256p1_verify_obj, /// def verify_recover(signature: bytes, digest: bytes) -> bytes: /// ''' /// Uses signature of the digest to verify the digest and recover the public -/// key. Returns public key on success, None on failure. +/// key. Returns public key on success, None if the signature is invalid. /// ''' STATIC mp_obj_t mod_trezorcrypto_nist256p1_verify_recover(mp_obj_t signature, mp_obj_t digest) { @@ -150,14 +150,14 @@ STATIC mp_obj_t mod_trezorcrypto_nist256p1_verify_recover(mp_obj_t signature, mp_get_buffer_raise(signature, &sig, MP_BUFFER_READ); mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ); if (sig.len != 65) { - mp_raise_ValueError("Invalid length of signature"); + return mp_const_none; } if (dig.len != 32) { - mp_raise_ValueError("Invalid length of digest"); + return mp_const_none; } uint8_t recid = ((const uint8_t *)sig.buf)[0] - 27; if (recid >= 8) { - mp_raise_ValueError("Invalid recid in signature"); + return mp_const_none; } bool compressed = (recid >= 4); recid &= 3; diff --git a/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h b/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h index cb9cd6f5c..a5cb41f79 100644 --- a/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h +++ b/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h @@ -139,14 +139,14 @@ STATIC mp_obj_t mod_trezorcrypto_secp256k1_verify(mp_obj_t public_key, mp_get_buffer_raise(signature, &sig, MP_BUFFER_READ); mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ); if (pk.len != 33 && pk.len != 65) { - mp_raise_ValueError("Invalid length of public key"); + return mp_const_false; } if (sig.len != 64 && sig.len != 65) { - mp_raise_ValueError("Invalid length of signature"); + return mp_const_false; } int offset = sig.len - 64; if (dig.len != 32) { - mp_raise_ValueError("Invalid length of digest"); + return mp_const_false; } return mp_obj_new_bool( 0 == ecdsa_verify_digest(&secp256k1, (const uint8_t *)pk.buf, @@ -159,7 +159,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_3(mod_trezorcrypto_secp256k1_verify_obj, /// def verify_recover(signature: bytes, digest: bytes) -> bytes: /// ''' /// Uses signature of the digest to verify the digest and recover the public -/// key. Returns public key on success, None on failure. +/// key. Returns public key on success, None if the signature is invalid. /// ''' STATIC mp_obj_t mod_trezorcrypto_secp256k1_verify_recover(mp_obj_t signature, mp_obj_t digest) { @@ -167,14 +167,14 @@ STATIC mp_obj_t mod_trezorcrypto_secp256k1_verify_recover(mp_obj_t signature, mp_get_buffer_raise(signature, &sig, MP_BUFFER_READ); mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ); if (sig.len != 65) { - mp_raise_ValueError("Invalid length of signature"); + return mp_const_none; } if (dig.len != 32) { - mp_raise_ValueError("Invalid length of digest"); + return mp_const_none; } uint8_t recid = ((const uint8_t *)sig.buf)[0] - 27; if (recid >= 8) { - mp_raise_ValueError("Invalid recid in signature"); + return mp_const_none; } bool compressed = (recid >= 4); recid &= 3; diff --git a/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1_zkp.h b/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1_zkp.h index 996d69356..9dff09c0e 100644 --- a/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1_zkp.h +++ b/core/embed/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1_zkp.h @@ -170,24 +170,24 @@ STATIC mp_obj_t mod_trezorcrypto_secp256k1_zkp_verify(mp_obj_t public_key, mp_get_buffer_raise(signature, &sig, MP_BUFFER_READ); mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ); if (pk.len != 33 && pk.len != 65) { - mp_raise_ValueError("Invalid length of public key"); + return mp_const_false; } if (sig.len != 64 && sig.len != 65) { - mp_raise_ValueError("Invalid length of signature"); + return mp_const_false; } int offset = sig.len - 64; if (dig.len != 32) { - mp_raise_ValueError("Invalid length of digest"); + return mp_const_false; } secp256k1_ecdsa_signature ec_sig; if (!secp256k1_ecdsa_signature_parse_compact( ctx, &ec_sig, (const uint8_t *)sig.buf + offset)) { - mp_raise_ValueError("Invalid signature"); + return mp_const_false; } secp256k1_pubkey ec_pk; if (!secp256k1_ec_pubkey_parse(ctx, &ec_pk, (const uint8_t *)pk.buf, pk.len)) { - mp_raise_ValueError("Invalid public key"); + return mp_const_false; } return mp_obj_new_bool(1 == secp256k1_ecdsa_verify(ctx, &ec_sig, (const uint8_t *)dig.buf, @@ -199,7 +199,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_3(mod_trezorcrypto_secp256k1_zkp_verify_obj, /// def verify_recover(signature: bytes, digest: bytes) -> bytes: /// ''' /// Uses signature of the digest to verify the digest and recover the public -/// key. Returns public key on success, None on failure. +/// key. Returns public key on success, None if the signature is invalid. /// ''' STATIC mp_obj_t mod_trezorcrypto_secp256k1_zkp_verify_recover( mp_obj_t signature, mp_obj_t digest) { @@ -208,14 +208,14 @@ STATIC mp_obj_t mod_trezorcrypto_secp256k1_zkp_verify_recover( mp_get_buffer_raise(signature, &sig, MP_BUFFER_READ); mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ); if (sig.len != 65) { - mp_raise_ValueError("Invalid length of signature"); + return mp_const_none; } if (dig.len != 32) { - mp_raise_ValueError("Invalid length of digest"); + return mp_const_none; } int recid = ((const uint8_t *)sig.buf)[0] - 27; if (recid >= 8) { - mp_raise_ValueError("Invalid recid in signature"); + return mp_const_none; } bool compressed = (recid >= 4); recid &= 3; @@ -223,7 +223,7 @@ STATIC mp_obj_t mod_trezorcrypto_secp256k1_zkp_verify_recover( secp256k1_ecdsa_recoverable_signature ec_sig; if (!secp256k1_ecdsa_recoverable_signature_parse_compact( ctx, &ec_sig, (const uint8_t *)sig.buf + 1, recid)) { - mp_raise_ValueError("Invalid signature"); + return mp_const_none; } secp256k1_pubkey pk; if (!secp256k1_ecdsa_recover(ctx, &pk, &ec_sig, (const uint8_t *)dig.buf)) { diff --git a/core/src/apps/ethereum/verify_message.py b/core/src/apps/ethereum/verify_message.py index 3750512f9..b3a636434 100644 --- a/core/src/apps/ethereum/verify_message.py +++ b/core/src/apps/ethereum/verify_message.py @@ -17,10 +17,7 @@ async def verify_message(ctx, msg): raise wire.DataError("Invalid signature") sig = bytearray([msg.signature[64]]) + msg.signature[:64] - try: - pubkey = secp256k1.verify_recover(sig, digest) - except ValueError: - raise wire.DataError("Invalid signature") + pubkey = secp256k1.verify_recover(sig, digest) if not pubkey: raise wire.DataError("Invalid signature") From cea8458108157a20bedc9d8d98f217249d5a5a44 Mon Sep 17 00:00:00 2001 From: Thomas Kerin Date: Wed, 17 Apr 2019 15:43:01 +0100 Subject: [PATCH 3/6] common/defs: add bitcoin_regtest support (#43) --- common/defs/bitcoin/bitcoin_regtest.json | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 common/defs/bitcoin/bitcoin_regtest.json diff --git a/common/defs/bitcoin/bitcoin_regtest.json b/common/defs/bitcoin/bitcoin_regtest.json new file mode 100644 index 000000000..c11c8eac7 --- /dev/null +++ b/common/defs/bitcoin/bitcoin_regtest.json @@ -0,0 +1,40 @@ +{ + "coin_name": "Regtest", + "coin_shortcut": "REGTEST", + "coin_label": "Regtest", + "website": "https://bitcoin.org", + "github": "https://github.com/bitcoin/bitcoin", + "maintainer": "Thomas Kerin ", + "curve_name": "secp256k1", + "address_type": 111, + "address_type_p2sh": 196, + "maxfee_kb": 10000000, + "minfee_kb": 1000, + "signed_message_header": "Bitcoin Signed Message:\n", + "hash_genesis_block": "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206", + "xprv_magic": 70615956, + "xpub_magic": 70617039, + "xpub_magic_segwit_p2sh": 71979618, + "xpub_magic_segwit_native": 73342198, + "bech32_prefix": "bcrt", + "cashaddr_prefix": null, + "slip44": 1, + "segwit": true, + + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "bitcoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} From e78a917502fa16f2472808e0402201a315e0fea5 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Wed, 17 Apr 2019 16:45:04 +0200 Subject: [PATCH 4/6] common/defs: add bitcoin_regtest icon --- common/defs/bitcoin/bitcoin_regtest.json | 1 - common/defs/bitcoin/bitcoin_regtest.png | Bin 0 -> 3650 bytes 2 files changed, 1 deletion(-) create mode 100644 common/defs/bitcoin/bitcoin_regtest.png diff --git a/common/defs/bitcoin/bitcoin_regtest.json b/common/defs/bitcoin/bitcoin_regtest.json index c11c8eac7..f3b42c504 100644 --- a/common/defs/bitcoin/bitcoin_regtest.json +++ b/common/defs/bitcoin/bitcoin_regtest.json @@ -20,7 +20,6 @@ "cashaddr_prefix": null, "slip44": 1, "segwit": true, - "decred": false, "fork_id": null, "force_bip143": false, diff --git a/common/defs/bitcoin/bitcoin_regtest.png b/common/defs/bitcoin/bitcoin_regtest.png new file mode 100644 index 0000000000000000000000000000000000000000..7a2399f616e263d0fa30dc16cb6ca417f985f334 GIT binary patch literal 3650 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 URUUkeNdN!<07*qoM6N<$g3)mkAOHXW literal 0 HcmV?d00001 From e7592a4c04c59cbadb32037c87b74350d08b27e5 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Thu, 18 Apr 2019 00:26:04 +0200 Subject: [PATCH 5/6] nix: consolidate various shell.nix files into one --- common/shell.nix | 9 --------- core/shell.nix | 9 --------- crypto/shell.nix | 6 ------ python/shell.nix | 9 --------- shell.nix | 39 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 39 insertions(+), 33 deletions(-) delete mode 100644 common/shell.nix delete mode 100644 core/shell.nix delete mode 100644 crypto/shell.nix delete mode 100644 python/shell.nix create mode 100644 shell.nix diff --git a/common/shell.nix b/common/shell.nix deleted file mode 100644 index dd573f1f6..000000000 --- a/common/shell.nix +++ /dev/null @@ -1,9 +0,0 @@ -with import {}; - -let - myPython = python3.withPackages(p: [p.click p.graphviz p.trezor p.ed25519 p.pillow]) ; -in - stdenv.mkDerivation { - name = "trezor-common-dev"; - buildInputs = [ myPython python2Packages.demjson graphviz protobuf ]; - } diff --git a/core/shell.nix b/core/shell.nix deleted file mode 100644 index 1588cc3ca..000000000 --- a/core/shell.nix +++ /dev/null @@ -1,9 +0,0 @@ -with import {}; - -let - myPython = python3.withPackages(ps: [ps.trezor ps.pytest ps.flake8 ps.isort ps.black ps.Mako ps.munch ps.Pyro4 ps.pillow]); -in - stdenv.mkDerivation { - name = "trezor-core-dev"; - buildInputs = [ myPython protobuf scons gnumake gcc gcc-arm-embedded pkgconfig SDL2 SDL2_image autoflake clang-tools ]; - } diff --git a/crypto/shell.nix b/crypto/shell.nix deleted file mode 100644 index d4493bbb5..000000000 --- a/crypto/shell.nix +++ /dev/null @@ -1,6 +0,0 @@ -with import {}; - -stdenv.mkDerivation { - name = "trezor-crypto-dev"; - buildInputs = [ gnumake gcc pkgconfig openssl check valgrind clang-tools ]; -} diff --git a/python/shell.nix b/python/shell.nix deleted file mode 100644 index ed43d61b4..000000000 --- a/python/shell.nix +++ /dev/null @@ -1,9 +0,0 @@ -with import {}; - -let - myPython = python3.withPackages(p: [p.pytest p.black p.isort p.flake8 p.requests p.mnemonic p.construct p.pyblake2 p.mock p.ecdsa p.click p.libusb1 p.protobuf p.typing-extensions]); -in - stdenv.mkDerivation { - name = "python-trezor-dev"; - buildInputs = [ myPython autoflake protobuf ]; - } diff --git a/shell.nix b/shell.nix new file mode 100644 index 000000000..00d9ae5ba --- /dev/null +++ b/shell.nix @@ -0,0 +1,39 @@ +with import {}; + +let + MyPython = python3.withPackages(ps: [ + ps.Mako + ps.Pyro4 + ps.black + ps.ed25519 + ps.flake8 + ps.graphviz + ps.isort + ps.mock + ps.munch + ps.pillow + ps.pytest + ps.trezor + ]); +in + stdenv.mkDerivation { + name = "trezor-firmware-dev"; + buildInputs = [ + MyPython + SDL2 + SDL2_image + autoflake + check + clang-tools + gcc + gcc-arm-embedded + gnumake + graphviz + openssl + pkgconfig + protobuf + python2Packages.demjson + scons + valgrind + ]; + } From ec38a8ce3f679928fdc9245b1263ee3e8b7e65ba Mon Sep 17 00:00:00 2001 From: Tomas Susanka Date: Thu, 18 Apr 2019 12:49:01 +0200 Subject: [PATCH 6/6] core: update Pipfile.lock --- core/Pipfile.lock | 461 ++++++++++++++++++++++++---------------------- 1 file changed, 237 insertions(+), 224 deletions(-) diff --git a/core/Pipfile.lock b/core/Pipfile.lock index 53cc0187c..529769e90 100644 --- a/core/Pipfile.lock +++ b/core/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "92a59e9b2a0437b85d174047b6bd3f3c02a97c85bc58526d7e3a3eb173b79d06" + "sha256": "f038c016ebf0f0551ad1a2d066dd5861661925767b56bcf3c82b6764156b3b60" }, "pipfile-spec": 6, "requires": {}, @@ -28,6 +28,13 @@ ], "version": "==1.4.3" }, + "arrow": { + "hashes": [ + "sha256:3397e5448952e18e1295bf047014659effa5ae8da6a5371d37ff0ddc46fa6872", + "sha256:6f54d9f016c0b7811fac9fb8c2c7fa7421d80c54dbdd75ffb12913c55db60b8a" + ], + "version": "==0.13.1" + }, "asn1crypto": { "hashes": [ "sha256:2f1adbb7546ed199e3c90ef23ec95c5cf3585bac7d11fb7eb562a3fe89c64e87", @@ -37,25 +44,25 @@ }, "atomicwrites": { "hashes": [ - "sha256:0312ad34fcad8fac3704d441f7b317e50af620823353ec657a53e981f92920c0", - "sha256:ec9ae8adaae229e4f8446952d204a3e4b5fdd2d099f9be3aaf556120135fb3ee" + "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4", + "sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6" ], - "version": "==1.2.1" + "version": "==1.3.0" }, "attrs": { "hashes": [ - "sha256:10cbf6e27dbce8c30807caf056c8eb50917e0eaafe86347671b57254006c3e69", - "sha256:ca4be454458f9dec299268d472aaa5a11f67a4ff70093396e1ceae9c76cf4bbb" + "sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79", + "sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399" ], - "version": "==18.2.0" + "version": "==19.1.0" }, "black": { "hashes": [ - "sha256:817243426042db1d36617910df579a54f1afd659adb96fc5032fcf4b36209739", - "sha256:e030a9a28f542debc08acceb273f228ac422798e5215ba2a791a6ddeaaca22a5" + "sha256:09a9dcb7c46ed496a9850b76e4e825d6049ecd38b611f1224857a79bd985a8cf", + "sha256:68950ffd4d9169716bcb8719a56c07a2f4485354fec061cdd5910aa07369731c" ], "index": "pypi", - "version": "==18.9b0" + "version": "==19.3b0" }, "braceexpand": { "hashes": [ @@ -65,47 +72,43 @@ }, "certifi": { "hashes": [ - "sha256:47f9c83ef4c0c621eaef743f133f09fa8a74a9b75f037e8624f83bd1b6626cb7", - "sha256:993f830721089fef441cdfeb4b2c8c9df86f0c63239f06bd025a76a7daddb033" + "sha256:59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5", + "sha256:b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae" ], - "version": "==2018.11.29" + "version": "==2019.3.9" }, "cffi": { "hashes": [ - "sha256:151b7eefd035c56b2b2e1eb9963c90c6302dc15fbd8c1c0a83a163ff2c7d7743", - "sha256:1553d1e99f035ace1c0544050622b7bc963374a00c467edafac50ad7bd276aef", - "sha256:1b0493c091a1898f1136e3f4f991a784437fac3673780ff9de3bcf46c80b6b50", - "sha256:2ba8a45822b7aee805ab49abfe7eec16b90587f7f26df20c71dd89e45a97076f", - "sha256:3bb6bd7266598f318063e584378b8e27c67de998a43362e8fce664c54ee52d30", - "sha256:3c85641778460581c42924384f5e68076d724ceac0f267d66c757f7535069c93", - "sha256:3eb6434197633b7748cea30bf0ba9f66727cdce45117a712b29a443943733257", - "sha256:495c5c2d43bf6cebe0178eb3e88f9c4aa48d8934aa6e3cddb865c058da76756b", - "sha256:4c91af6e967c2015729d3e69c2e51d92f9898c330d6a851bf8f121236f3defd3", - "sha256:57b2533356cb2d8fac1555815929f7f5f14d68ac77b085d2326b571310f34f6e", - "sha256:770f3782b31f50b68627e22f91cb182c48c47c02eb405fd689472aa7b7aa16dc", - "sha256:79f9b6f7c46ae1f8ded75f68cf8ad50e5729ed4d590c74840471fc2823457d04", - "sha256:7a33145e04d44ce95bcd71e522b478d282ad0eafaf34fe1ec5bbd73e662f22b6", - "sha256:857959354ae3a6fa3da6651b966d13b0a8bed6bbc87a0de7b38a549db1d2a359", - "sha256:87f37fe5130574ff76c17cab61e7d2538a16f843bb7bca8ebbc4b12de3078596", - "sha256:95d5251e4b5ca00061f9d9f3d6fe537247e145a8524ae9fd30a2f8fbce993b5b", - "sha256:9d1d3e63a4afdc29bd76ce6aa9d58c771cd1599fbba8cf5057e7860b203710dd", - "sha256:a36c5c154f9d42ec176e6e620cb0dd275744aa1d804786a71ac37dc3661a5e95", - "sha256:a6a5cb8809091ec9ac03edde9304b3ad82ad4466333432b16d78ef40e0cce0d5", - "sha256:ae5e35a2c189d397b91034642cb0eab0e346f776ec2eb44a49a459e6615d6e2e", - "sha256:b0f7d4a3df8f06cf49f9f121bead236e328074de6449866515cea4907bbc63d6", - "sha256:b75110fb114fa366b29a027d0c9be3709579602ae111ff61674d28c93606acca", - "sha256:ba5e697569f84b13640c9e193170e89c13c6244c24400fc57e88724ef610cd31", - "sha256:be2a9b390f77fd7676d80bc3cdc4f8edb940d8c198ed2d8c0be1319018c778e1", - "sha256:ca1bd81f40adc59011f58159e4aa6445fc585a32bb8ac9badf7a2c1aa23822f2", - "sha256:d5d8555d9bfc3f02385c1c37e9f998e2011f0db4f90e250e5bc0c0a85a813085", - "sha256:e55e22ac0a30023426564b1059b035973ec82186ddddbac867078435801c7801", - "sha256:e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4", - "sha256:ecbb7b01409e9b782df5ded849c178a0aa7c906cf8c5a67368047daab282b184", - "sha256:ed01918d545a38998bfa5902c7c00e0fee90e957ce036a4000a88e3fe2264917", - "sha256:edabd457cd23a02965166026fd9bfd196f4324fe6032e866d0f3bd0301cd486f", - "sha256:fdf1c1dc5bafc32bc5d08b054f94d659422b05aba244d6be4ddc1c72d9aa70fb" - ], - "version": "==1.11.5" + "sha256:00b97afa72c233495560a0793cdc86c2571721b4271c0667addc83c417f3d90f", + "sha256:0ba1b0c90f2124459f6966a10c03794082a2f3985cd699d7d63c4a8dae113e11", + "sha256:0bffb69da295a4fc3349f2ec7cbe16b8ba057b0a593a92cbe8396e535244ee9d", + "sha256:21469a2b1082088d11ccd79dd84157ba42d940064abbfa59cf5f024c19cf4891", + "sha256:2e4812f7fa984bf1ab253a40f1f4391b604f7fc424a3e21f7de542a7f8f7aedf", + "sha256:2eac2cdd07b9049dd4e68449b90d3ef1adc7c759463af5beb53a84f1db62e36c", + "sha256:2f9089979d7456c74d21303c7851f158833d48fb265876923edcb2d0194104ed", + "sha256:3dd13feff00bddb0bd2d650cdb7338f815c1789a91a6f68fdc00e5c5ed40329b", + "sha256:4065c32b52f4b142f417af6f33a5024edc1336aa845b9d5a8d86071f6fcaac5a", + "sha256:51a4ba1256e9003a3acf508e3b4f4661bebd015b8180cc31849da222426ef585", + "sha256:59888faac06403767c0cf8cfb3f4a777b2939b1fbd9f729299b5384f097f05ea", + "sha256:59c87886640574d8b14910840327f5cd15954e26ed0bbd4e7cef95fa5aef218f", + "sha256:610fc7d6db6c56a244c2701575f6851461753c60f73f2de89c79bbf1cc807f33", + "sha256:70aeadeecb281ea901bf4230c6222af0248c41044d6f57401a614ea59d96d145", + "sha256:71e1296d5e66c59cd2c0f2d72dc476d42afe02aeddc833d8e05630a0551dad7a", + "sha256:8fc7a49b440ea752cfdf1d51a586fd08d395ff7a5d555dc69e84b1939f7ddee3", + "sha256:9b5c2afd2d6e3771d516045a6cfa11a8da9a60e3d128746a7fe9ab36dfe7221f", + "sha256:9c759051ebcb244d9d55ee791259ddd158188d15adee3c152502d3b69005e6bd", + "sha256:b4d1011fec5ec12aa7cc10c05a2f2f12dfa0adfe958e56ae38dc140614035804", + "sha256:b4f1d6332339ecc61275bebd1f7b674098a66fea11a00c84d1c58851e618dc0d", + "sha256:c030cda3dc8e62b814831faa4eb93dd9a46498af8cd1d5c178c2de856972fd92", + "sha256:c2e1f2012e56d61390c0e668c20c4fb0ae667c44d6f6a2eeea5d7148dcd3df9f", + "sha256:c37c77d6562074452120fc6c02ad86ec928f5710fbc435a181d69334b4de1d84", + "sha256:c8149780c60f8fd02752d0429246088c6c04e234b895c4a42e1ea9b4de8d27fb", + "sha256:cbeeef1dc3c4299bd746b774f019de9e4672f7cc666c777cd5b409f0b746dac7", + "sha256:e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7", + "sha256:e21162bf941b85c0cda08224dade5def9360f53b09f9f259adb85fc7dd0e7b35", + "sha256:fb6934ef4744becbda3143d30c6604718871495a5e36c408431bf33d9c146889" + ], + "version": "==1.12.2" }, "chacha20poly1305": { "hashes": [ @@ -137,27 +140,27 @@ }, "cryptography": { "hashes": [ - "sha256:05a6052c6a9f17ff78ba78f8e6eb1d777d25db3b763343a1ae89a7a8670386dd", - "sha256:0eb83a24c650a36f68e31a6d0a70f7ad9c358fa2506dc7b683398b92e354a038", - "sha256:0ff4a3d6ea86aa0c9e06e92a9f986de7ee8231f36c4da1b31c61a7e692ef3378", - "sha256:1699f3e916981df32afdd014fb3164db28cdb61c757029f502cb0a8c29b2fdb3", - "sha256:1b1f136d74f411f587b07c076149c4436a169dc19532e587460d9ced24adcc13", - "sha256:21e63dd20f5e5455e8b34179ac43d95b3fb1ffa54d071fd2ed5d67da82cfe6dc", - "sha256:2454ada8209bbde97065453a6ca488884bbb263e623d35ba183821317a58b46f", - "sha256:3cdc5f7ca057b2214ce4569e01b0f368b3de9d8ee01887557755ccd1c15d9427", - "sha256:418e7a5ec02a7056d3a4f0c0e7ea81df374205f25f4720bb0e84189aa5fd2515", - "sha256:471a097076a7c4ab85561d7fa9a1239bd2ae1f9fd0047520f13d8b340bf3210b", - "sha256:5ecaf9e7db3ca582c6de6229525d35db8a4e59dc3e8a40a331674ed90e658cbf", - "sha256:63b064a074f8dc61be81449796e2c3f4e308b6eba04a241a5c9f2d05e882c681", - "sha256:6afe324dfe6074822ccd56d80420df750e19ac30a4e56c925746c735cf22ae8b", - "sha256:70596e90398574b77929cd87e1ac6e43edd0e29ba01e1365fed9c26bde295aa5", - "sha256:70c2b04e905d3f72e2ba12c58a590817128dfca08949173faa19a42c824efa0b", - "sha256:8908f1db90be48b060888e9c96a0dee9d842765ce9594ff6a23da61086116bb6", - "sha256:af12dfc9874ac27ebe57fc28c8df0e8afa11f2a1025566476b0d50cdb8884f70", - "sha256:b4fc04326b2d259ddd59ed8ea20405d2e695486ab4c5e1e49b025c484845206e", - "sha256:da5b5dda4aa0d5e2b758cc8dfc67f8d4212e88ea9caad5f61ba132f948bab859" - ], - "version": "==2.4.2" + "sha256:066f815f1fe46020877c5983a7e747ae140f517f1b09030ec098503575265ce1", + "sha256:210210d9df0afba9e000636e97810117dc55b7157c903a55716bb73e3ae07705", + "sha256:26c821cbeb683facb966045e2064303029d572a87ee69ca5a1bf54bf55f93ca6", + "sha256:2afb83308dc5c5255149ff7d3fb9964f7c9ee3d59b603ec18ccf5b0a8852e2b1", + "sha256:2db34e5c45988f36f7a08a7ab2b69638994a8923853dec2d4af121f689c66dc8", + "sha256:409c4653e0f719fa78febcb71ac417076ae5e20160aec7270c91d009837b9151", + "sha256:45a4f4cf4f4e6a55c8128f8b76b4c057027b27d4c67e3fe157fa02f27e37830d", + "sha256:48eab46ef38faf1031e58dfcc9c3e71756a1108f4c9c966150b605d4a1a7f659", + "sha256:6b9e0ae298ab20d371fc26e2129fd683cfc0cfde4d157c6341722de645146537", + "sha256:6c4778afe50f413707f604828c1ad1ff81fadf6c110cb669579dea7e2e98a75e", + "sha256:8c33fb99025d353c9520141f8bc989c2134a1f76bac6369cea060812f5b5c2bb", + "sha256:9873a1760a274b620a135054b756f9f218fa61ca030e42df31b409f0fb738b6c", + "sha256:9b069768c627f3f5623b1cbd3248c5e7e92aec62f4c98827059eed7053138cc9", + "sha256:9e4ce27a507e4886efbd3c32d120db5089b906979a4debf1d5939ec01b9dd6c5", + "sha256:acb424eaca214cb08735f1a744eceb97d014de6530c1ea23beb86d9c6f13c2ad", + "sha256:c8181c7d77388fe26ab8418bb088b1a1ef5fde058c6926790c8a0a3d94075a4a", + "sha256:d4afbb0840f489b60f5a580a41a1b9c3622e08ecb5eec8614d4fb4cd914c4460", + "sha256:d9ed28030797c00f4bc43c86bf819266c76a5ea61d006cd4078a93ebf7da6bfd", + "sha256:e603aa7bb52e4e8ed4119a58a03b60323918467ef209e6ff9db3ac382e5cf2c6" + ], + "version": "==2.6.1" }, "ctypeslib2": { "hashes": [ @@ -168,10 +171,10 @@ }, "ecdsa": { "hashes": [ - "sha256:40d002cf360d0e035cf2cb985e1308d41aaa087cbfc135b2dc2d844296ea546c", - "sha256:64cf1ee26d1cde3c73c6d7d107f835fed7c6a2904aef9eac223d57ad800c43fa" + "sha256:20c17e527e75acad8f402290e158a6ac178b91b881f941fc6ea305bfdfb9657c", + "sha256:5c034ffa23413ac923541ceb3ac14ec15a0d2530690413bff58c12b80e56d884" ], - "version": "==0.13" + "version": "==0.13.2" }, "ed25519": { "hashes": [ @@ -180,11 +183,12 @@ "index": "pypi", "version": "==1.4" }, - "extended-pathlib": { + "entrypoints": { "hashes": [ - "sha256:c718cacfc7c02c6530936603dcf7496b9a5c0349b4410d0c7d1ab12dd4587e22" + "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19", + "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451" ], - "version": "==0.4.0" + "version": "==0.3" }, "filelock": { "hashes": [ @@ -195,11 +199,11 @@ }, "flake8": { "hashes": [ - "sha256:6a35f5b8761f45c5513e3405f110a86bea57982c3b75b766ce7b65217abe1670", - "sha256:c01f8a3963b3571a8e6bd7a4063359aff90749e160778e03817cd9b71c9e07d2" + "sha256:859996073f341f2670741b51ec1e67a01da142831aa1fdc6242dbf88dffbe661", + "sha256:a796a115208f5c03b18f332f7c11729812c8c3ded6c46319c59b53efd3819da8" ], "index": "pypi", - "version": "==3.6.0" + "version": "==3.7.7" }, "idna": { "hashes": [ @@ -208,14 +212,19 @@ ], "version": "==2.8" }, + "inform": { + "hashes": [ + "sha256:15814162c32cb245395234767dc6996e13f32623dbaffd94c22af2eab57644b3" + ], + "version": "==1.15.0" + }, "isort": { "hashes": [ - "sha256:1153601da39a25b14ddc54955dbbacbb6b2d19135386699e2ad58517953b34af", - "sha256:b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8", - "sha256:ec9ef8f4a9bc6f71eec99e1806bfa2de401650d996c59330782b89a5555c1497" + "sha256:01cb7e1ca5e6c5b3f235f0385057f70558b70d2f00320208825fa62887292f43", + "sha256:268067462aed7eb2a1e237fcb287852f22077de3fb07964e87e00f829eea2d1a" ], "index": "pypi", - "version": "==4.3.4" + "version": "==4.3.17" }, "libusb1": { "hashes": [ @@ -225,43 +234,43 @@ }, "mako": { "hashes": [ - "sha256:4e02fde57bd4abb5ec400181e4c314f56ac3e49ba4fb8b0d50bba18cb27d25ae" + "sha256:0728c404877cd4ca72c409c0ea372dc5f3b53fa1ad2bb434e1d216c0444ff1fd" ], "index": "pypi", - "version": "==1.0.7" + "version": "==1.0.9" }, "markupsafe": { "hashes": [ - "sha256:048ef924c1623740e70204aa7143ec592504045ae4429b59c30054cb31e3c432", - "sha256:130f844e7f5bdd8e9f3f42e7102ef1d49b2e6fdf0d7526df3f87281a532d8c8b", - "sha256:19f637c2ac5ae9da8bfd98cef74d64b7e1bb8a63038a3505cd182c3fac5eb4d9", - "sha256:1b8a7a87ad1b92bd887568ce54b23565f3fd7018c4180136e1cf412b405a47af", - "sha256:1c25694ca680b6919de53a4bb3bdd0602beafc63ff001fea2f2fc16ec3a11834", - "sha256:1f19ef5d3908110e1e891deefb5586aae1b49a7440db952454b4e281b41620cd", - "sha256:1fa6058938190ebe8290e5cae6c351e14e7bb44505c4a7624555ce57fbbeba0d", - "sha256:31cbb1359e8c25f9f48e156e59e2eaad51cd5242c05ed18a8de6dbe85184e4b7", - "sha256:3e835d8841ae7863f64e40e19477f7eb398674da6a47f09871673742531e6f4b", - "sha256:4e97332c9ce444b0c2c38dd22ddc61c743eb208d916e4265a2a3b575bdccb1d3", - "sha256:525396ee324ee2da82919f2ee9c9e73b012f23e7640131dd1b53a90206a0f09c", - "sha256:52b07fbc32032c21ad4ab060fec137b76eb804c4b9a1c7c7dc562549306afad2", - "sha256:52ccb45e77a1085ec5461cde794e1aa037df79f473cbc69b974e73940655c8d7", - "sha256:5c3fbebd7de20ce93103cb3183b47671f2885307df4a17a0ad56a1dd51273d36", - "sha256:5e5851969aea17660e55f6a3be00037a25b96a9b44d2083651812c99d53b14d1", - "sha256:5edfa27b2d3eefa2210fb2f5d539fbed81722b49f083b2c6566455eb7422fd7e", - "sha256:7d263e5770efddf465a9e31b78362d84d015cc894ca2c131901a4445eaa61ee1", - "sha256:83381342bfc22b3c8c06f2dd93a505413888694302de25add756254beee8449c", - "sha256:857eebb2c1dc60e4219ec8e98dfa19553dae33608237e107db9c6078b1167856", - "sha256:98e439297f78fca3a6169fd330fbe88d78b3bb72f967ad9961bcac0d7fdd1550", - "sha256:bf54103892a83c64db58125b3f2a43df6d2cb2d28889f14c78519394feb41492", - "sha256:d9ac82be533394d341b41d78aca7ed0e0f4ba5a2231602e2f05aa87f25c51672", - "sha256:e982fe07ede9fada6ff6705af70514a52beb1b2c3d25d4e873e82114cf3c5401", - "sha256:edce2ea7f3dfc981c4ddc97add8a61381d9642dc3273737e756517cc03e84dd6", - "sha256:efdc45ef1afc238db84cb4963aa689c0408912a0239b0721cb172b4016eb31d6", - "sha256:f137c02498f8b935892d5c0172560d7ab54bc45039de8805075e19079c639a9c", - "sha256:f82e347a72f955b7017a39708a3667f106e6ad4d10b25f237396a7115d8ed5fd", - "sha256:fb7c206e01ad85ce57feeaaa0bf784b97fa3cad0d4a5737bc5295785f5c613a1" - ], - "version": "==1.1.0" + "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", + "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", + "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", + "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", + "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", + "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", + "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", + "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", + "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", + "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", + "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", + "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", + "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", + "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", + "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" + ], + "version": "==1.1.1" }, "mccabe": { "hashes": [ @@ -290,25 +299,25 @@ "tcry" ], "hashes": [ - "sha256:0e8ac7a9ff9512b9781deacf6a5ae8c53f49d0b8e43684278e4e57f328493ebb", - "sha256:e6e99d44a2d76cdc1addb9421d5039546d4ea0002691ca5186124aa4561f82f5" + "sha256:40f86d11d6b1ea1b8fda26c65026be1673d097976ed13925605dd5b3c4a0fad1", + "sha256:b0223230752dbe7e8a9ce3f000bc47eb04990a564feac0679bd2bfdb4cb4c7d0" ], "index": "pypi", - "version": "==2.0.1" + "version": "==2.0.3" }, "monero-serialize": { "hashes": [ - "sha256:0bf42972a2b13b47c2b2bd42352006caf14117387c1fab09ab2ac0817c0dede5" + "sha256:4e6e8d0d7e626b142071b336dc0bd10a6b2bcbcb7e30417bd9ad265d14d23e51" ], - "version": "==3.0.0" + "version": "==3.0.1" }, "more-itertools": { "hashes": [ - "sha256:38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4", - "sha256:c0a5785b1109a6bd7fac76d6837fd1feca158e54e521ccd2ae8bfe393cc9d4fc", - "sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9" + "sha256:2112d2ca570bb7c3e53ea1a35cd5df42bb0fd10c45f0fb97178679c3c03d64c7", + "sha256:c3e4748ba1aad8dba30a4886b0b1a2004f9a863837b8654e7059eebf727afa5a" ], - "version": "==5.0.0" + "markers": "python_version > '2.7'", + "version": "==7.0.0" }, "munch": { "hashes": [ @@ -339,10 +348,10 @@ }, "pbr": { "hashes": [ - "sha256:f59d71442f9ece3dffc17bc36575768e1ee9967756e6b6535f0ee1f0054c3d68", - "sha256:f6d5b23f226a2ba58e14e49aa3b1bfaf814d0199144b95d78458212444de1387" + "sha256:8257baf496c8522437e8a6cfe0f15e00aedc6c0e0e7c9d55eeeeab31e0853843", + "sha256:8c361cc353d988e4f5b998555c88098b9d5964c2e11acf7b0d21925a66bb5824" ], - "version": "==5.1.1" + "version": "==5.1.3" }, "pep8": { "hashes": [ @@ -353,46 +362,42 @@ }, "pillow": { "hashes": [ - "sha256:0cd42fe2d99ec6ce23aaf00947a7b7956ad2ed4b1695fd37545c3b8eae06d95a", - "sha256:137bed8972089d65da63fb79b4949b0f2b99e9a58f1b494e82be43ba8b0f4226", - "sha256:14eb2b2e4f2a14f5c89fd0edf55c5af0bf1a40fdf3838d81867f26f131cd557d", - "sha256:1fc43ce8c4fa3754222cd6831d599ad17ca2fc9868d2fb52f4e5362dfbfaf379", - "sha256:26dfeee23a86dad6277a63d18f61f53b957cb2cd3506dbbd74b88ba2fa65b3b1", - "sha256:2e0e582942e025cc58f669499a8e0bffde5bcc8d42b65729f294c1dac54e4672", - "sha256:3bb8dd3ce101dd8b0b37eaae924a5bb93abb6ffdd034bf68a066a808e11768ab", - "sha256:3f07da3874f0b085421f1d4f979785131aa9d497501d8610d82f7378b33858f8", - "sha256:429b2b5ae5f57f8fd9ec2e012c1e7b342ff10f1a8977dc291976b9a3b4c096e1", - "sha256:4a000fdd89d77b6b675de27e1ab91c6fba517c08f19ee83e6716b78930634e04", - "sha256:4ccbe7cce6156391a3ecf447c79a7d4a1a0ecd3de79bdec9ca5e4f7242a306d1", - "sha256:4d08034196db41acb7392e4fccfc0448e7a87192c41d3011ad4093eac2c31ffd", - "sha256:6b202b1cb524bc76ed52a7eb0314f4b0a0497c7cceb9a93539b5a25800e1f2b6", - "sha256:8563b56fa7c34f1606848c2143ea67d27cf225b9726a1b041c3d27cf85e46edc", - "sha256:86d7421e8803d7bae2e594765c378a867b629d46b32fbfe5ed9fd95b30989feb", - "sha256:8d4bddedcb4ab99131d9705a75720efc48b3d006122dae1a4cc329496ac47c9a", - "sha256:a4929c6de9590635c34533609402c9da12b22bfc2feb8c0c4f38c39bab48a9ad", - "sha256:b0736e21798448cee3e663c0df7a6dfa83d805b3f3a45e67f7457a2f019e5fca", - "sha256:b669acba91d47395de84c9ca52a7ad393b487e5ae2e20b9b2790b22a57d479fa", - "sha256:bba993443921f2d077195b425a3283357f52b07807d53704610c1249d20b183a", - "sha256:bdf706a93d00547c9443b2654ae424fd54d5dece4bc4333e7035740aeb7a7cea", - "sha256:c5aa93e55175b9cde95279ccd03c93d218976b376480222d37be41d2c9c54510", - "sha256:cc11fd997d8ad71bb0412e983b711e49639c2ddba9b9dce04d4bdab575fe5f84", - "sha256:d584f1c33995c3dc16a35e30ef43e0881fa0d085f0fef29cebf154ffb5643363", - "sha256:d88f54bdefb7ddccb68efdd710d689aa6a09b875cc3e44b7e81ef54e0751e3a7", - "sha256:de0d323072be72fa4d74f4e013cd594e3f8ee03b2e0eac5876a3249fa076ef7b", - "sha256:f139c963c6679d236b2c45369524338eabd36a853fe23abd39ba246ab0a75aec", - "sha256:f41c0bf667c4c1c30b873eaa8d6bb894f6d721b3e38e9c993bddd1263c02fb1f", - "sha256:fbd0ea468b4ec04270533bf5206f1cd57746fcf226520bb133318fa276de2644", - "sha256:fe2d2850521c467c915ff0a6e27dc64c3c04c2f66612e0072672bd1bd4854b61" + "sha256:15c056bfa284c30a7f265a41ac4cbbc93bdbfc0dfe0613b9cb8a8581b51a9e55", + "sha256:1a4e06ba4f74494ea0c58c24de2bb752818e9d504474ec95b0aa94f6b0a7e479", + "sha256:1c3c707c76be43c9e99cb7e3d5f1bee1c8e5be8b8a2a5eeee665efbf8ddde91a", + "sha256:1fd0b290203e3b0882d9605d807b03c0f47e3440f97824586c173eca0aadd99d", + "sha256:24114e4a6e1870c5a24b1da8f60d0ba77a0b4027907860188ea82bd3508c80eb", + "sha256:258d886a49b6b058cd7abb0ab4b2b85ce78669a857398e83e8b8e28b317b5abb", + "sha256:33c79b6dd6bc7f65079ab9ca5bebffb5f5d1141c689c9c6a7855776d1b09b7e8", + "sha256:367385fc797b2c31564c427430c7a8630db1a00bd040555dfc1d5c52e39fcd72", + "sha256:3c1884ff078fb8bf5f63d7d86921838b82ed4a7d0c027add773c2f38b3168754", + "sha256:44e5240e8f4f8861d748f2a58b3f04daadab5e22bfec896bf5434745f788f33f", + "sha256:46aa988e15f3ea72dddd81afe3839437b755fffddb5e173886f11460be909dce", + "sha256:74d90d499c9c736d52dd6d9b7221af5665b9c04f1767e35f5dd8694324bd4601", + "sha256:809c0a2ce9032cbcd7b5313f71af4bdc5c8c771cb86eb7559afd954cab82ebb5", + "sha256:85d1ef2cdafd5507c4221d201aaf62fc9276f8b0f71bd3933363e62a33abc734", + "sha256:8c3889c7681af77ecfa4431cd42a2885d093ecb811e81fbe5e203abc07e0995b", + "sha256:9218d81b9fca98d2c47d35d688a0cea0c42fd473159dfd5612dcb0483c63e40b", + "sha256:9aa4f3827992288edd37c9df345783a69ef58bd20cc02e64b36e44bcd157bbf1", + "sha256:9d80f44137a70b6f84c750d11019a3419f409c944526a95219bea0ac31f4dd91", + "sha256:b7ebd36128a2fe93991293f997e44be9286503c7530ace6a55b938b20be288d8", + "sha256:c4c78e2c71c257c136cdd43869fd3d5e34fc2162dc22e4a5406b0ebe86958239", + "sha256:c6a842537f887be1fe115d8abb5daa9bc8cc124e455ff995830cc785624a97af", + "sha256:cf0a2e040fdf5a6d95f4c286c6ef1df6b36c218b528c8a9158ec2452a804b9b8", + "sha256:cfd28aad6fc61f7a5d4ee556a997dc6e5555d9381d1390c00ecaf984d57e4232", + "sha256:dca5660e25932771460d4688ccbb515677caaf8595f3f3240ec16c117deff89a", + "sha256:de7aedc85918c2f887886442e50f52c1b93545606317956d65f342bd81cb4fc3", + "sha256:e6c0bbf8e277b74196e3140c35f9a1ae3eafd818f7f2d3a15819c49135d6c062" ], "index": "pypi", - "version": "==5.4.0" + "version": "==6.0.0" }, "pluggy": { "hashes": [ - "sha256:447ba94990e8014ee25ec853339faf7b0fc8050cdc3289d4d71f7f410fb90095", - "sha256:bde19360a8ec4dfd8a20dcb811780a30998101f078fc7ded6162f0076f50508f" + "sha256:19ecf9ce9db2fce065a7a0586e07cfb4ac8614fe96edf628a264b1c70116cf8f", + "sha256:84d306a647cc805219916e62aab89caa97a33a1dd8c342e87a37f91073cd4746" ], - "version": "==0.8.0" + "version": "==0.9.0" }, "ply": { "hashes": [ @@ -416,16 +421,17 @@ }, "py": { "hashes": [ - "sha256:bf92637198836372b520efcba9e020c330123be8ce527e535d185ed4b6f45694", - "sha256:e76826342cefe3c3d5f7e8ee4316b80d1dd8a300781612ddbc765c17ba25a6c6" + "sha256:64f65755aee5b381cea27766a3a147c3f15b9b6b9ac88676de66ba2ae36793fa", + "sha256:dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53" ], - "version": "==1.7.0" + "version": "==1.8.0" }, "py-cryptonight": { "hashes": [ - "sha256:18ef26c56d7b677c527932af37a9bc98f39e4a56a87a003ef9a3a994d8bfe080" + "sha256:7dae42a96ad4d0e61ca67ca04f71d4faad62653df8d8dd58eb04c0bee335bfbe", + "sha256:a56dfb87dc937676ff0716a1a43d4fdd7dd6cbdbab6bb531ba82bec2ed0daa33" ], - "version": "==0.1.8" + "version": "==0.2.4" }, "py-trezor-crypto-ph4": { "hashes": [ @@ -433,7 +439,6 @@ "sha256:c523afd73949ac083bb7c5ef67416f0a971edc1921f4046a8cd40f87e43133ff" ], "index": "pypi", - "markers": "extra == 'tcry'", "version": "==0.1.1" }, "pyblake2": { @@ -452,10 +457,10 @@ }, "pycodestyle": { "hashes": [ - "sha256:cbc619d09254895b0d12c2c691e237b2e91e9b2ecf5e84c26b35400f93dcfb83", - "sha256:cbfca99bd594a10f674d0cd97a3d802a1fdef635d4361e1a2658de47ed261e3a" + "sha256:95a2219d12372f05704562a14ec30bc76b05a5b297b21a5dfe3f6fac3491ae56", + "sha256:e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c" ], - "version": "==2.4.0" + "version": "==2.5.0" }, "pycparser": { "hashes": [ @@ -465,49 +470,49 @@ }, "pycryptodome": { "hashes": [ - "sha256:08dcfd52a6784c9ca6b8d098301326ec86a33b94e44759dac031ba71407a1a2e", - "sha256:08de8132a11fe3df5a60ffc9292eabd713b77250650190bb5beeb01ef2593e51", - "sha256:148349c2dfbe80c3dfe598c60147f7875ae9a1dc91beb79c15eade734262a1ab", - "sha256:185c091af54f90d038efc7eeca586161e603bdcbcbaaef2bc7454147f66669d2", - "sha256:1d0d94c09d032538a7b33eeb52eca21eb66db6f00689000066baf307cb7091c2", - "sha256:249d4301eb1e41dce29550a6c8693d4a7d23a06cb2d8afb51f1f42680dd00de1", - "sha256:2c7fe7b081f257d51138369ce3f8675cbae6d2b94f19b5abbf127b2b61db6b99", - "sha256:3210d8ee57f92055b7c6c393e8770b331dd125b371007dcbcddca5dfc7d8c8ce", - "sha256:331e93fdddf8e2779e85cc2e0cbb2bb173a9ebcfbd0eb77390f875e5db0f9940", - "sha256:3b295dc48de69a8055c73d5d49b1355c9479ffeeff72d0c746fb25e205189fe1", - "sha256:4617d3925bdd77e6930d2d3d343324062a3ebd87652808158f8d6f4be4e2161c", - "sha256:500d932db4c418932510237911fb36f85d2452bd444bd0bee96c4a05223a0c81", - "sha256:56857d04dadf51dfcc8223bea4127d739704c11a5aef365d373f8999a34d3c33", - "sha256:5d8d9dd7ba37bb84773160ebb65ad7794517723a4a549367227bb1325ebb8925", - "sha256:5e6ab7478243f56fb51a89b8946fbd6853e924cd2aba3c22513bc508d3807a27", - "sha256:6650d66a513736d61bca9ca2b1c09deb72bf2dcdf47151507ec0c05595a5b0aa", - "sha256:7a0ad14c046c7fe4f60d597f15fd58af41d25f143ff5c8742df3bd80b9008c7d", - "sha256:7c360b9f8b01e704ca70404001cf298505df9b2158a0c29021361ddf7f73117f", - "sha256:8365fbf5254f086e2ad9f589f026506b04e7cf7819a851c91a864bb2d7b35369", - "sha256:9048ef02431b19d823bd758dcd30bef6b29f0a92e49efc3dbec30c8b96e77570", - "sha256:a378c1aaddc8874a71205c4eee3aaddda99afbc62f213e065ac06df0686d42dc", - "sha256:bf60769ef3fd33023cb10ab277903f84f07819465f463cbdae66f732054f90dc", - "sha256:cbfa5f741ba3dc8e07d5beb7c8cacce629f47a15bb31d4625cec3b8b171c489d", - "sha256:de3e9bb4d356a8bc72f848b7691ec760c8abfbbf368fcd7642240c3e6126e740", - "sha256:e39b956d8dfa3377b8cafc90649fa715d5a17c12f7e7f117920664eddc410803", - "sha256:f0377ce5ce4df524394e0745c807932895bb8f25d791ab24b47687d2e049d691", - "sha256:f09ea14afb0b811cdfdaf2de01ad1a7f8c46faee81291d34044eff409b713cee", - "sha256:f5fc7e3b2d29552f0383063408ce2bd295e9d3c7ef13377599aa300a3d2baef7" - ], - "version": "==3.7.2" + "sha256:02838a7184803c05710ccb4f3c9129fe26b2634f04daf017a3490d8be5f55b62", + "sha256:04b710f55141c06388aa60d6d4a1d704b79f25b03fa9e61b0b1b9fcf0766e2ea", + "sha256:0c54852415567fc53b656b528612d3f8084c127086c38370a2985fbac4892298", + "sha256:0e59d4e06b0cdb57132387144051101eaa9bbde447b62db9660345d247212ff9", + "sha256:134479b4f4743402e7e8740f1bf3d779efd95b467c2535c600332b55d0b34686", + "sha256:1961a6cbd30926a812809efd0f17bd677f54857ac5fd0b0e2638ad4891407dd0", + "sha256:1e8f2d1b97578f0950a46128cca8b2dc44f224c4c08309a66ca53c4a33839fdd", + "sha256:213d360d5e145a2ff4d9d90afab9e2b2d99174114aa4b4c04888937730c7ef57", + "sha256:24dc9a6bc59d4e4fb182197327db1e92e15c598729889132195b420dbcc48468", + "sha256:3c24117d7fc65f5e299550abd7fa5c612813d0891b4db36d8b8cd02442674306", + "sha256:432b19da6106785825cbcaea50a8c3846ec9cd4678702f89e02985d27a73a314", + "sha256:5897e1e336c30274279f23a0f1ea81fdb43c51b514d6ac0f376ff835f420a33e", + "sha256:68ad0ce4a374577a26bb7f458575abe3c2a342818b5280de6e5738870b7761b3", + "sha256:68e50aa3230841dc296004e084ceb74225c92da951cff808122242af8a735501", + "sha256:74bd385d89aca3f8860d56caadead5dcb9e1abdf5774739c4aa9fe3cf56bb34f", + "sha256:783cffd29fb0dbf6498bd225c1b7194f8372258166c7585fb777075226b04b64", + "sha256:933750922193899d5601404c0d0637c4da12593ac2c54a16ba841b8afef44c9b", + "sha256:9871164f10b7bc87b88559b66e632528e766fcd0a84324a803860883b51f4c87", + "sha256:99a2f931e1bf87c95e465bc74ef0276ce735f1def575d52b67e117f712a63243", + "sha256:a53be389125c79728658bf42bf711a277c8ac1b3690d26303bb8b0a9217d8cb9", + "sha256:a68e85d19a870d8f54d7d78fbdefac640bb694aca216223b5987456cdf4d50ff", + "sha256:ae4070cfa271f78e9f74cde4f6b8c3869facfa4749b96e9bc7fbd1959d75f167", + "sha256:b3d3215c5a3392a6c1f537d38c13e014d93f9b33277048f06c7ede4c6926b8bd", + "sha256:df1d5540021b79230cfe8f80bb1f13ee1a626eab10161a26784b78c122c845db", + "sha256:dfdca3079aac696a25edb9a0b59595b9b776426f61587bf5a974596da217834e", + "sha256:e874188bb9c274de2dcc0995e885f15732fd0a43c7ef581eff54eef2b11d83c7", + "sha256:e9ff57287d899d2c4e17e523ac46d1e90902f3b36a81f0e6817238ff0219597f", + "sha256:ecb7718fc0087a67023fb4a78dd8ebb883d66c49f0465ad656b3213bb1841631" + ], + "version": "==3.8.1" }, "pyflakes": { "hashes": [ - "sha256:9a7662ec724d0120012f6e29d6248ae3727d821bba522a0e6b356eff19126a49", - "sha256:f661252913bc1dbe7fcfcbf0af0db3f42ab65aabd1a6ca68fe5d466bace94dae" + "sha256:17dbeb2e3f4d772725c777fabc446d5634d1038f234e77343108ce445ea69ce0", + "sha256:d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2" ], - "version": "==2.0.0" + "version": "==2.1.1" }, "pympler": { "hashes": [ - "sha256:c262ceca4dac67b8b523956833c52443420eabc3321a07185990b358b8ba13a7" + "sha256:7a11e739125a9ce8bf868ded67238a40e8a7bf979bc03005eb8126182e5e274e" ], - "version": "==0.6" + "version": "==0.7" }, "pypandoc": { "hashes": [ @@ -517,11 +522,18 @@ }, "pytest": { "hashes": [ - "sha256:f689bf2fc18c4585403348dd56f47d87780bf217c53ed9ae7a3e2d7faa45f8e9", - "sha256:f812ea39a0153566be53d88f8de94839db1e8a05352ed8a49525d7d7f37861e9" + "sha256:3773f4c235918987d51daf1db66d51c99fac654c81d6f2f709a046ab446d5e5d", + "sha256:b7802283b70ca24d7119b32915efa7c409982f59913c1a6c0640aacf118b95f5" ], "index": "pypi", - "version": "==4.0.2" + "version": "==4.4.1" + }, + "python-dateutil": { + "hashes": [ + "sha256:7e6584c74aeed623791615e26efd690f29817a27c73085b78e4bad02493df2fb", + "sha256:c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e" + ], + "version": "==2.8.0" }, "requests": { "hashes": [ @@ -533,9 +545,9 @@ }, "shlib": { "hashes": [ - "sha256:160c9925e298b62c895a4a1088b3528c514831fb645815116c1d57c2222a7a55" + "sha256:f9798b0a3e37407171f06efca7c213269f034eee2c94dd9933a819730a6d528b" ], - "version": "==0.8.0" + "version": "==1.1.0" }, "six": { "hashes": [ @@ -560,43 +572,44 @@ }, "tox": { "hashes": [ - "sha256:2a8d8a63660563e41e64e3b5b677e81ce1ffa5e2a93c2c565d3768c287445800", - "sha256:edfca7809925f49bdc110d0a2d9966bbf35a0c25637216d9586e7a5c5de17bfb" + "sha256:1b166b93d2ce66bb7b253ba944d2be89e0c9d432d49eeb9da2988b4902a4684e", + "sha256:665cbdd99f5c196dd80d1d8db8c8cf5d48b1ae1f778bccd1bdf14d5aaf4ca0fc" ], - "version": "==3.6.1" + "version": "==3.9.0" }, "trezor": { "editable": true, "git": "https://github.com/trezor/python-trezor", - "ref": "master" + "ref": "2813522b05cef4e0e545a101f8b3559a3183b45b" }, "typing-extensions": { "hashes": [ - "sha256:2a6c6e78e291a4b6cbd0bbfd30edc0baaa366de962129506ec8fe06bdec66457", - "sha256:51e7b7f3dcabf9ad22eed61490f3b8d23d9922af400fe6656cb08e66656b701f", - "sha256:55401f6ed58ade5638eb566615c150ba13624e2f0c1eedd080fc3c1b6cb76f1d" + "sha256:07b2c978670896022a43c4b915df8958bec4a6b84add7f2c87b2b728bda3ba64", + "sha256:f3f0e67e1d42de47b5c67c32c9b26641642e9170fe7e292991793705cd5fef7c", + "sha256:fb2cd053238d33a8ec939190f30cfd736c00653a85a2919415cecf7dc3d9da71" ], - "version": "==3.6.6" + "version": "==3.7.2" }, "urllib3": { "hashes": [ - "sha256:61bf29cada3fc2fbefad4fdf059ea4bd1b4a86d2b6d15e1c7c0b582b9752fe39", - "sha256:de9529817c93f27c8ccbfead6985011db27bd0ddfcdb2d86f3f663385c6a9c22" + "sha256:4c291ca23bbb55c76518905869ef34bdd5f0e46af7afe6861e8375643ffee1a0", + "sha256:9a247273df709c4fedb38c711e44292304f73f39ab01beda9f6b9fc375669ac3" ], - "version": "==1.24.1" + "version": "==1.24.2" }, "virtualenv": { "hashes": [ - "sha256:34b9ae3742abed2f95d3970acf4d80533261d6061b51160b197f84e5b4c98b4c" + "sha256:6aebaf4dd2568a0094225ebbca987859e369e3e5c22dc7d52e5406d504890417", + "sha256:984d7e607b0a5d1329425dd8845bd971b957424b5ba664729fab51ab8c11bc39" ], - "version": "==16.2.0" + "version": "==16.4.3" }, "wheel": { "hashes": [ - "sha256:029703bf514e16c8271c3821806a1c171220cc5bdd325cbf4e7da1e056a01db6", - "sha256:1e53cdb3f808d5ccd0df57f964263752aa74ea7359526d3da6c02114ec1e1d44" + "sha256:66a8fd76f28977bb664b098372daef2b27f60dc4d1688cfab7b37a09448f0e9d", + "sha256:8eb4a788b3aec8abf5ff68d4165441bc57420c9f64ca5f471f58c3969fe08668" ], - "version": "==0.32.3" + "version": "==0.33.1" } }, "develop": {