serai/coins/monero/src
Luke Parker b54548b13a
Only deserialize RctSignatures where's there at least one input
This is only enforced by the Monero protocol due to a single check the mixRing
isn't empty in get_pre_mlsag_hash. The value in ensuring there's a least one
input is to ensure the safety of our rct_type functions, which determines the
RctType based off structural analysis (specifically, input data if
MlsagBorromean).

rct_type was technically safe without this. A 0-input transaction would be
mis-classified as RctFull/MlsagAggregate, which would then make the
RctSignatures invalid for being RctFull (requiring exactly one input) yet not
having inputs, meaning an invalid RctSignatures would be mis-classified yet
still invalid.

This just removes the risk of mis-classification in the first place, tightening
the library's safety.
2023-07-09 00:44:23 -04:00
..
bin Update reserialize_chain for v1 and migration TXs 2023-07-08 21:09:22 -04:00
ringct Only deserialize RctSignatures where's there at least one input 2023-07-09 00:44:23 -04:00
rpc Extend reserialize_chain with CLSAG/BP(+) verification 2023-07-08 20:29:55 -04:00
tests no-std support for monero-serai (#311) 2023-06-29 04:14:29 -04:00
wallet Meaningful changes from aggressive-clippy 2023-07-08 11:29:07 -04:00
block.rs Monero: support for legacy transactions (#308) 2023-07-04 17:18:05 -04:00
lib.rs Meaningful changes from aggressive-clippy 2023-07-08 11:29:07 -04:00
merkle.rs Meaningful changes from aggressive-clippy 2023-07-08 11:29:07 -04:00
serialize.rs Meaningful changes from aggressive-clippy 2023-07-08 11:29:07 -04:00
transaction.rs Update reserialize_chain for v1 and migration TXs 2023-07-08 21:09:22 -04:00