summaryrefslogtreecommitdiff
path: root/src/ringct
Commit message (Collapse)AuthorAgeFilesLines
* bulletproofs: multiply points by 8 first thing in verificationmoneromooo-monero2018-09-241-15/+17
| | | | | instead of merging that with other scalar multiplications where possible for speed, since this is not actually safe
* Merge pull request #4379Riccardo Spagni2018-09-213-7/+25
|\ | | | | | | 607301bf rct: avoid repeated unnecessary conversions when accummulating (moneromooo-monero)
| * rct: avoid repeated unnecessary conversions when accummulatingmoneromooo-monero2018-09-143-7/+25
| |
* | rctTypes: fix incorrect serializationstoffu2018-09-121-2/+2
|/
* bulletproofs: #include <openssl/bn.h>moneromooo-monero2018-09-111-0/+1
| | | | Apparently needed for openssl 1.1.x
* bulletproofs: speed up the latest changes a bitmoneromooo-monero2018-09-114-34/+54
|
* bulletproofs: scale points by 8 to ensure subgroup validitymoneromooo-monero2018-09-113-18/+32
|
* bulletproofs: match aggregated verification to sarang's latest prototypemoneromooo-monero2018-09-111-64/+39
|
* more comprehensive test for ge_p3 comparison to identity/point at infinitymoneromooo-monero2018-09-111-6/+6
| | | | Reported by QuarksLab.
* multiexp: fix maxscalar off by onemoneromooo-monero2018-09-111-1/+1
| | | | Reported by QuarksLab.
* ringct: error out when hashToPoint* returns the point at infinitymoneromooo-monero2018-09-112-1/+4
| | | | Reported by QuarksLab.
* ringct: prevent a potential very large allocationmoneromooo-monero2018-09-111-2/+2
| | | | Reported by QuarksLab.
* multiexp: fix wrong Bos-Coster result for 1 non trivial inputmoneromooo-monero2018-09-111-3/+7
| | | | Reported by QuarksLab.
* Check inputs to addKeys are in rangemoneromooo-monero2018-09-111-0/+4
| | | | Reported by QuarksLab.
* bulletproofs: reject x, y, z, or w[i] being zeromoneromooo-monero2018-09-111-2/+63
| | | | | | Also try again when we're generate a proof with those characteristics Reported by QuarksLab.
* v8: per byte fee, pad bulletproofs, fixed 11 ring sizemoneromooo-monero2018-09-113-5/+64
|
* bulletproofs: a few fixes from the Kudelski reviewmoneromooo-monero2018-09-112-3/+22
| | | | | | | - fix integer overflow in n_bulletproof_amounts - check input scalars are in range - remove use of environment variable to tweak straus performance - do not use implementation defined signed shift for signum
* bulletproofs: reject points not in the main subgroupmoneromooo-monero2018-09-113-0/+33
|
* bulletproofs: speed up a few multiplies using existing Hi cachemoneromooo-monero2018-09-111-2/+11
|
* Add Pippenger cache and limit Straus cache sizemoneromooo-monero2018-09-113-30/+82
|
* Pippenger multiexpmoneromooo-monero2018-09-113-3/+138
| | | | Based on sarang's python code
* multiexp: cut down on memory allocationsmoneromooo-monero2018-09-111-15/+13
|
* precalc the ge_p3 representation of Hmoneromooo-monero2018-09-112-14/+12
|
* Add a define for the max number of bulletproof multi-outputsmoneromooo-monero2018-09-112-2/+3
|
* Bulletproof aggregated verification and testsmoneromooo-monero2018-09-114-91/+83
| | | | Also constrains bulletproofs to simple rct, for simplicity
* multiexp: some speedupsmoneromooo-monero2018-09-113-28/+121
| | | | | | | - use a raw memory block to store cache - use aligned memory - use doubling API where appropriate - calculate straus in bands
* bulletproofs: add aggregated verificationmoneromooo-monero2018-09-114-222/+329
| | | | Ported from sarang's java code
* make straus cached mode thread safe, and add tests for itmoneromooo-monero2018-09-113-31/+67
|
* multiexp: bos coster now works for just one pointmoneromooo-monero2018-09-111-1/+11
|
* bulletproofs: add multi output bulletproofs to rctmoneromooo-monero2018-09-114-72/+125
|
* add Straus multiexpmoneromooo-monero2018-09-113-150/+182
|
* ringct: add bos coster multiexpmoneromooo-monero2018-09-114-51/+455
|
* bulletproofs: misc optimizationsmoneromooo-monero2018-09-111-23/+87
| | | | Use double mults where possible, avoid conversions, simplify
* bulletproofs: multi-output bulletproofsmoneromooo-monero2018-09-113-32/+320
|
* ringct: make conversion functions return const refsmoneromooo-monero2018-09-041-8/+8
| | | | | | This might avoid unnecessary copies. Reported by stoffu
* Merge pull request #4268luigi11112018-09-041-2/+6
|\ | | | | | | 1f2409e Do memwipe for critical secret keys copied to rct::key (stoffu)
| * Do memwipe for critical secret keys copied to rct::keystoffu2018-08-161-2/+6
| |
* | add and use constant time 32 byte equality functionmoneromooo-monero2018-08-231-7/+8
| |
* | Merge pull request #4210luigi11112018-08-221-0/+10
|\ \ | |/ |/| | | 4616cf2 Fixed ZMQ-RPC for transactions and GET_BLOCKS_FAST (vtnerd)
| * Fixed ZMQ-RPC for transactions and GET_BLOCKS_FASTLee Clagett2018-08-021-0/+10
| |
* | Merge pull request #4097luigi11112018-07-271-6/+4
|\ \ | |/ |/| | | 61caab8 crypto: remove slight bias in key generation due to modulo (moneromooo-monero)
| * crypto: remove slight bias in key generation due to modulomoneromooo-monero2018-07-051-6/+4
| |
* | Merge pull request #4045luigi11112018-07-193-14/+14
|\ \ | |/ |/| | | 7cdd147 Changed URLs to HTTPS (einsteinsfool)
| * Changed URLs to HTTPSeinsteinsfool2018-06-233-14/+14
| |
* | threadpool: allow leaf functions to run concurrentlymoneromooo-monero2018-06-261-6/+6
|/ | | | | Decrease the number of worker threads by one to account for the fact the calling thread acts as a worker thread now
* ringct: remove an unnecessary scalarmultBase in zeroCommitmoneromooo-monero2018-06-062-4/+2
|
* ringct: do not show verification errors with default settingsmoneromooo-monero2018-05-041-4/+6
|
* Merge pull request #3372Riccardo Spagni2018-03-141-9/+36
|\ | | | | | | c3e23b2d ringct: 17% improvement in Borromean signature verification (moneromooo-monero)
| * ringct: 17% improvement in Borromean signature verificationmoneromooo-monero2018-03-081-9/+36
| |
* | device: untangle cyclic depenencystoffu2018-03-145-87/+31
|/ | | | | | | | | | | | | | | | | | | | | | | | 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.