Commit Graph

55 Commits

Author SHA1 Message Date
luigi1111 443f5c6bda
Merge pull request #6436
688a3e8 Add timelock verification on device (cslashm)
2020-05-01 15:20:05 -05:00
cslashm 688a3e87e7 Add timelock verification on device 2020-04-08 11:12:32 +02:00
xiphon 29b7cd1351 device_ledger: include status code name in error message 2020-02-08 01:46:39 +00:00
xiphon 296ec7c9bb device: bounds checking in Ledger send_secret/receive_secret 2019-10-25 13:13:23 +00:00
cslashm 32febd277d Fix debug feature 2019-10-03 16:05:40 +02:00
cslashm 235b94eb59 Revert PR #5835 (export view key) 2019-10-03 16:05:40 +02:00
cslashm 34f28a79bc Add display address 2019-10-03 16:05:32 +02:00
cslashm d25acd7a1d Add hmac over encrypted value during transaction 2019-10-03 16:01:34 +02:00
luigi1111 4ef3848423
Merge pull request #5835
26f7a26 device: fix ledger requesting secret keys export twice (xiphon)
2019-09-08 19:42:49 -05:00
moneromooo-monero 7c894fc7fd
device_ledger: add paranoid buffer overflow check
Coverity 200183
2019-08-26 12:50:26 +00:00
xiphon 26f7a26ee3 device: fix ledger requesting secret keys export twice 2019-08-20 16:08:09 +00:00
moneromooo-monero 35c20c4332
Fix GCC 9.1 build warnings
GCC wants operator= aand copy ctor to be both defined, or neither
2019-06-09 09:39:18 +00:00
cslashm 83fc45a413 Add NanoX support 2019-04-01 17:40:24 +02:00
cslashm 7c44091541 Add get_tx_proof support, needed for new sanity check
Enhance debug info
2019-03-28 18:26:15 +01:00
cslashm 98fdcb2aa5 Add support for V11 protocol with BulletProofV2 and short amount.
New scheme key destination contrfol
Fix dummy decryption in debug mode
2019-03-28 18:26:15 +01:00
cslashm 3a981a3313 Add application version compatibility check. 2019-03-28 18:26:15 +01:00
binaryFate 1f2930ce0b Update 2019 copyright 2019-03-05 22:05:34 +01:00
moneromooo-monero ef93b0995c
various: remove unused variables 2019-03-04 22:24:49 +00:00
cslashm 2dbc487ec0 Add support for V10 protocol with BulletProofV2 and short amount. 2019-02-08 17:02:55 +01:00
cslashm f0e55cebf7 fix log namespace 2019-02-08 17:02:55 +01:00
cslashm 460da140ec New scheme key destination contrfol
Implies protocol version management.
2019-02-08 17:02:44 +01:00
Riccardo Spagni 77e96d0948
Merge pull request #5055
6c060e6a device: proper handling of user input (selsta)
2019-01-28 21:27:10 +02:00
Riccardo Spagni 0c970fde1c
Merge pull request #5054
93c21644 device_ledger: remove full_name variable (selsta)
2019-01-28 21:26:44 +02:00
moneromooo-monero 99d946e619
ringct: encode 8 byte amount, saving 24 bytes per output
Found by knaccc
2019-01-22 23:17:31 +00:00
selsta 6c060e6aaa
device: proper handling of user input
(1) If the user denies something on the Ledger,
    a proper error message is now shown.
(2) Ledger doesn't time out anymore while waiting
    on user input.
(3) Lower the timeout to 2 seconds, this is enough for
    normal Ledger <-> System communication.
2019-01-09 15:45:06 +01:00
selsta 93c2164434
device_ledger: remove full_name variable
This variable was never set, resulting in the
device name always showing as "disconnected".
2019-01-09 05:33:49 +01:00
moneromooo-monero d4f50cb109
remove some unused code
Found by codacy.com
2018-11-23 15:37:36 +00:00
moneromooo-monero d6937e373b
ringct: use dummy bulletproofs when in fake mode, for speed 2018-10-23 21:03:18 +00:00
xiphon 25d327e796 device: extended logging, refactored device selection code 2018-10-18 17:53:06 +03:00
selsta c716a331f3
device: increase ledger timeout to 2 minutes 2018-10-09 02:17:40 +02:00
moneromooo-monero c5a97315ee
Remove last traces of libpcsc-lite 2018-10-08 14:22:10 +00:00
cslashm bb6e3bbc0f Replace USB-CCID (smartcard) by USB-HID
Remove PCSC dependencies which is a bit hard (not user friendly) to install on linux and Mac

