|
Electroneum
|
#include <unordered_set>#include "include_base_utils.h"#include "crypto/crypto.h"#include "ringct/rctOps.h"#include "cryptonote_basic/account.h"#include "cryptonote_basic/cryptonote_format_utils.h"#include "multisig.h"
Namespaces | |
| cryptonote | |
| Holds cryptonote related classes and helpers. | |
Macros | |
| #define | ELECTRONEUM_DEFAULT_LOG_CATEGORY "multisig" |
Functions | |
| crypto::secret_key | cryptonote::get_multisig_blinded_secret_key (const crypto::secret_key &key) |
| void | cryptonote::generate_multisig_N_N (const account_keys &keys, const std::vector< crypto::public_key > &spend_keys, std::vector< crypto::secret_key > &multisig_keys, rct::key &spend_skey, rct::key &spend_pkey) |
| void | cryptonote::generate_multisig_N1_N (const account_keys &keys, const std::vector< crypto::public_key > &spend_keys, std::vector< crypto::secret_key > &multisig_keys, rct::key &spend_skey, rct::key &spend_pkey) |
| std::vector< crypto::public_key > | cryptonote::generate_multisig_derivations (const account_keys &keys, const std::vector< crypto::public_key > &derivations) |
| generate_multisig_derivations performs common DH key derivation. Each middle round in M/N scheme is DH exchange of public multisig keys of other participants multiplied by secret spend key of current participant. this functions does the following: new multisig key = secret spend * public multisig key More... | |
| crypto::secret_key | cryptonote::calculate_multisig_signer_key (const std::vector< crypto::secret_key > &multisig_keys) |
| std::vector< crypto::secret_key > | cryptonote::calculate_multisig_keys (const std::vector< crypto::public_key > &derivations) |
| calculate_multisig_keys. Calculates secret multisig keys from others' participants ones as follows: mi = H(Mi) More... | |
| crypto::secret_key | cryptonote::generate_multisig_view_secret_key (const crypto::secret_key &skey, const std::vector< crypto::secret_key > &skeys) |
| crypto::public_key | cryptonote::generate_multisig_M_N_spend_public_key (const std::vector< crypto::public_key > &pkeys) |
| generate_multisig_M_N_spend_public_key calculates multisig wallet's spend public key by summing all of public multisig keys More... | |
| bool | cryptonote::generate_multisig_key_image (const account_keys &keys, size_t multisig_key_index, const crypto::public_key &out_key, crypto::key_image &ki) |
| void | cryptonote::generate_multisig_LR (const crypto::public_key pkey, const crypto::secret_key &k, crypto::public_key &L, crypto::public_key &R) |
| bool | cryptonote::generate_multisig_composite_key_image (const account_keys &keys, const std::unordered_map< crypto::public_key, subaddress_index > &subaddresses, const crypto::public_key &out_key, const crypto::public_key &tx_public_key, const std::vector< crypto::public_key > &additional_tx_public_keys, size_t real_output_index, const std::vector< crypto::key_image > &pkis, crypto::key_image &ki) |
| uint32_t | cryptonote::multisig_rounds_required (uint32_t participants, uint32_t threshold) |
Variables | |
| static const rct::key | multisig_salt = { {'M', 'u', 'l', 't' , 'i', 's', 'i', 'g', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } |
| #define ELECTRONEUM_DEFAULT_LOG_CATEGORY "multisig" |