oxen-core/tests/core_tests
Jason Rhinelander 6aa9db9538
Overhaul and fix crypto::{public_key,ec_point,etc.} types
- Remove implicit `operator bool` from ec_point/public_key/etc. which
  was causing all sorts of implicit conversion mess and bugs.
- Change ec_point/public_key/etc. to use a `std::array<unsigned char,
  32>` (via a base type) rather than a C-array of char that has to be
  reinterpret_cast<>'ed all over the place.
- Add methods to ec_point/public_key/etc. that make it work more like a
  container of bytes (`.data()`, `.size()`, `operator[]`, `begin()`,
  `end()`).
- Make a generic `crypto::null<T>` that is a constexpr all-0 `T`, rather
  than the mishmash `crypto::null_hash`, crypto::null_pkey,
  crypto:#️⃣:null(), and so on.
- Replace three metric tons of `crypto::hash blahblah =
  crypto::null_hash;` with the much simpler `crypto::hash blahblah{};`,
  because there's no need to make a copy of a null hash in all these
  cases.  (Likewise for a few other null_whatevers).
- Remove a whole bunch of `if (blahblah == crypto::null_hash)` and `if
  (blahblah != crypto::null_hash)` with the more concise `if
  (!blahblah)` and `if (blahblah)` (which are fine via the newly
  *explicit* bool conversion operators).
- `crypto::signature` becomes a 64-byte container (as above) but with
  `c()` and `r()` to get the c() and r() data pointers.  (Previously
  `.c` and `.r` were `ec_scalar`s).
- Delete with great prejudice CRYPTO_MAKE_COMPARABLE and
  CRYPTO_MAKE_HASHABLE and all the other utter trash in
  `crypto/generic-ops.h`.
- De-inline functions in very common crypto/*.h files so that they don't
  have to get compiled 300 times.
- Remove the disgusting include-a-C-header-inside-a-C++-namespace
  garbage from some crypto headers trying to be both a C and *different*
  C++ header at once.
- Remove the toxic, disgusting, shameful `operator&` on ec_scalar, etc.
  that replace `&x` with `reinterpret_cast x into an unsigned char*`.
  This was pure toxic waste.
- changed some `<<` outputs to fmt
- Random other small changes encountered while fixing everything that
  cascaded out of the above changes.
2022-10-17 22:20:54 -03:00
..
CMakeLists.txt Logging Refactor 2022-10-17 13:41:10 -03:00
block_reward.cpp Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
block_reward.h Clean up core tests (#830) 2019-09-11 16:04:58 +10:00
block_validation.cpp Logging Refactor 2022-10-17 13:41:10 -03:00
block_validation.h Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
bulletproofs.cpp Overhaul and fix crypto::{public_key,ec_point,etc.} types 2022-10-17 22:20:54 -03:00
bulletproofs.h Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
chain_split_1.cpp shorten wire names 2021-02-09 11:54:27 +11:00
chain_split_1.h Update 2019 copyright 2019-03-05 22:05:34 +01:00
chain_switch_1.cpp Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
chain_switch_1.h Update 2019 copyright 2019-03-05 22:05:34 +01:00
chaingen.cpp Overhaul and fix crypto::{public_key,ec_point,etc.} types 2022-10-17 22:20:54 -03:00
chaingen.h Overhaul and fix crypto::{public_key,ec_point,etc.} types 2022-10-17 22:20:54 -03:00
chaingen001.cpp Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
chaingen_main.cpp Logging Refactor 2022-10-17 13:41:10 -03:00
chaingen_tests_list.h compiles 2021-01-04 13:09:59 +11:00
double_spend.cpp start of compiler errors 2022-09-02 15:38:21 -04:00
double_spend.h core_tests: gen_double-spend_in_alt_chain* = work 2019-12-04 15:17:55 +11:00
double_spend.inl Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
integer_overflow.cpp Rename hf19 -> hf19_reward_batching 2022-05-24 18:54:32 -03:00
integer_overflow.h Fix the overflow test for fee and block_reward in blocks (#869) 2019-10-04 15:01:03 +10:00
multisig.cpp Overhaul and fix crypto::{public_key,ec_point,etc.} types 2022-10-17 22:20:54 -03:00
multisig.h Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
oxen_tests.cpp Overhaul and fix crypto::{public_key,ec_point,etc.} types 2022-10-17 22:20:54 -03:00
oxen_tests.h Enforce a minimum time period before small contributors can unlock stake 2022-05-24 10:55:26 +10:00
rct.cpp Overhaul and fix crypto::{public_key,ec_point,etc.} types 2022-10-17 22:20:54 -03:00
rct.h Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
ring_signature_1.cpp Logging Refactor 2022-10-17 13:41:10 -03:00
ring_signature_1.h Update 2019 copyright 2019-03-05 22:05:34 +01:00
transaction_tests.cpp Use an empty vector instead of optional<vector> 2022-05-26 15:08:08 -03:00
transaction_tests.h Update 2019 copyright 2019-03-05 22:05:34 +01:00
tx_validation.cpp Remove stupid typedef 2022-05-20 18:30:55 -03:00
tx_validation.h Test suite: add tx version hack and remove broken tests 2020-12-13 21:42:10 -04:00
v2_tests.cpp Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
v2_tests.h Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
wallet_tools.cpp Overhaul and fix crypto::{public_key,ec_point,etc.} types 2022-10-17 22:20:54 -03:00
wallet_tools.h Make RingCT and RangeProof types type-safe enum classes 2020-11-30 00:47:12 -04:00