mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-22 07:28:10 +00:00
Merge remote-tracking branch 'origin/master' into andrewkozlik/slip0039
This commit is contained in:
commit
1ee831f50c
39
common/defs/bitcoin/bitcoin_regtest.json
Normal file
39
common/defs/bitcoin/bitcoin_regtest.json
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"coin_name": "Regtest",
|
||||||
|
"coin_shortcut": "REGTEST",
|
||||||
|
"coin_label": "Regtest",
|
||||||
|
"website": "https://bitcoin.org",
|
||||||
|
"github": "https://github.com/bitcoin/bitcoin",
|
||||||
|
"maintainer": "Thomas Kerin <me@thomaskerin.io>",
|
||||||
|
"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
|
||||||
|
}
|
BIN
common/defs/bitcoin/bitcoin_regtest.png
Normal file
BIN
common/defs/bitcoin/bitcoin_regtest.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.6 KiB |
@ -1,9 +0,0 @@
|
|||||||
with import <nixpkgs> {};
|
|
||||||
|
|
||||||
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 ];
|
|
||||||
}
|
|
453
core/Pipfile.lock
generated
453
core/Pipfile.lock
generated
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "92a59e9b2a0437b85d174047b6bd3f3c02a97c85bc58526d7e3a3eb173b79d06"
|
"sha256": "f038c016ebf0f0551ad1a2d066dd5861661925767b56bcf3c82b6764156b3b60"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {},
|
"requires": {},
|
||||||
@ -28,6 +28,13 @@
|
|||||||
],
|
],
|
||||||
"version": "==1.4.3"
|
"version": "==1.4.3"
|
||||||
},
|
},
|
||||||
|
"arrow": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:3397e5448952e18e1295bf047014659effa5ae8da6a5371d37ff0ddc46fa6872",
|
||||||
|
"sha256:6f54d9f016c0b7811fac9fb8c2c7fa7421d80c54dbdd75ffb12913c55db60b8a"
|
||||||
|
],
|
||||||
|
"version": "==0.13.1"
|
||||||
|
},
|
||||||
"asn1crypto": {
|
"asn1crypto": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:2f1adbb7546ed199e3c90ef23ec95c5cf3585bac7d11fb7eb562a3fe89c64e87",
|
"sha256:2f1adbb7546ed199e3c90ef23ec95c5cf3585bac7d11fb7eb562a3fe89c64e87",
|
||||||
@ -37,25 +44,25 @@
|
|||||||
},
|
},
|
||||||
"atomicwrites": {
|
"atomicwrites": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0312ad34fcad8fac3704d441f7b317e50af620823353ec657a53e981f92920c0",
|
"sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4",
|
||||||
"sha256:ec9ae8adaae229e4f8446952d204a3e4b5fdd2d099f9be3aaf556120135fb3ee"
|
"sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6"
|
||||||
],
|
],
|
||||||
"version": "==1.2.1"
|
"version": "==1.3.0"
|
||||||
},
|
},
|
||||||
"attrs": {
|
"attrs": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:10cbf6e27dbce8c30807caf056c8eb50917e0eaafe86347671b57254006c3e69",
|
"sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79",
|
||||||
"sha256:ca4be454458f9dec299268d472aaa5a11f67a4ff70093396e1ceae9c76cf4bbb"
|
"sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399"
|
||||||
],
|
],
|
||||||
"version": "==18.2.0"
|
"version": "==19.1.0"
|
||||||
},
|
},
|
||||||
"black": {
|
"black": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:817243426042db1d36617910df579a54f1afd659adb96fc5032fcf4b36209739",
|
"sha256:09a9dcb7c46ed496a9850b76e4e825d6049ecd38b611f1224857a79bd985a8cf",
|
||||||
"sha256:e030a9a28f542debc08acceb273f228ac422798e5215ba2a791a6ddeaaca22a5"
|
"sha256:68950ffd4d9169716bcb8719a56c07a2f4485354fec061cdd5910aa07369731c"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==18.9b0"
|
"version": "==19.3b0"
|
||||||
},
|
},
|
||||||
"braceexpand": {
|
"braceexpand": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -65,47 +72,43 @@
|
|||||||
},
|
},
|
||||||
"certifi": {
|
"certifi": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:47f9c83ef4c0c621eaef743f133f09fa8a74a9b75f037e8624f83bd1b6626cb7",
|
"sha256:59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5",
|
||||||
"sha256:993f830721089fef441cdfeb4b2c8c9df86f0c63239f06bd025a76a7daddb033"
|
"sha256:b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae"
|
||||||
],
|
],
|
||||||
"version": "==2018.11.29"
|
"version": "==2019.3.9"
|
||||||
},
|
},
|
||||||
"cffi": {
|
"cffi": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:151b7eefd035c56b2b2e1eb9963c90c6302dc15fbd8c1c0a83a163ff2c7d7743",
|
"sha256:00b97afa72c233495560a0793cdc86c2571721b4271c0667addc83c417f3d90f",
|
||||||
"sha256:1553d1e99f035ace1c0544050622b7bc963374a00c467edafac50ad7bd276aef",
|
"sha256:0ba1b0c90f2124459f6966a10c03794082a2f3985cd699d7d63c4a8dae113e11",
|
||||||
"sha256:1b0493c091a1898f1136e3f4f991a784437fac3673780ff9de3bcf46c80b6b50",
|
"sha256:0bffb69da295a4fc3349f2ec7cbe16b8ba057b0a593a92cbe8396e535244ee9d",
|
||||||
"sha256:2ba8a45822b7aee805ab49abfe7eec16b90587f7f26df20c71dd89e45a97076f",
|
"sha256:21469a2b1082088d11ccd79dd84157ba42d940064abbfa59cf5f024c19cf4891",
|
||||||
"sha256:3bb6bd7266598f318063e584378b8e27c67de998a43362e8fce664c54ee52d30",
|
"sha256:2e4812f7fa984bf1ab253a40f1f4391b604f7fc424a3e21f7de542a7f8f7aedf",
|
||||||
"sha256:3c85641778460581c42924384f5e68076d724ceac0f267d66c757f7535069c93",
|
"sha256:2eac2cdd07b9049dd4e68449b90d3ef1adc7c759463af5beb53a84f1db62e36c",
|
||||||
"sha256:3eb6434197633b7748cea30bf0ba9f66727cdce45117a712b29a443943733257",
|
"sha256:2f9089979d7456c74d21303c7851f158833d48fb265876923edcb2d0194104ed",
|
||||||
"sha256:495c5c2d43bf6cebe0178eb3e88f9c4aa48d8934aa6e3cddb865c058da76756b",
|
"sha256:3dd13feff00bddb0bd2d650cdb7338f815c1789a91a6f68fdc00e5c5ed40329b",
|
||||||
"sha256:4c91af6e967c2015729d3e69c2e51d92f9898c330d6a851bf8f121236f3defd3",
|
"sha256:4065c32b52f4b142f417af6f33a5024edc1336aa845b9d5a8d86071f6fcaac5a",
|
||||||
"sha256:57b2533356cb2d8fac1555815929f7f5f14d68ac77b085d2326b571310f34f6e",
|
"sha256:51a4ba1256e9003a3acf508e3b4f4661bebd015b8180cc31849da222426ef585",
|
||||||
"sha256:770f3782b31f50b68627e22f91cb182c48c47c02eb405fd689472aa7b7aa16dc",
|
"sha256:59888faac06403767c0cf8cfb3f4a777b2939b1fbd9f729299b5384f097f05ea",
|
||||||
"sha256:79f9b6f7c46ae1f8ded75f68cf8ad50e5729ed4d590c74840471fc2823457d04",
|
"sha256:59c87886640574d8b14910840327f5cd15954e26ed0bbd4e7cef95fa5aef218f",
|
||||||
"sha256:7a33145e04d44ce95bcd71e522b478d282ad0eafaf34fe1ec5bbd73e662f22b6",
|
"sha256:610fc7d6db6c56a244c2701575f6851461753c60f73f2de89c79bbf1cc807f33",
|
||||||
"sha256:857959354ae3a6fa3da6651b966d13b0a8bed6bbc87a0de7b38a549db1d2a359",
|
"sha256:70aeadeecb281ea901bf4230c6222af0248c41044d6f57401a614ea59d96d145",
|
||||||
"sha256:87f37fe5130574ff76c17cab61e7d2538a16f843bb7bca8ebbc4b12de3078596",
|
"sha256:71e1296d5e66c59cd2c0f2d72dc476d42afe02aeddc833d8e05630a0551dad7a",
|
||||||
"sha256:95d5251e4b5ca00061f9d9f3d6fe537247e145a8524ae9fd30a2f8fbce993b5b",
|
"sha256:8fc7a49b440ea752cfdf1d51a586fd08d395ff7a5d555dc69e84b1939f7ddee3",
|
||||||
"sha256:9d1d3e63a4afdc29bd76ce6aa9d58c771cd1599fbba8cf5057e7860b203710dd",
|
"sha256:9b5c2afd2d6e3771d516045a6cfa11a8da9a60e3d128746a7fe9ab36dfe7221f",
|
||||||
"sha256:a36c5c154f9d42ec176e6e620cb0dd275744aa1d804786a71ac37dc3661a5e95",
|
"sha256:9c759051ebcb244d9d55ee791259ddd158188d15adee3c152502d3b69005e6bd",
|
||||||
"sha256:a6a5cb8809091ec9ac03edde9304b3ad82ad4466333432b16d78ef40e0cce0d5",
|
"sha256:b4d1011fec5ec12aa7cc10c05a2f2f12dfa0adfe958e56ae38dc140614035804",
|
||||||
"sha256:ae5e35a2c189d397b91034642cb0eab0e346f776ec2eb44a49a459e6615d6e2e",
|
"sha256:b4f1d6332339ecc61275bebd1f7b674098a66fea11a00c84d1c58851e618dc0d",
|
||||||
"sha256:b0f7d4a3df8f06cf49f9f121bead236e328074de6449866515cea4907bbc63d6",
|
"sha256:c030cda3dc8e62b814831faa4eb93dd9a46498af8cd1d5c178c2de856972fd92",
|
||||||
"sha256:b75110fb114fa366b29a027d0c9be3709579602ae111ff61674d28c93606acca",
|
"sha256:c2e1f2012e56d61390c0e668c20c4fb0ae667c44d6f6a2eeea5d7148dcd3df9f",
|
||||||
"sha256:ba5e697569f84b13640c9e193170e89c13c6244c24400fc57e88724ef610cd31",
|
"sha256:c37c77d6562074452120fc6c02ad86ec928f5710fbc435a181d69334b4de1d84",
|
||||||
"sha256:be2a9b390f77fd7676d80bc3cdc4f8edb940d8c198ed2d8c0be1319018c778e1",
|
"sha256:c8149780c60f8fd02752d0429246088c6c04e234b895c4a42e1ea9b4de8d27fb",
|
||||||
"sha256:ca1bd81f40adc59011f58159e4aa6445fc585a32bb8ac9badf7a2c1aa23822f2",
|
"sha256:cbeeef1dc3c4299bd746b774f019de9e4672f7cc666c777cd5b409f0b746dac7",
|
||||||
"sha256:d5d8555d9bfc3f02385c1c37e9f998e2011f0db4f90e250e5bc0c0a85a813085",
|
"sha256:e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7",
|
||||||
"sha256:e55e22ac0a30023426564b1059b035973ec82186ddddbac867078435801c7801",
|
"sha256:e21162bf941b85c0cda08224dade5def9360f53b09f9f259adb85fc7dd0e7b35",
|
||||||
"sha256:e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4",
|
"sha256:fb6934ef4744becbda3143d30c6604718871495a5e36c408431bf33d9c146889"
|
||||||
"sha256:ecbb7b01409e9b782df5ded849c178a0aa7c906cf8c5a67368047daab282b184",
|
|
||||||
"sha256:ed01918d545a38998bfa5902c7c00e0fee90e957ce036a4000a88e3fe2264917",
|
|
||||||
"sha256:edabd457cd23a02965166026fd9bfd196f4324fe6032e866d0f3bd0301cd486f",
|
|
||||||
"sha256:fdf1c1dc5bafc32bc5d08b054f94d659422b05aba244d6be4ddc1c72d9aa70fb"
|
|
||||||
],
|
],
|
||||||
"version": "==1.11.5"
|
"version": "==1.12.2"
|
||||||
},
|
},
|
||||||
"chacha20poly1305": {
|
"chacha20poly1305": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -137,27 +140,27 @@
|
|||||||
},
|
},
|
||||||
"cryptography": {
|
"cryptography": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:05a6052c6a9f17ff78ba78f8e6eb1d777d25db3b763343a1ae89a7a8670386dd",
|
"sha256:066f815f1fe46020877c5983a7e747ae140f517f1b09030ec098503575265ce1",
|
||||||
"sha256:0eb83a24c650a36f68e31a6d0a70f7ad9c358fa2506dc7b683398b92e354a038",
|
"sha256:210210d9df0afba9e000636e97810117dc55b7157c903a55716bb73e3ae07705",
|
||||||
"sha256:0ff4a3d6ea86aa0c9e06e92a9f986de7ee8231f36c4da1b31c61a7e692ef3378",
|
"sha256:26c821cbeb683facb966045e2064303029d572a87ee69ca5a1bf54bf55f93ca6",
|
||||||
"sha256:1699f3e916981df32afdd014fb3164db28cdb61c757029f502cb0a8c29b2fdb3",
|
"sha256:2afb83308dc5c5255149ff7d3fb9964f7c9ee3d59b603ec18ccf5b0a8852e2b1",
|
||||||
"sha256:1b1f136d74f411f587b07c076149c4436a169dc19532e587460d9ced24adcc13",
|
"sha256:2db34e5c45988f36f7a08a7ab2b69638994a8923853dec2d4af121f689c66dc8",
|
||||||
"sha256:21e63dd20f5e5455e8b34179ac43d95b3fb1ffa54d071fd2ed5d67da82cfe6dc",
|
"sha256:409c4653e0f719fa78febcb71ac417076ae5e20160aec7270c91d009837b9151",
|
||||||
"sha256:2454ada8209bbde97065453a6ca488884bbb263e623d35ba183821317a58b46f",
|
"sha256:45a4f4cf4f4e6a55c8128f8b76b4c057027b27d4c67e3fe157fa02f27e37830d",
|
||||||
"sha256:3cdc5f7ca057b2214ce4569e01b0f368b3de9d8ee01887557755ccd1c15d9427",
|
"sha256:48eab46ef38faf1031e58dfcc9c3e71756a1108f4c9c966150b605d4a1a7f659",
|
||||||
"sha256:418e7a5ec02a7056d3a4f0c0e7ea81df374205f25f4720bb0e84189aa5fd2515",
|
"sha256:6b9e0ae298ab20d371fc26e2129fd683cfc0cfde4d157c6341722de645146537",
|
||||||
"sha256:471a097076a7c4ab85561d7fa9a1239bd2ae1f9fd0047520f13d8b340bf3210b",
|
"sha256:6c4778afe50f413707f604828c1ad1ff81fadf6c110cb669579dea7e2e98a75e",
|
||||||
"sha256:5ecaf9e7db3ca582c6de6229525d35db8a4e59dc3e8a40a331674ed90e658cbf",
|
"sha256:8c33fb99025d353c9520141f8bc989c2134a1f76bac6369cea060812f5b5c2bb",
|
||||||
"sha256:63b064a074f8dc61be81449796e2c3f4e308b6eba04a241a5c9f2d05e882c681",
|
"sha256:9873a1760a274b620a135054b756f9f218fa61ca030e42df31b409f0fb738b6c",
|
||||||
"sha256:6afe324dfe6074822ccd56d80420df750e19ac30a4e56c925746c735cf22ae8b",
|
"sha256:9b069768c627f3f5623b1cbd3248c5e7e92aec62f4c98827059eed7053138cc9",
|
||||||
"sha256:70596e90398574b77929cd87e1ac6e43edd0e29ba01e1365fed9c26bde295aa5",
|
"sha256:9e4ce27a507e4886efbd3c32d120db5089b906979a4debf1d5939ec01b9dd6c5",
|
||||||
"sha256:70c2b04e905d3f72e2ba12c58a590817128dfca08949173faa19a42c824efa0b",
|
"sha256:acb424eaca214cb08735f1a744eceb97d014de6530c1ea23beb86d9c6f13c2ad",
|
||||||
"sha256:8908f1db90be48b060888e9c96a0dee9d842765ce9594ff6a23da61086116bb6",
|
"sha256:c8181c7d77388fe26ab8418bb088b1a1ef5fde058c6926790c8a0a3d94075a4a",
|
||||||
"sha256:af12dfc9874ac27ebe57fc28c8df0e8afa11f2a1025566476b0d50cdb8884f70",
|
"sha256:d4afbb0840f489b60f5a580a41a1b9c3622e08ecb5eec8614d4fb4cd914c4460",
|
||||||
"sha256:b4fc04326b2d259ddd59ed8ea20405d2e695486ab4c5e1e49b025c484845206e",
|
"sha256:d9ed28030797c00f4bc43c86bf819266c76a5ea61d006cd4078a93ebf7da6bfd",
|
||||||
"sha256:da5b5dda4aa0d5e2b758cc8dfc67f8d4212e88ea9caad5f61ba132f948bab859"
|
"sha256:e603aa7bb52e4e8ed4119a58a03b60323918467ef209e6ff9db3ac382e5cf2c6"
|
||||||
],
|
],
|
||||||
"version": "==2.4.2"
|
"version": "==2.6.1"
|
||||||
},
|
},
|
||||||
"ctypeslib2": {
|
"ctypeslib2": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -168,10 +171,10 @@
|
|||||||
},
|
},
|
||||||
"ecdsa": {
|
"ecdsa": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:40d002cf360d0e035cf2cb985e1308d41aaa087cbfc135b2dc2d844296ea546c",
|
"sha256:20c17e527e75acad8f402290e158a6ac178b91b881f941fc6ea305bfdfb9657c",
|
||||||
"sha256:64cf1ee26d1cde3c73c6d7d107f835fed7c6a2904aef9eac223d57ad800c43fa"
|
"sha256:5c034ffa23413ac923541ceb3ac14ec15a0d2530690413bff58c12b80e56d884"
|
||||||
],
|
],
|
||||||
"version": "==0.13"
|
"version": "==0.13.2"
|
||||||
},
|
},
|
||||||
"ed25519": {
|
"ed25519": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -180,11 +183,12 @@
|
|||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==1.4"
|
"version": "==1.4"
|
||||||
},
|
},
|
||||||
"extended-pathlib": {
|
"entrypoints": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:c718cacfc7c02c6530936603dcf7496b9a5c0349b4410d0c7d1ab12dd4587e22"
|
"sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19",
|
||||||
|
"sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451"
|
||||||
],
|
],
|
||||||
"version": "==0.4.0"
|
"version": "==0.3"
|
||||||
},
|
},
|
||||||
"filelock": {
|
"filelock": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -195,11 +199,11 @@
|
|||||||
},
|
},
|
||||||
"flake8": {
|
"flake8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:6a35f5b8761f45c5513e3405f110a86bea57982c3b75b766ce7b65217abe1670",
|
"sha256:859996073f341f2670741b51ec1e67a01da142831aa1fdc6242dbf88dffbe661",
|
||||||
"sha256:c01f8a3963b3571a8e6bd7a4063359aff90749e160778e03817cd9b71c9e07d2"
|
"sha256:a796a115208f5c03b18f332f7c11729812c8c3ded6c46319c59b53efd3819da8"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==3.6.0"
|
"version": "==3.7.7"
|
||||||
},
|
},
|
||||||
"idna": {
|
"idna": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -208,14 +212,19 @@
|
|||||||
],
|
],
|
||||||
"version": "==2.8"
|
"version": "==2.8"
|
||||||
},
|
},
|
||||||
|
"inform": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:15814162c32cb245395234767dc6996e13f32623dbaffd94c22af2eab57644b3"
|
||||||
|
],
|
||||||
|
"version": "==1.15.0"
|
||||||
|
},
|
||||||
"isort": {
|
"isort": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:1153601da39a25b14ddc54955dbbacbb6b2d19135386699e2ad58517953b34af",
|
"sha256:01cb7e1ca5e6c5b3f235f0385057f70558b70d2f00320208825fa62887292f43",
|
||||||
"sha256:b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8",
|
"sha256:268067462aed7eb2a1e237fcb287852f22077de3fb07964e87e00f829eea2d1a"
|
||||||
"sha256:ec9ef8f4a9bc6f71eec99e1806bfa2de401650d996c59330782b89a5555c1497"
|
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==4.3.4"
|
"version": "==4.3.17"
|
||||||
},
|
},
|
||||||
"libusb1": {
|
"libusb1": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -225,43 +234,43 @@
|
|||||||
},
|
},
|
||||||
"mako": {
|
"mako": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:4e02fde57bd4abb5ec400181e4c314f56ac3e49ba4fb8b0d50bba18cb27d25ae"
|
"sha256:0728c404877cd4ca72c409c0ea372dc5f3b53fa1ad2bb434e1d216c0444ff1fd"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==1.0.7"
|
"version": "==1.0.9"
|
||||||
},
|
},
|
||||||
"markupsafe": {
|
"markupsafe": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:048ef924c1623740e70204aa7143ec592504045ae4429b59c30054cb31e3c432",
|
"sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
|
||||||
"sha256:130f844e7f5bdd8e9f3f42e7102ef1d49b2e6fdf0d7526df3f87281a532d8c8b",
|
"sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161",
|
||||||
"sha256:19f637c2ac5ae9da8bfd98cef74d64b7e1bb8a63038a3505cd182c3fac5eb4d9",
|
"sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
|
||||||
"sha256:1b8a7a87ad1b92bd887568ce54b23565f3fd7018c4180136e1cf412b405a47af",
|
"sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
|
||||||
"sha256:1c25694ca680b6919de53a4bb3bdd0602beafc63ff001fea2f2fc16ec3a11834",
|
"sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
|
||||||
"sha256:1f19ef5d3908110e1e891deefb5586aae1b49a7440db952454b4e281b41620cd",
|
"sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
|
||||||
"sha256:1fa6058938190ebe8290e5cae6c351e14e7bb44505c4a7624555ce57fbbeba0d",
|
"sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
|
||||||
"sha256:31cbb1359e8c25f9f48e156e59e2eaad51cd5242c05ed18a8de6dbe85184e4b7",
|
"sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
|
||||||
"sha256:3e835d8841ae7863f64e40e19477f7eb398674da6a47f09871673742531e6f4b",
|
"sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
|
||||||
"sha256:4e97332c9ce444b0c2c38dd22ddc61c743eb208d916e4265a2a3b575bdccb1d3",
|
"sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66",
|
||||||
"sha256:525396ee324ee2da82919f2ee9c9e73b012f23e7640131dd1b53a90206a0f09c",
|
"sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
|
||||||
"sha256:52b07fbc32032c21ad4ab060fec137b76eb804c4b9a1c7c7dc562549306afad2",
|
"sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
|
||||||
"sha256:52ccb45e77a1085ec5461cde794e1aa037df79f473cbc69b974e73940655c8d7",
|
"sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
|
||||||
"sha256:5c3fbebd7de20ce93103cb3183b47671f2885307df4a17a0ad56a1dd51273d36",
|
"sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
|
||||||
"sha256:5e5851969aea17660e55f6a3be00037a25b96a9b44d2083651812c99d53b14d1",
|
"sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
|
||||||
"sha256:5edfa27b2d3eefa2210fb2f5d539fbed81722b49f083b2c6566455eb7422fd7e",
|
"sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
|
||||||
"sha256:7d263e5770efddf465a9e31b78362d84d015cc894ca2c131901a4445eaa61ee1",
|
"sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
|
||||||
"sha256:83381342bfc22b3c8c06f2dd93a505413888694302de25add756254beee8449c",
|
"sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
|
||||||
"sha256:857eebb2c1dc60e4219ec8e98dfa19553dae33608237e107db9c6078b1167856",
|
"sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
|
||||||
"sha256:98e439297f78fca3a6169fd330fbe88d78b3bb72f967ad9961bcac0d7fdd1550",
|
"sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
|
||||||
"sha256:bf54103892a83c64db58125b3f2a43df6d2cb2d28889f14c78519394feb41492",
|
"sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
|
||||||
"sha256:d9ac82be533394d341b41d78aca7ed0e0f4ba5a2231602e2f05aa87f25c51672",
|
"sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
|
||||||
"sha256:e982fe07ede9fada6ff6705af70514a52beb1b2c3d25d4e873e82114cf3c5401",
|
"sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
|
||||||
"sha256:edce2ea7f3dfc981c4ddc97add8a61381d9642dc3273737e756517cc03e84dd6",
|
"sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
|
||||||
"sha256:efdc45ef1afc238db84cb4963aa689c0408912a0239b0721cb172b4016eb31d6",
|
"sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
|
||||||
"sha256:f137c02498f8b935892d5c0172560d7ab54bc45039de8805075e19079c639a9c",
|
"sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
|
||||||
"sha256:f82e347a72f955b7017a39708a3667f106e6ad4d10b25f237396a7115d8ed5fd",
|
"sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
|
||||||
"sha256:fb7c206e01ad85ce57feeaaa0bf784b97fa3cad0d4a5737bc5295785f5c613a1"
|
"sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"
|
||||||
],
|
],
|
||||||
"version": "==1.1.0"
|
"version": "==1.1.1"
|
||||||
},
|
},
|
||||||
"mccabe": {
|
"mccabe": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -290,25 +299,25 @@
|
|||||||
"tcry"
|
"tcry"
|
||||||
],
|
],
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0e8ac7a9ff9512b9781deacf6a5ae8c53f49d0b8e43684278e4e57f328493ebb",
|
"sha256:40f86d11d6b1ea1b8fda26c65026be1673d097976ed13925605dd5b3c4a0fad1",
|
||||||
"sha256:e6e99d44a2d76cdc1addb9421d5039546d4ea0002691ca5186124aa4561f82f5"
|
"sha256:b0223230752dbe7e8a9ce3f000bc47eb04990a564feac0679bd2bfdb4cb4c7d0"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==2.0.1"
|
"version": "==2.0.3"
|
||||||
},
|
},
|
||||||
"monero-serialize": {
|
"monero-serialize": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0bf42972a2b13b47c2b2bd42352006caf14117387c1fab09ab2ac0817c0dede5"
|
"sha256:4e6e8d0d7e626b142071b336dc0bd10a6b2bcbcb7e30417bd9ad265d14d23e51"
|
||||||
],
|
],
|
||||||
"version": "==3.0.0"
|
"version": "==3.0.1"
|
||||||
},
|
},
|
||||||
"more-itertools": {
|
"more-itertools": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4",
|
"sha256:2112d2ca570bb7c3e53ea1a35cd5df42bb0fd10c45f0fb97178679c3c03d64c7",
|
||||||
"sha256:c0a5785b1109a6bd7fac76d6837fd1feca158e54e521ccd2ae8bfe393cc9d4fc",
|
"sha256:c3e4748ba1aad8dba30a4886b0b1a2004f9a863837b8654e7059eebf727afa5a"
|
||||||
"sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9"
|
|
||||||
],
|
],
|
||||||
"version": "==5.0.0"
|
"markers": "python_version > '2.7'",
|
||||||
|
"version": "==7.0.0"
|
||||||
},
|
},
|
||||||
"munch": {
|
"munch": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -339,10 +348,10 @@
|
|||||||
},
|
},
|
||||||
"pbr": {
|
"pbr": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:f59d71442f9ece3dffc17bc36575768e1ee9967756e6b6535f0ee1f0054c3d68",
|
"sha256:8257baf496c8522437e8a6cfe0f15e00aedc6c0e0e7c9d55eeeeab31e0853843",
|
||||||
"sha256:f6d5b23f226a2ba58e14e49aa3b1bfaf814d0199144b95d78458212444de1387"
|
"sha256:8c361cc353d988e4f5b998555c88098b9d5964c2e11acf7b0d21925a66bb5824"
|
||||||
],
|
],
|
||||||
"version": "==5.1.1"
|
"version": "==5.1.3"
|
||||||
},
|
},
|
||||||
"pep8": {
|
"pep8": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -353,46 +362,42 @@
|
|||||||
},
|
},
|
||||||
"pillow": {
|
"pillow": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0cd42fe2d99ec6ce23aaf00947a7b7956ad2ed4b1695fd37545c3b8eae06d95a",
|
"sha256:15c056bfa284c30a7f265a41ac4cbbc93bdbfc0dfe0613b9cb8a8581b51a9e55",
|
||||||
"sha256:137bed8972089d65da63fb79b4949b0f2b99e9a58f1b494e82be43ba8b0f4226",
|
"sha256:1a4e06ba4f74494ea0c58c24de2bb752818e9d504474ec95b0aa94f6b0a7e479",
|
||||||
"sha256:14eb2b2e4f2a14f5c89fd0edf55c5af0bf1a40fdf3838d81867f26f131cd557d",
|
"sha256:1c3c707c76be43c9e99cb7e3d5f1bee1c8e5be8b8a2a5eeee665efbf8ddde91a",
|
||||||
"sha256:1fc43ce8c4fa3754222cd6831d599ad17ca2fc9868d2fb52f4e5362dfbfaf379",
|
"sha256:1fd0b290203e3b0882d9605d807b03c0f47e3440f97824586c173eca0aadd99d",
|
||||||
"sha256:26dfeee23a86dad6277a63d18f61f53b957cb2cd3506dbbd74b88ba2fa65b3b1",
|
"sha256:24114e4a6e1870c5a24b1da8f60d0ba77a0b4027907860188ea82bd3508c80eb",
|
||||||
"sha256:2e0e582942e025cc58f669499a8e0bffde5bcc8d42b65729f294c1dac54e4672",
|
"sha256:258d886a49b6b058cd7abb0ab4b2b85ce78669a857398e83e8b8e28b317b5abb",
|
||||||
"sha256:3bb8dd3ce101dd8b0b37eaae924a5bb93abb6ffdd034bf68a066a808e11768ab",
|
"sha256:33c79b6dd6bc7f65079ab9ca5bebffb5f5d1141c689c9c6a7855776d1b09b7e8",
|
||||||
"sha256:3f07da3874f0b085421f1d4f979785131aa9d497501d8610d82f7378b33858f8",
|
"sha256:367385fc797b2c31564c427430c7a8630db1a00bd040555dfc1d5c52e39fcd72",
|
||||||
"sha256:429b2b5ae5f57f8fd9ec2e012c1e7b342ff10f1a8977dc291976b9a3b4c096e1",
|
"sha256:3c1884ff078fb8bf5f63d7d86921838b82ed4a7d0c027add773c2f38b3168754",
|
||||||
"sha256:4a000fdd89d77b6b675de27e1ab91c6fba517c08f19ee83e6716b78930634e04",
|
"sha256:44e5240e8f4f8861d748f2a58b3f04daadab5e22bfec896bf5434745f788f33f",
|
||||||
"sha256:4ccbe7cce6156391a3ecf447c79a7d4a1a0ecd3de79bdec9ca5e4f7242a306d1",
|
"sha256:46aa988e15f3ea72dddd81afe3839437b755fffddb5e173886f11460be909dce",
|
||||||
"sha256:4d08034196db41acb7392e4fccfc0448e7a87192c41d3011ad4093eac2c31ffd",
|
"sha256:74d90d499c9c736d52dd6d9b7221af5665b9c04f1767e35f5dd8694324bd4601",
|
||||||
"sha256:6b202b1cb524bc76ed52a7eb0314f4b0a0497c7cceb9a93539b5a25800e1f2b6",
|
"sha256:809c0a2ce9032cbcd7b5313f71af4bdc5c8c771cb86eb7559afd954cab82ebb5",
|
||||||
"sha256:8563b56fa7c34f1606848c2143ea67d27cf225b9726a1b041c3d27cf85e46edc",
|
"sha256:85d1ef2cdafd5507c4221d201aaf62fc9276f8b0f71bd3933363e62a33abc734",
|
||||||
"sha256:86d7421e8803d7bae2e594765c378a867b629d46b32fbfe5ed9fd95b30989feb",
|
"sha256:8c3889c7681af77ecfa4431cd42a2885d093ecb811e81fbe5e203abc07e0995b",
|
||||||
"sha256:8d4bddedcb4ab99131d9705a75720efc48b3d006122dae1a4cc329496ac47c9a",
|
"sha256:9218d81b9fca98d2c47d35d688a0cea0c42fd473159dfd5612dcb0483c63e40b",
|
||||||
"sha256:a4929c6de9590635c34533609402c9da12b22bfc2feb8c0c4f38c39bab48a9ad",
|
"sha256:9aa4f3827992288edd37c9df345783a69ef58bd20cc02e64b36e44bcd157bbf1",
|
||||||
"sha256:b0736e21798448cee3e663c0df7a6dfa83d805b3f3a45e67f7457a2f019e5fca",
|
"sha256:9d80f44137a70b6f84c750d11019a3419f409c944526a95219bea0ac31f4dd91",
|
||||||
"sha256:b669acba91d47395de84c9ca52a7ad393b487e5ae2e20b9b2790b22a57d479fa",
|
"sha256:b7ebd36128a2fe93991293f997e44be9286503c7530ace6a55b938b20be288d8",
|
||||||
"sha256:bba993443921f2d077195b425a3283357f52b07807d53704610c1249d20b183a",
|
"sha256:c4c78e2c71c257c136cdd43869fd3d5e34fc2162dc22e4a5406b0ebe86958239",
|
||||||
"sha256:bdf706a93d00547c9443b2654ae424fd54d5dece4bc4333e7035740aeb7a7cea",
|
"sha256:c6a842537f887be1fe115d8abb5daa9bc8cc124e455ff995830cc785624a97af",
|
||||||
"sha256:c5aa93e55175b9cde95279ccd03c93d218976b376480222d37be41d2c9c54510",
|
"sha256:cf0a2e040fdf5a6d95f4c286c6ef1df6b36c218b528c8a9158ec2452a804b9b8",
|
||||||
"sha256:cc11fd997d8ad71bb0412e983b711e49639c2ddba9b9dce04d4bdab575fe5f84",
|
"sha256:cfd28aad6fc61f7a5d4ee556a997dc6e5555d9381d1390c00ecaf984d57e4232",
|
||||||
"sha256:d584f1c33995c3dc16a35e30ef43e0881fa0d085f0fef29cebf154ffb5643363",
|
"sha256:dca5660e25932771460d4688ccbb515677caaf8595f3f3240ec16c117deff89a",
|
||||||
"sha256:d88f54bdefb7ddccb68efdd710d689aa6a09b875cc3e44b7e81ef54e0751e3a7",
|
"sha256:de7aedc85918c2f887886442e50f52c1b93545606317956d65f342bd81cb4fc3",
|
||||||
"sha256:de0d323072be72fa4d74f4e013cd594e3f8ee03b2e0eac5876a3249fa076ef7b",
|
"sha256:e6c0bbf8e277b74196e3140c35f9a1ae3eafd818f7f2d3a15819c49135d6c062"
|
||||||
"sha256:f139c963c6679d236b2c45369524338eabd36a853fe23abd39ba246ab0a75aec",
|
|
||||||
"sha256:f41c0bf667c4c1c30b873eaa8d6bb894f6d721b3e38e9c993bddd1263c02fb1f",
|
|
||||||
"sha256:fbd0ea468b4ec04270533bf5206f1cd57746fcf226520bb133318fa276de2644",
|
|
||||||
"sha256:fe2d2850521c467c915ff0a6e27dc64c3c04c2f66612e0072672bd1bd4854b61"
|
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==5.4.0"
|
"version": "==6.0.0"
|
||||||
},
|
},
|
||||||
"pluggy": {
|
"pluggy": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:447ba94990e8014ee25ec853339faf7b0fc8050cdc3289d4d71f7f410fb90095",
|
"sha256:19ecf9ce9db2fce065a7a0586e07cfb4ac8614fe96edf628a264b1c70116cf8f",
|
||||||
"sha256:bde19360a8ec4dfd8a20dcb811780a30998101f078fc7ded6162f0076f50508f"
|
"sha256:84d306a647cc805219916e62aab89caa97a33a1dd8c342e87a37f91073cd4746"
|
||||||
],
|
],
|
||||||
"version": "==0.8.0"
|
"version": "==0.9.0"
|
||||||
},
|
},
|
||||||
"ply": {
|
"ply": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -416,16 +421,17 @@
|
|||||||
},
|
},
|
||||||
"py": {
|
"py": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:bf92637198836372b520efcba9e020c330123be8ce527e535d185ed4b6f45694",
|
"sha256:64f65755aee5b381cea27766a3a147c3f15b9b6b9ac88676de66ba2ae36793fa",
|
||||||
"sha256:e76826342cefe3c3d5f7e8ee4316b80d1dd8a300781612ddbc765c17ba25a6c6"
|
"sha256:dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53"
|
||||||
],
|
],
|
||||||
"version": "==1.7.0"
|
"version": "==1.8.0"
|
||||||
},
|
},
|
||||||
"py-cryptonight": {
|
"py-cryptonight": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:18ef26c56d7b677c527932af37a9bc98f39e4a56a87a003ef9a3a994d8bfe080"
|
"sha256:7dae42a96ad4d0e61ca67ca04f71d4faad62653df8d8dd58eb04c0bee335bfbe",
|
||||||
|
"sha256:a56dfb87dc937676ff0716a1a43d4fdd7dd6cbdbab6bb531ba82bec2ed0daa33"
|
||||||
],
|
],
|
||||||
"version": "==0.1.8"
|
"version": "==0.2.4"
|
||||||
},
|
},
|
||||||
"py-trezor-crypto-ph4": {
|
"py-trezor-crypto-ph4": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -433,7 +439,6 @@
|
|||||||
"sha256:c523afd73949ac083bb7c5ef67416f0a971edc1921f4046a8cd40f87e43133ff"
|
"sha256:c523afd73949ac083bb7c5ef67416f0a971edc1921f4046a8cd40f87e43133ff"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "extra == 'tcry'",
|
|
||||||
"version": "==0.1.1"
|
"version": "==0.1.1"
|
||||||
},
|
},
|
||||||
"pyblake2": {
|
"pyblake2": {
|
||||||
@ -452,10 +457,10 @@
|
|||||||
},
|
},
|
||||||
"pycodestyle": {
|
"pycodestyle": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:cbc619d09254895b0d12c2c691e237b2e91e9b2ecf5e84c26b35400f93dcfb83",
|
"sha256:95a2219d12372f05704562a14ec30bc76b05a5b297b21a5dfe3f6fac3491ae56",
|
||||||
"sha256:cbfca99bd594a10f674d0cd97a3d802a1fdef635d4361e1a2658de47ed261e3a"
|
"sha256:e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c"
|
||||||
],
|
],
|
||||||
"version": "==2.4.0"
|
"version": "==2.5.0"
|
||||||
},
|
},
|
||||||
"pycparser": {
|
"pycparser": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -465,49 +470,49 @@
|
|||||||
},
|
},
|
||||||
"pycryptodome": {
|
"pycryptodome": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:08dcfd52a6784c9ca6b8d098301326ec86a33b94e44759dac031ba71407a1a2e",
|
"sha256:02838a7184803c05710ccb4f3c9129fe26b2634f04daf017a3490d8be5f55b62",
|
||||||
"sha256:08de8132a11fe3df5a60ffc9292eabd713b77250650190bb5beeb01ef2593e51",
|
"sha256:04b710f55141c06388aa60d6d4a1d704b79f25b03fa9e61b0b1b9fcf0766e2ea",
|
||||||
"sha256:148349c2dfbe80c3dfe598c60147f7875ae9a1dc91beb79c15eade734262a1ab",
|
"sha256:0c54852415567fc53b656b528612d3f8084c127086c38370a2985fbac4892298",
|
||||||
"sha256:185c091af54f90d038efc7eeca586161e603bdcbcbaaef2bc7454147f66669d2",
|
"sha256:0e59d4e06b0cdb57132387144051101eaa9bbde447b62db9660345d247212ff9",
|
||||||
"sha256:1d0d94c09d032538a7b33eeb52eca21eb66db6f00689000066baf307cb7091c2",
|
"sha256:134479b4f4743402e7e8740f1bf3d779efd95b467c2535c600332b55d0b34686",
|
||||||
"sha256:249d4301eb1e41dce29550a6c8693d4a7d23a06cb2d8afb51f1f42680dd00de1",
|
"sha256:1961a6cbd30926a812809efd0f17bd677f54857ac5fd0b0e2638ad4891407dd0",
|
||||||
"sha256:2c7fe7b081f257d51138369ce3f8675cbae6d2b94f19b5abbf127b2b61db6b99",
|
"sha256:1e8f2d1b97578f0950a46128cca8b2dc44f224c4c08309a66ca53c4a33839fdd",
|
||||||
"sha256:3210d8ee57f92055b7c6c393e8770b331dd125b371007dcbcddca5dfc7d8c8ce",
|
"sha256:213d360d5e145a2ff4d9d90afab9e2b2d99174114aa4b4c04888937730c7ef57",
|
||||||
"sha256:331e93fdddf8e2779e85cc2e0cbb2bb173a9ebcfbd0eb77390f875e5db0f9940",
|
"sha256:24dc9a6bc59d4e4fb182197327db1e92e15c598729889132195b420dbcc48468",
|
||||||
"sha256:3b295dc48de69a8055c73d5d49b1355c9479ffeeff72d0c746fb25e205189fe1",
|
"sha256:3c24117d7fc65f5e299550abd7fa5c612813d0891b4db36d8b8cd02442674306",
|
||||||
"sha256:4617d3925bdd77e6930d2d3d343324062a3ebd87652808158f8d6f4be4e2161c",
|
"sha256:432b19da6106785825cbcaea50a8c3846ec9cd4678702f89e02985d27a73a314",
|
||||||
"sha256:500d932db4c418932510237911fb36f85d2452bd444bd0bee96c4a05223a0c81",
|
"sha256:5897e1e336c30274279f23a0f1ea81fdb43c51b514d6ac0f376ff835f420a33e",
|
||||||
"sha256:56857d04dadf51dfcc8223bea4127d739704c11a5aef365d373f8999a34d3c33",
|
"sha256:68ad0ce4a374577a26bb7f458575abe3c2a342818b5280de6e5738870b7761b3",
|
||||||
"sha256:5d8d9dd7ba37bb84773160ebb65ad7794517723a4a549367227bb1325ebb8925",
|
"sha256:68e50aa3230841dc296004e084ceb74225c92da951cff808122242af8a735501",
|
||||||
"sha256:5e6ab7478243f56fb51a89b8946fbd6853e924cd2aba3c22513bc508d3807a27",
|
"sha256:74bd385d89aca3f8860d56caadead5dcb9e1abdf5774739c4aa9fe3cf56bb34f",
|
||||||
"sha256:6650d66a513736d61bca9ca2b1c09deb72bf2dcdf47151507ec0c05595a5b0aa",
|
"sha256:783cffd29fb0dbf6498bd225c1b7194f8372258166c7585fb777075226b04b64",
|
||||||
"sha256:7a0ad14c046c7fe4f60d597f15fd58af41d25f143ff5c8742df3bd80b9008c7d",
|
"sha256:933750922193899d5601404c0d0637c4da12593ac2c54a16ba841b8afef44c9b",
|
||||||
"sha256:7c360b9f8b01e704ca70404001cf298505df9b2158a0c29021361ddf7f73117f",
|
"sha256:9871164f10b7bc87b88559b66e632528e766fcd0a84324a803860883b51f4c87",
|
||||||
"sha256:8365fbf5254f086e2ad9f589f026506b04e7cf7819a851c91a864bb2d7b35369",
|
"sha256:99a2f931e1bf87c95e465bc74ef0276ce735f1def575d52b67e117f712a63243",
|
||||||
"sha256:9048ef02431b19d823bd758dcd30bef6b29f0a92e49efc3dbec30c8b96e77570",
|
"sha256:a53be389125c79728658bf42bf711a277c8ac1b3690d26303bb8b0a9217d8cb9",
|
||||||
"sha256:a378c1aaddc8874a71205c4eee3aaddda99afbc62f213e065ac06df0686d42dc",
|
"sha256:a68e85d19a870d8f54d7d78fbdefac640bb694aca216223b5987456cdf4d50ff",
|
||||||
"sha256:bf60769ef3fd33023cb10ab277903f84f07819465f463cbdae66f732054f90dc",
|
"sha256:ae4070cfa271f78e9f74cde4f6b8c3869facfa4749b96e9bc7fbd1959d75f167",
|
||||||
"sha256:cbfa5f741ba3dc8e07d5beb7c8cacce629f47a15bb31d4625cec3b8b171c489d",
|
"sha256:b3d3215c5a3392a6c1f537d38c13e014d93f9b33277048f06c7ede4c6926b8bd",
|
||||||
"sha256:de3e9bb4d356a8bc72f848b7691ec760c8abfbbf368fcd7642240c3e6126e740",
|
"sha256:df1d5540021b79230cfe8f80bb1f13ee1a626eab10161a26784b78c122c845db",
|
||||||
"sha256:e39b956d8dfa3377b8cafc90649fa715d5a17c12f7e7f117920664eddc410803",
|
"sha256:dfdca3079aac696a25edb9a0b59595b9b776426f61587bf5a974596da217834e",
|
||||||
"sha256:f0377ce5ce4df524394e0745c807932895bb8f25d791ab24b47687d2e049d691",
|
"sha256:e874188bb9c274de2dcc0995e885f15732fd0a43c7ef581eff54eef2b11d83c7",
|
||||||
"sha256:f09ea14afb0b811cdfdaf2de01ad1a7f8c46faee81291d34044eff409b713cee",
|
"sha256:e9ff57287d899d2c4e17e523ac46d1e90902f3b36a81f0e6817238ff0219597f",
|
||||||
"sha256:f5fc7e3b2d29552f0383063408ce2bd295e9d3c7ef13377599aa300a3d2baef7"
|
"sha256:ecb7718fc0087a67023fb4a78dd8ebb883d66c49f0465ad656b3213bb1841631"
|
||||||
],
|
],
|
||||||
"version": "==3.7.2"
|
"version": "==3.8.1"
|
||||||
},
|
},
|
||||||
"pyflakes": {
|
"pyflakes": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:9a7662ec724d0120012f6e29d6248ae3727d821bba522a0e6b356eff19126a49",
|
"sha256:17dbeb2e3f4d772725c777fabc446d5634d1038f234e77343108ce445ea69ce0",
|
||||||
"sha256:f661252913bc1dbe7fcfcbf0af0db3f42ab65aabd1a6ca68fe5d466bace94dae"
|
"sha256:d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2"
|
||||||
],
|
],
|
||||||
"version": "==2.0.0"
|
"version": "==2.1.1"
|
||||||
},
|
},
|
||||||
"pympler": {
|
"pympler": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:c262ceca4dac67b8b523956833c52443420eabc3321a07185990b358b8ba13a7"
|
"sha256:7a11e739125a9ce8bf868ded67238a40e8a7bf979bc03005eb8126182e5e274e"
|
||||||
],
|
],
|
||||||
"version": "==0.6"
|
"version": "==0.7"
|
||||||
},
|
},
|
||||||
"pypandoc": {
|
"pypandoc": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -517,11 +522,18 @@
|
|||||||
},
|
},
|
||||||
"pytest": {
|
"pytest": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:f689bf2fc18c4585403348dd56f47d87780bf217c53ed9ae7a3e2d7faa45f8e9",
|
"sha256:3773f4c235918987d51daf1db66d51c99fac654c81d6f2f709a046ab446d5e5d",
|
||||||
"sha256:f812ea39a0153566be53d88f8de94839db1e8a05352ed8a49525d7d7f37861e9"
|
"sha256:b7802283b70ca24d7119b32915efa7c409982f59913c1a6c0640aacf118b95f5"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==4.0.2"
|
"version": "==4.4.1"
|
||||||
|
},
|
||||||
|
"python-dateutil": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:7e6584c74aeed623791615e26efd690f29817a27c73085b78e4bad02493df2fb",
|
||||||
|
"sha256:c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e"
|
||||||
|
],
|
||||||
|
"version": "==2.8.0"
|
||||||
},
|
},
|
||||||
"requests": {
|
"requests": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -533,9 +545,9 @@
|
|||||||
},
|
},
|
||||||
"shlib": {
|
"shlib": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:160c9925e298b62c895a4a1088b3528c514831fb645815116c1d57c2222a7a55"
|
"sha256:f9798b0a3e37407171f06efca7c213269f034eee2c94dd9933a819730a6d528b"
|
||||||
],
|
],
|
||||||
"version": "==0.8.0"
|
"version": "==1.1.0"
|
||||||
},
|
},
|
||||||
"six": {
|
"six": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@ -560,43 +572,44 @@
|
|||||||
},
|
},
|
||||||
"tox": {
|
"tox": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:2a8d8a63660563e41e64e3b5b677e81ce1ffa5e2a93c2c565d3768c287445800",
|
"sha256:1b166b93d2ce66bb7b253ba944d2be89e0c9d432d49eeb9da2988b4902a4684e",
|
||||||
"sha256:edfca7809925f49bdc110d0a2d9966bbf35a0c25637216d9586e7a5c5de17bfb"
|
"sha256:665cbdd99f5c196dd80d1d8db8c8cf5d48b1ae1f778bccd1bdf14d5aaf4ca0fc"
|
||||||
],
|
],
|
||||||
"version": "==3.6.1"
|
"version": "==3.9.0"
|
||||||
},
|
},
|
||||||
"trezor": {
|
"trezor": {
|
||||||
"editable": true,
|
"editable": true,
|
||||||
"git": "https://github.com/trezor/python-trezor",
|
"git": "https://github.com/trezor/python-trezor",
|
||||||
"ref": "master"
|
"ref": "2813522b05cef4e0e545a101f8b3559a3183b45b"
|
||||||
},
|
},
|
||||||
"typing-extensions": {
|
"typing-extensions": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:2a6c6e78e291a4b6cbd0bbfd30edc0baaa366de962129506ec8fe06bdec66457",
|
"sha256:07b2c978670896022a43c4b915df8958bec4a6b84add7f2c87b2b728bda3ba64",
|
||||||
"sha256:51e7b7f3dcabf9ad22eed61490f3b8d23d9922af400fe6656cb08e66656b701f",
|
"sha256:f3f0e67e1d42de47b5c67c32c9b26641642e9170fe7e292991793705cd5fef7c",
|
||||||
"sha256:55401f6ed58ade5638eb566615c150ba13624e2f0c1eedd080fc3c1b6cb76f1d"
|
"sha256:fb2cd053238d33a8ec939190f30cfd736c00653a85a2919415cecf7dc3d9da71"
|
||||||
],
|
],
|
||||||
"version": "==3.6.6"
|
"version": "==3.7.2"
|
||||||
},
|
},
|
||||||
"urllib3": {
|
"urllib3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:61bf29cada3fc2fbefad4fdf059ea4bd1b4a86d2b6d15e1c7c0b582b9752fe39",
|
"sha256:4c291ca23bbb55c76518905869ef34bdd5f0e46af7afe6861e8375643ffee1a0",
|
||||||
"sha256:de9529817c93f27c8ccbfead6985011db27bd0ddfcdb2d86f3f663385c6a9c22"
|
"sha256:9a247273df709c4fedb38c711e44292304f73f39ab01beda9f6b9fc375669ac3"
|
||||||
],
|
],
|
||||||
"version": "==1.24.1"
|
"version": "==1.24.2"
|
||||||
},
|
},
|
||||||
"virtualenv": {
|
"virtualenv": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:34b9ae3742abed2f95d3970acf4d80533261d6061b51160b197f84e5b4c98b4c"
|
"sha256:6aebaf4dd2568a0094225ebbca987859e369e3e5c22dc7d52e5406d504890417",
|
||||||
|
"sha256:984d7e607b0a5d1329425dd8845bd971b957424b5ba664729fab51ab8c11bc39"
|
||||||
],
|
],
|
||||||
"version": "==16.2.0"
|
"version": "==16.4.3"
|
||||||
},
|
},
|
||||||
"wheel": {
|
"wheel": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:029703bf514e16c8271c3821806a1c171220cc5bdd325cbf4e7da1e056a01db6",
|
"sha256:66a8fd76f28977bb664b098372daef2b27f60dc4d1688cfab7b37a09448f0e9d",
|
||||||
"sha256:1e53cdb3f808d5ccd0df57f964263752aa74ea7359526d3da6c02114ec1e1d44"
|
"sha256:8eb4a788b3aec8abf5ff68d4165441bc57420c9f64ca5f471f58c3969fe08668"
|
||||||
],
|
],
|
||||||
"version": "==0.32.3"
|
"version": "==0.33.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"develop": {
|
"develop": {
|
||||||
|
@ -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(signature, &sig, MP_BUFFER_READ);
|
||||||
mp_get_buffer_raise(message, &msg, MP_BUFFER_READ);
|
mp_get_buffer_raise(message, &msg, MP_BUFFER_READ);
|
||||||
if (pk.len != 32) {
|
if (pk.len != 32) {
|
||||||
mp_raise_ValueError("Invalid length of public key");
|
return mp_const_false;
|
||||||
}
|
}
|
||||||
if (sig.len != 64) {
|
if (sig.len != 64) {
|
||||||
mp_raise_ValueError("Invalid length of signature");
|
return mp_const_false;
|
||||||
}
|
}
|
||||||
if (msg.len == 0) {
|
if (msg.len == 0) {
|
||||||
mp_raise_ValueError("Empty data to verify");
|
return mp_const_false;
|
||||||
}
|
}
|
||||||
return (0 == ed25519_sign_open(msg.buf, msg.len,
|
return (0 == ed25519_sign_open(msg.buf, msg.len,
|
||||||
*(const ed25519_public_key *)pk.buf,
|
*(const ed25519_public_key *)pk.buf,
|
||||||
|
@ -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(signature, &sig, MP_BUFFER_READ);
|
||||||
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
||||||
if (pk.len != 33 && pk.len != 65) {
|
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) {
|
if (sig.len != 64 && sig.len != 65) {
|
||||||
mp_raise_ValueError("Invalid length of signature");
|
return mp_const_false;
|
||||||
}
|
}
|
||||||
int offset = sig.len - 64;
|
int offset = sig.len - 64;
|
||||||
if (dig.len != 32) {
|
if (dig.len != 32) {
|
||||||
mp_raise_ValueError("Invalid length of digest");
|
return mp_const_false;
|
||||||
}
|
}
|
||||||
return mp_obj_new_bool(
|
return mp_obj_new_bool(
|
||||||
0 == ecdsa_verify_digest(&nist256p1, (const uint8_t *)pk.buf,
|
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:
|
/// def verify_recover(signature: bytes, digest: bytes) -> bytes:
|
||||||
/// '''
|
/// '''
|
||||||
/// Uses signature of the digest to verify the digest and recover the public
|
/// 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,
|
STATIC mp_obj_t mod_trezorcrypto_nist256p1_verify_recover(mp_obj_t signature,
|
||||||
mp_obj_t digest) {
|
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(signature, &sig, MP_BUFFER_READ);
|
||||||
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
||||||
if (sig.len != 65) {
|
if (sig.len != 65) {
|
||||||
mp_raise_ValueError("Invalid length of signature");
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
if (dig.len != 32) {
|
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;
|
uint8_t recid = ((const uint8_t *)sig.buf)[0] - 27;
|
||||||
if (recid >= 8) {
|
if (recid >= 8) {
|
||||||
mp_raise_ValueError("Invalid recid in signature");
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
bool compressed = (recid >= 4);
|
bool compressed = (recid >= 4);
|
||||||
recid &= 3;
|
recid &= 3;
|
||||||
|
@ -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(signature, &sig, MP_BUFFER_READ);
|
||||||
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
||||||
if (pk.len != 33 && pk.len != 65) {
|
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) {
|
if (sig.len != 64 && sig.len != 65) {
|
||||||
mp_raise_ValueError("Invalid length of signature");
|
return mp_const_false;
|
||||||
}
|
}
|
||||||
int offset = sig.len - 64;
|
int offset = sig.len - 64;
|
||||||
if (dig.len != 32) {
|
if (dig.len != 32) {
|
||||||
mp_raise_ValueError("Invalid length of digest");
|
return mp_const_false;
|
||||||
}
|
}
|
||||||
return mp_obj_new_bool(
|
return mp_obj_new_bool(
|
||||||
0 == ecdsa_verify_digest(&secp256k1, (const uint8_t *)pk.buf,
|
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:
|
/// def verify_recover(signature: bytes, digest: bytes) -> bytes:
|
||||||
/// '''
|
/// '''
|
||||||
/// Uses signature of the digest to verify the digest and recover the public
|
/// 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,
|
STATIC mp_obj_t mod_trezorcrypto_secp256k1_verify_recover(mp_obj_t signature,
|
||||||
mp_obj_t digest) {
|
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(signature, &sig, MP_BUFFER_READ);
|
||||||
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
||||||
if (sig.len != 65) {
|
if (sig.len != 65) {
|
||||||
mp_raise_ValueError("Invalid length of signature");
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
if (dig.len != 32) {
|
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;
|
uint8_t recid = ((const uint8_t *)sig.buf)[0] - 27;
|
||||||
if (recid >= 8) {
|
if (recid >= 8) {
|
||||||
mp_raise_ValueError("Invalid recid in signature");
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
bool compressed = (recid >= 4);
|
bool compressed = (recid >= 4);
|
||||||
recid &= 3;
|
recid &= 3;
|
||||||
|
@ -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(signature, &sig, MP_BUFFER_READ);
|
||||||
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
||||||
if (pk.len != 33 && pk.len != 65) {
|
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) {
|
if (sig.len != 64 && sig.len != 65) {
|
||||||
mp_raise_ValueError("Invalid length of signature");
|
return mp_const_false;
|
||||||
}
|
}
|
||||||
int offset = sig.len - 64;
|
int offset = sig.len - 64;
|
||||||
if (dig.len != 32) {
|
if (dig.len != 32) {
|
||||||
mp_raise_ValueError("Invalid length of digest");
|
return mp_const_false;
|
||||||
}
|
}
|
||||||
secp256k1_ecdsa_signature ec_sig;
|
secp256k1_ecdsa_signature ec_sig;
|
||||||
if (!secp256k1_ecdsa_signature_parse_compact(
|
if (!secp256k1_ecdsa_signature_parse_compact(
|
||||||
ctx, &ec_sig, (const uint8_t *)sig.buf + offset)) {
|
ctx, &ec_sig, (const uint8_t *)sig.buf + offset)) {
|
||||||
mp_raise_ValueError("Invalid signature");
|
return mp_const_false;
|
||||||
}
|
}
|
||||||
secp256k1_pubkey ec_pk;
|
secp256k1_pubkey ec_pk;
|
||||||
if (!secp256k1_ec_pubkey_parse(ctx, &ec_pk, (const uint8_t *)pk.buf,
|
if (!secp256k1_ec_pubkey_parse(ctx, &ec_pk, (const uint8_t *)pk.buf,
|
||||||
pk.len)) {
|
pk.len)) {
|
||||||
mp_raise_ValueError("Invalid public key");
|
return mp_const_false;
|
||||||
}
|
}
|
||||||
return mp_obj_new_bool(1 == secp256k1_ecdsa_verify(ctx, &ec_sig,
|
return mp_obj_new_bool(1 == secp256k1_ecdsa_verify(ctx, &ec_sig,
|
||||||
(const uint8_t *)dig.buf,
|
(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:
|
/// def verify_recover(signature: bytes, digest: bytes) -> bytes:
|
||||||
/// '''
|
/// '''
|
||||||
/// Uses signature of the digest to verify the digest and recover the public
|
/// 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(
|
STATIC mp_obj_t mod_trezorcrypto_secp256k1_zkp_verify_recover(
|
||||||
mp_obj_t signature, mp_obj_t digest) {
|
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(signature, &sig, MP_BUFFER_READ);
|
||||||
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
mp_get_buffer_raise(digest, &dig, MP_BUFFER_READ);
|
||||||
if (sig.len != 65) {
|
if (sig.len != 65) {
|
||||||
mp_raise_ValueError("Invalid length of signature");
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
if (dig.len != 32) {
|
if (dig.len != 32) {
|
||||||
mp_raise_ValueError("Invalid length of digest");
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
int recid = ((const uint8_t *)sig.buf)[0] - 27;
|
int recid = ((const uint8_t *)sig.buf)[0] - 27;
|
||||||
if (recid >= 8) {
|
if (recid >= 8) {
|
||||||
mp_raise_ValueError("Invalid recid in signature");
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
bool compressed = (recid >= 4);
|
bool compressed = (recid >= 4);
|
||||||
recid &= 3;
|
recid &= 3;
|
||||||
@ -223,7 +223,7 @@ STATIC mp_obj_t mod_trezorcrypto_secp256k1_zkp_verify_recover(
|
|||||||
secp256k1_ecdsa_recoverable_signature ec_sig;
|
secp256k1_ecdsa_recoverable_signature ec_sig;
|
||||||
if (!secp256k1_ecdsa_recoverable_signature_parse_compact(
|
if (!secp256k1_ecdsa_recoverable_signature_parse_compact(
|
||||||
ctx, &ec_sig, (const uint8_t *)sig.buf + 1, recid)) {
|
ctx, &ec_sig, (const uint8_t *)sig.buf + 1, recid)) {
|
||||||
mp_raise_ValueError("Invalid signature");
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
secp256k1_pubkey pk;
|
secp256k1_pubkey pk;
|
||||||
if (!secp256k1_ecdsa_recover(ctx, &pk, &ec_sig, (const uint8_t *)dig.buf)) {
|
if (!secp256k1_ecdsa_recover(ctx, &pk, &ec_sig, (const uint8_t *)dig.buf)) {
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
with import <nixpkgs> {};
|
|
||||||
|
|
||||||
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 ];
|
|
||||||
}
|
|
@ -17,10 +17,7 @@ async def verify_message(ctx, msg):
|
|||||||
raise wire.DataError("Invalid signature")
|
raise wire.DataError("Invalid signature")
|
||||||
sig = bytearray([msg.signature[64]]) + msg.signature[:64]
|
sig = bytearray([msg.signature[64]]) + msg.signature[:64]
|
||||||
|
|
||||||
try:
|
pubkey = secp256k1.verify_recover(sig, digest)
|
||||||
pubkey = secp256k1.verify_recover(sig, digest)
|
|
||||||
except ValueError:
|
|
||||||
raise wire.DataError("Invalid signature")
|
|
||||||
|
|
||||||
if not pubkey:
|
if not pubkey:
|
||||||
raise wire.DataError("Invalid signature")
|
raise wire.DataError("Invalid signature")
|
||||||
|
@ -936,6 +936,11 @@ int ecdsa_address_decode(const char *addr, uint32_t version,
|
|||||||
address_check_prefix(out, 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,
|
void uncompress_coords(const ecdsa_curve *curve, uint8_t odd,
|
||||||
const bignum256 *x, bignum256 *y) {
|
const bignum256 *x, bignum256 *y) {
|
||||||
// y^2 = x^3 + a*x + b
|
// y^2 = x^3 + a*x + b
|
||||||
|
@ -75,6 +75,7 @@ void scalar_multiply(const ecdsa_curve *curve, const bignum256 *k,
|
|||||||
curve_point *res);
|
curve_point *res);
|
||||||
int ecdh_multiply(const ecdsa_curve *curve, const uint8_t *priv_key,
|
int ecdh_multiply(const ecdsa_curve *curve, const uint8_t *priv_key,
|
||||||
const uint8_t *pub_key, uint8_t *session_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,
|
void uncompress_coords(const ecdsa_curve *curve, uint8_t odd,
|
||||||
const bignum256 *x, bignum256 *y);
|
const bignum256 *x, bignum256 *y);
|
||||||
int ecdsa_uncompress_pubkey(const ecdsa_curve *curve, const uint8_t *pub_key,
|
int ecdsa_uncompress_pubkey(const ecdsa_curve *curve, const uint8_t *pub_key,
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
with import <nixpkgs> {};
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "trezor-crypto-dev";
|
|
||||||
buildInputs = [ gnumake gcc pkgconfig openssl check valgrind clang-tools ];
|
|
||||||
}
|
|
@ -8408,6 +8408,46 @@ START_TEST(test_rc4_rfc6229) {
|
|||||||
}
|
}
|
||||||
END_TEST
|
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) {
|
static int my_strncasecmp(const char *s1, const char *s2, size_t n) {
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
while (i < n) {
|
while (i < n) {
|
||||||
@ -8685,6 +8725,10 @@ Suite *test_suite(void) {
|
|||||||
tcase_add_test(tc, test_cashaddr);
|
tcase_add_test(tc, test_cashaddr);
|
||||||
suite_add_tcase(s, tc);
|
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
|
#if USE_CARDANO
|
||||||
tc = tcase_create("bip32-cardano");
|
tc = tcase_create("bip32-cardano");
|
||||||
|
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
with import <nixpkgs> {};
|
|
||||||
|
|
||||||
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 ];
|
|
||||||
}
|
|
39
shell.nix
Normal file
39
shell.nix
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
|
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
|
||||||
|
];
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user