* Add whoAmI and whoIs RPCs
* Name cert files [user|member]0-2, not 1-3
* Remove manual offsetting from txregulatorclient
* Separate local name from CCF-retrieved ID
* Remove manual offset from demo script too
* Auto stringify
* Add user_data field in UserInfo, settable by members
* USERS table should be whitelisted
* Trying to log most types from lua is an error
* Add privilege model to txregulator app - WIP
* Semantic indentation
* Format
* Add permissions for demo script
* who_is should return a WhoIs::Out
* Schema for new RPCs
* Fix IDs in memberclient
* Address PR comments
* Document adding users + user-data
* Move new info to existing Adding Users section
- Get smallbank to work with the pbft backend
- Create a python pbft flag and then use that to make network.start_and_join work for both raft and pbft
- Bug fix where we do not return the KV version properly
- Change to use the standard allocator for pbft message allocations
* mbedtls writes with null byte, don't add another
* Don't return const context, its unusable
* Add some temporary hacky accessors
* Set secp256k1 illegal callback
* Pem holds a string
* Distinguish string pems from other data
* Recoverable signatures in keypair.h
* Catch awkward failure states
* Renames
* clang-format
* Wrap secp256k1_context so it is destroyed on error
* KeyPair inherits from PublicKey
* Feedback, name and document signature size
* Sketch CurveImpl enum, replace macro definitions with templates
* Replace use of MD_TYPE and HASH macros with templates
* Replace HASH macro
* WIP
* Remove remaining compile-disabled code from keypair.h
* Expose CurveImpl, correct 256k1_bitcoin params
* Test all supported curves
* Add test that wrong curve fails to validate
* verify(vector, vector) should delegate, not reimplement
* Corrupt more, to ensure we affect content not padding
* Rename CURVE_CHOICE options to be LEDGER_CURVE_CHOICE
* LEDGER_CURVE_CHOICE determines default_curve_choice
* Proof-of-concept - factories for virtual implementation
* Virtualise PublicKey
* Re-enable other tests
* Remove templated CurveParameters
* Add labels, test for wrong curve, wrong impl
* Correct comment
* Delegate sign(CBuffer), reducing code duplication
* Remove TODO enum
* tls_bench compares curves for signing
* Extract make_contents
* tls_bench does comparison of all supported curves
* Tidy
* Temporary verbose logging of ecp group ID
* Produce standard (non-recoverable) signatures by default, for compatibility
* Fix curve logging, add tests of key transfer across implementations
* Verify with non-recoverable sigs too
* Log inconsistent failing cases
* Correct implementation substitutability test
* Normalize secp256k1 signatures - they may have come from mbedtls
* Re-order picobench results for readability
* Add some secp256k1 link dependencies
* Unprotect constructors - there are legitimate uses for direct construction
* Verifier curve type is parsed from cert
* history_bench builds
* Reminder TODO comment
* frontend_test builds and passes
* Clients compile
* genesisgenerator compiles
* membervoting_test builds
* Fix sign_hash, sign/verify ack data normally
* Remove unneeded CurveParams entirely
Detect PublicKey type
Simplify construction to minimum
* Correct test with new API
* verify_hash via publickey, test sign_hash and verify_hash
* Include tests
* Update to latest signature
* Ditto
* Update function signatures for people with raw data
* Fix history calls
* When constructing from explicit key, don't pass curve too
* API updates
* Fix nodestate
* inline
* EVERYTHING BUILDS
* Tidy cmake link args
* Remove unnecessary direct use of mbedtls_ecdsa_*
* Remove uint8_t restriction in sig_size
* tls_bench actually compares relevant hash operations
* bitcoin preference doesn't need to be a macro
* Standardise use of use_bitcoin_impl
* clang-format
* Test now uses distinct manual hash operation
CHECK rather than REQUIRE
* Rename LEDGER_curve to SERVICE_IDENTITY_curve
* use fmtlib
* Let mbedtls determine message digest size/function
* Add details to all thrown errors
* Remove parameter packs, document use_bitcoin_impl
* Name magic constant, extract parse_secp256k_bc
* No success without an argument
* Make it clear that JoinNetwork gets an async response
* return json::success(true);
* Expect truth
* luA luI
* Make logging.lua consistent with logging.cpp
* KO OK
* Remove unused coverage CI step
* Add new e2e forwarding performance test
* Remove verification file
* Re-enable storage of tx-times and metrics data + copy all clients csv
files back
* Disable signatures for forwarding test for now
* Actually push performance data
* Only push client* csv files
* Re-enable compress time and metrics
* Indentation of CI yml file
* Some more fixups
* Added fast-start for clients and fixups
* Cleanup
* Change comment
* Remove fast-start option as join protocol is now synchronous