Split Ledger logic and device IO
2018-09-24 21:57:42 +02:00
cslashm cd236aebca Add bulletproof support 2018-09-13 09:50:43 +02:00
moneromooo-monero 2a8fcb421b
Bulletproof aggregated verification and tests
Also constrains bulletproofs to simple rct, for simplicity
2018-09-11 13:37:37 +00:00
moneromooo-monero d2e26c23f3
add and use constant time 32 byte equality function 2018-08-23 07:56:51 +00:00
stoffu bcab579864
wallet: allow adjusting number of rounds for the key derivation function 2018-08-08 01:56:54 +09:00
luigi1111 cff15e4123
Merge pull request #4032
87e158b device_ledger: factor the prologue code (moneromooo-monero)
2018-07-19 13:54:39 -05:00
Riccardo Spagni d1f102626c
Merge pull request #4043
34de7bc2 device_ledger: fix buffer underflow on bad data from device (moneromooo-monero)
41e9cab4 device: misc cleanup (moneromooo-monero)
3b4dec2d device_ledger: fix potential buffer overflow from bad size calc (moneromooo-monero)
2018-07-03 15:21:56 +02:00
luigi1111 31f47d72fe
Merge pull request #3977
0309615 device_ledger: fix bad memory access on connect error (moneromooo-monero)
2018-06-25 15:26:23 -05:00
moneromooo-monero 87e158b5b9
device_ledger: factor the prologue code 2018-06-25 12:35:10 +01:00
moneromooo-monero 34de7bc267
device_ledger: fix buffer underflow on bad data from device 2018-06-23 15:43:31 +01:00
moneromooo-monero 41e9cab4e1
device: misc cleanup
use snprintf "just in case" where appropriate
consistently use unsigned for temp values
pass std::string by const ref rather than by value
add length check (which can't happen in practice) for memcpy
2018-06-23 15:28:48 +01:00
moneromooo-monero 3b4dec2d12
device_ledger: fix potential buffer overflow from bad size calc 2018-06-23 15:28:45 +01:00
moneromooo-monero 03096150c6
device_ledger: fix bad memory access on connect error 2018-06-09 20:52:34 +01:00
cslashm bdf5a3ad3f Fix PCSC compilation under windows
PR3843 based on release-v0.12 => rebased on master
2018-05-23 10:22:55 +02:00
cslashm 2c274e05fe Fix sub-address tx scan.
When additional keys was needed, the TX scan failed because the
derivation data was always recomputed with the main tx_key and not
the corresponding additional one.

Moreover this patch avoid perf decreasing when not using HW device.
2018-04-12 13:58:57 +02:00
cslashm c77d2bfaa0 Add the possibility to export private view key for fast scan.
On client startup the device asks for authorization to export the private view key.
If user agree, the client hold the private view key allowing a fast blockchain scan.
If the user does not agree, the blockchain scan is fully done via the device.
2018-03-31 18:00:33 +02:00
cslashm 100b7bc10d Change mutex lock model to avoid dead lock and ensure locks are always released.
Additional cosmetic fixes:
 move 'name' as protected
 remove unnecessary local var
 Fix debug log
2018-03-31 18:00:33 +02:00
stoffu 7dfa5e9e6e
chacha: call prehashed version explicitly as generate_chacha_key_prehashed
hash: add prehashed version cn_slow_hash_prehashed
slow-hash: let cn_slow_hash take 4th parameter for deciding prehashed or not
slow-hash: add support for prehashed version for the other 3 platforms
2018-03-14 21:00:17 +09:00
stoffu 27a196b126
device: untangle cyclic depenency
When #3303 was merged, a cyclic dependency chain was generated:

    libdevice <- libcncrypto <- libringct <- libdevice

This was because libdevice needs access to a set of basic crypto operations
implemented in libringct such as scalarmultBase(), while libringct also needs
access to abstracted crypto operations implemented in libdevice such as
ecdhEncode(). To untangle this cyclic dependency chain, this patch splits libringct
into libringct_basic and libringct, where the basic crypto ops previously in
libringct are moved into libringct_basic. The cyclic dependency is now resolved
thanks to this separation:

    libcncrypto <- libringct_basic <- libdevice <- libcryptonote_basic <- libringct

This eliminates the need for crypto_device.cpp and rctOps_device.cpp.

Also, many abstracted interfaces of hw::device such as encrypt_payment_id() and
get_subaddress_secret_key() were previously implemented in libcryptonote_basic
(cryptonote_format_utils.cpp) and were then called from hw::core::device_default,
which is odd because libdevice is supposed to be independent of libcryptonote_basic.
Therefore, those functions were moved to device_default.cpp.
2018-03-14 21:00:15 +09:00