aboutsummaryrefslogtreecommitdiff
path: root/src/crypto/crypto.h (follow)
AgeCommit message (Collapse)AuthorFilesLines
2018-03-04Code modifications to integrate Ledger HW device into monero-wallet-cli.cslashm1-0/+21
The basic approach it to delegate all sensitive data (master key, secret ephemeral key, key derivation, ....) and related operations to the device. As device has low memory, it does not keep itself the values (except for view/spend keys) but once computed there are encrypted (with AES are equivalent) and return back to monero-wallet-cli. When they need to be manipulated by the device, they are decrypted on receive. Moreover, using the client for storing the value in encrypted form limits the modification in the client code. Those values are transfered from one C-structure to another one as previously. The code modification has been done with the wishes to be open to any other hardware wallet. To achieve that a C++ class hw::Device has been introduced. Two initial implementations are provided: the "default", which remaps all calls to initial Monero code, and the "Ledger", which delegates all calls to Ledger device.
2018-01-26Update 2018 copyrightxmr-eric1-1/+1
2018-01-10move memwipe to epee to avoid common<->crypto circular dependenciesmoneromooo-monero1-1/+1
2017-12-16Scrub keys from memory just before scope end.moneromooo-monero1-3/+4
Partially implements #74. Securely erases keys from memory after they are no longer needed. Might have a performance impact, which I haven't measured (perf measurements aren't generally reliable on laptops). Thanks to @stoffu for the suggestion to specialize the pod_to_hex/hex_to_pod functions. Using overloads + SFINAE instead generalizes it so other types can be marked as scrubbed without adding more boilerplate.
2017-10-07Subaddresseskenshi841-8/+19
2017-09-25move checkpoints in a separate librarymoneromooo-monero1-0/+22
2017-06-22Signature proving payment to destination by only revealing key derivation, ↵stoffu1-0/+14
not the actual tx secret key
2017-02-21update copyright year, fix occasional lack of newline at line endRiccardo Spagni1-1/+1
2016-11-07wallet: fix output collision detection for view walletsmoneromooo-monero1-1/+1
View wallets do not have the spend secret key, and are thus unable to derive key images for incoming outputs. Moreover, a previous patch set key images to zero as a means to mark an output as having an unknown key image, so they could be filled in when importing key images at a later time. That later patch caused spurious collisions. We now use public keys to detect duplicate outputs. Public keys obtained from the blockchain are checked to be identical to the ones derived locally, so can't be spoofed.
2016-08-28rct amount key modified as per luigi1111's recommendationsmoneromooo-monero1-0/+5
This allows the key to be not the same for two outputs sent to the same address (eg, if you pay yourself, and also get change back). Also remove the key amounts lists and return parameters since we don't actually generate random ones, so we don't need to save them as we can recalculate them when needed if we have the correct keys.
2016-08-28ringct: import of Shen Noether's ring confidential transactionsmoneromooo-monero1-0/+16
2016-05-15crypto: make clear generate_random_bytes is not thread safemoneromooo-monero1-1/+8
And add a thread safe version to encourage proper use
2016-03-11Use boost::thread instead of std::threadHoward Chu1-3/+4
and all other associated IPC
2015-12-31updated copyright yearRiccardo Spagni1-1/+1
2015-01-02year updated in licenseRiccardo Spagni1-1/+1
2014-07-23License updated to BSD 3-clausefluffypony1-3/+29
2014-06-12builds, but doesn't link. other than that, electrum-style recovery ↵Thomas Winget1-4/+4
implemented (but not tested\!)
2014-06-12revert 'dirty hack' change to crypto.h. need a better way for sure.Thomas Winget1-4/+1
2014-06-12compile issues, resolve later. commiting because switching machinestom1-1/+4
2014-03-03moved all stuff to githubAntonio Juarez1-80/+100
2013-11-15crypto libamjuarez1-0/+166