moneromooo-monero
d4b62a1e29
rct amount key modified as per luigi1111's recommendations
...
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.
8 years ago
moneromooo-monero
93f5c625f0
rct: rework v2 txes into prunable and non prunable data
...
Nothing is pruned, but this allows easier changes later.
8 years ago
moneromooo-monero
d93746b6d3
rct: rework the verification preparation process
...
The whole rct data apart from the MLSAGs is now included in
the signed message, to avoid malleability issues.
Instead of passing the data that's not serialized as extra
parameters to the verification API, the transaction is modified
to fill all that information. This means the transaction can
not be const anymore, but it cleaner in other ways.
8 years ago
moneromooo-monero
3ab2ab3e76
rct: change the simple flag to a type
...
for future expansion
8 years ago
Shen Noether
c5be4b0bea
rct: avoid the need for the last II element
...
This element is used in the generation of the MLSAG, but isn't
needed in verification.
Also misc changes in the cryptonote code to match, by mooo.
8 years ago
moneromooo-monero
b337aea6cc
rct: do not serialize senderPk - it is not used anymore
8 years ago
moneromooo-monero
9b70856ccb
rct: make the amount key derivable by a third party with the tx key
...
Scheme design from luigi1114.
8 years ago
moneromooo-monero
cf33e1a52a
rct: do not serialize public keys in outPk
...
They can be reconstructed from vout
8 years ago
moneromooo-monero
1e21651f24
rct: use the already defined H where possible
...
Found by luigi1111w
8 years ago
moneromooo-monero
e81a2b2cfa
port get_tx_key/check_tx_key to rct
8 years ago
moneromooo-monero
a4d4d6194b
integrate simple rct api
8 years ago
Shen Noether
dbb5f2d6a3
ringct: optimization/cleanup of hash functions
8 years ago
Shen Noether
4fd01f2bee
ringct: "simple" ringct variant
...
Allows the fake outs to be in different positions for each ring.
For rct inputs only.
8 years ago
moneromooo-monero
35dce5c70c
ringct: fix size unit mismatch calling keccak
8 years ago
moneromooo-monero
20e50ec7f7
ringct: do not serialize what can be reconstructed
...
The mixRing (output keys and commitments) and II fields (key images)
can be reconstructed from vin data.
This saves some modest amount of space in the tx.
8 years ago
moneromooo-monero
73d59f17e1
ringct: catch errors from ge_frombytes_vartime
8 years ago
moneromooo-monero
359f46901e
ringct: add missing size check for ecdhInfo
8 years ago
moneromooo-monero
229968eafc
ringct: change asserts to return false for boolean functions
8 years ago
moneromooo-monero
dc4aad7eb5
add rct to the protocol
...
It is not yet constrained to a fork, so don't use on the real network
or you'll be orphaned or rejected.
8 years ago
moneromooo-monero
dee42d6dac
ringct: add functions to commit to an amount
...
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).
8 years ago
moneromooo-monero
cc7f449d57
make rct tx serialization work
...
It may be suboptimal, but it's a pain to have to rebuild everything
when some of this changes.
Also, no clue why there seems to be two different code paths for
serializing a tx...
8 years ago
moneromooo-monero
54f7429cf6
ringct: allow no outputs, and add tests for this and fees
8 years ago
moneromooo-monero
e99904ac31
ringct: make fee optional
8 years ago
Shen Noether
f8c04ad94f
ringct: txn fee stuff
8 years ago
moneromooo-monero
66f96260b2
ringct: new {gen,decode}Rct APIs for convenience
...
A new version of genRct takes the mixRing as parameter, instead
of the inPk. inPk are part of the mixRing, and it is cleaner to
pass the mixRing data than to fetch it from the RingCT code.
A new version of decodeRct also returns the mask.
Also, failure to decode throws, so errors are properly detected.
8 years ago
moneromooo-monero
789b2e21f6
ringct: add more convenience functions
8 years ago
moneromooo-monero
c3a2e1450a
ringct: add convenience functions to bridge ringct and cryptonote
8 years ago
moneromooo-monero
82072e701a
ringct: restore verRange check in debug mode
8 years ago
moneromooo-monero
63856cad29
ringct: add check for destinations/amount size being equal
8 years ago
moneromooo-monero
e816a09292
ringct: fix off by 1 in mixin usage
8 years ago
moneromooo-monero
09c5ea43a2
ringct: simplify random key generation
8 years ago
Shen Noether
56f6549962
ringct: cosmetic fixes
...
Ported from Shen's RingCT repo
8 years ago
Shen Noether
55ff136e12
ringct: changes to hashToPointSimple to calcualte H2 values
...
Ported from Shen's RingCT repo
8 years ago
Shen Noether
63733b1785
ringct: compare keys with bitwise equality, not crypto ops
...
Ported from Shen's RingCT repo
8 years ago
Shen Noether
98f4c6f7eb
ringct: fix size argument to cn_fast_hash
...
Ported from Shen's RingCT repo
8 years ago
Shen Noether
09fb9f4b75
Fix sc_0 to skGen in ProveRange
8 years ago
moneromooo-monero
d37c1db032
ringct: add a few consts where appropriate
8 years ago
moneromooo-monero
700248f59e
tests: more ringct range proof tests
8 years ago
moneromooo-monero
d02f9995a8
rct: add serialization machinery to rct types
8 years ago
moneromooo-monero
0ff8305426
serialization: declare do_serialize specializations before use
...
This lets my gcc picks those instead of the generic template
where appropriate (and then fail since std::vector<something>
does not have a serialize method.
8 years ago
Shen Noether
8b135e7aa3
Added note on generating H2
8 years ago
Shen Noether
4d639d90ca
Fixed missing last index H2
8 years ago
moneromooo-monero
86b4426191
ringct: lock access to the PRNG
8 years ago
moneromooo-monero
4d7f073491
ringct: add simple input validation
...
Throw when inputs aren't the expected size.
8 years ago
moneromooo-monero
b656001030
ringct: add convenience operators to key
8 years ago
moneromooo-monero
9b1afe5f2d
ringct: import of Shen Noether's ring confidential transactions
8 years ago