aboutsummaryrefslogtreecommitdiff
path: root/src/ringct/rctOps.h (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-08-27CLSAG signaturesSarang Noether1-0/+4
2020-04-14Bulletproofs: verification speedupSarang Noether1-0/+1
2019-08-27MLSAG speedup and additional checksSarang Noether1-4/+1
2019-01-22ringct: the commitment mask is now deterministicmoneromooo-monero1-2/+3
saves space in the tx and is safe Found by knaccc
2019-01-22ringct: encode 8 byte amount, saving 24 bytes per outputmoneromooo-monero1-2/+2
Found by knaccc
2018-09-14rct: avoid repeated unnecessary conversions when accummulatingmoneromooo-monero1-0/+1
2018-09-11bulletproofs: speed up the latest changes a bitmoneromooo-monero1-0/+2
2018-09-11bulletproofs: scale points by 8 to ensure subgroup validitymoneromooo-monero1-0/+2
2018-09-11bulletproofs: reject points not in the main subgroupmoneromooo-monero1-0/+3
2018-06-06ringct: remove an unnecessary scalarmultBase in zeroCommitmoneromooo-monero1-0/+1
2018-03-14device: untangle cyclic depenencystoffu1-6/+0
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-04Code modifications to integrate Ledger HW device into monero-wallet-cli.cslashm1-0/+6
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.
2017-12-07add a version of ge_double_scalarmult_precomp_vartime with A precompmoneromooo-monero1-0/+1
2017-12-07ringct: add a version of addKeys which returns the resultmoneromooo-monero1-0/+1
2017-11-14remove "using namespace std" from headersmoneromooo-monero1-8/+3
It's nasty, and actually breaks on Solaris, where if.h fails to build due to: struct map *if_memmap;
2017-02-20core: test key images against validity domainmoneromooo-monero1-0/+4
2016-12-04ringct: switch to Borromean signaturesShen Noether1-0/+3
2016-10-23ringct: some more small optimizationsmoneromooo-monero1-10/+14
2016-10-15ringct: pass vectors by const ref where possiblemoneromooo-monero1-2/+2
2016-08-28rct amount key modified as per luigi1111's recommendationsmoneromooo-monero1-4/+2
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-28rct: make the amount key derivable by a third party with the tx keymoneromooo-monero1-0/+2
Scheme design from luigi1114.
2016-08-28ringct: optimization/cleanup of hash functionsShen Noether1-0/+3
2016-08-28ringct: "simple" ringct variantShen Noether1-0/+2
Allows the fake outs to be in different positions for each ring. For rct inputs only.
2016-08-28ringct: add functions to commit to an amountmoneromooo-monero1-0/+4
One to commit to an amount with zero key (for use with fake commitments for pre-rct outputs), and one with an arbitrary key (for rct outputs).
2016-08-28ringct: cosmetic fixesShen Noether1-1/+0
Ported from Shen's RingCT repo
2016-08-28ringct: import of Shen Noether's ring confidential transactionsmoneromooo-monero1-0/+163