BitShares-Core  5.0.0
BitShares blockchain implementation and command-line interface software
Namespaces | Classes | Typedefs | Functions
fc::ecc Namespace Reference

Namespaces

 detail
 

Classes

class  extended_private_key
 
class  extended_public_key
 
class  private_key
 an elliptic curve private key. More...
 
class  public_key
 contains only the public point of an elliptic curve key. More...
 
struct  range_proof_info
 

Typedefs

typedef fc::sha256 blind_factor_type
 
typedef zero_initialized_array< unsigned char, 33 > commitment_type
 
typedef zero_initialized_array< unsigned char, 33 > public_key_data
 
typedef fc::sha256 private_key_secret
 
typedef zero_initialized_array< unsigned char, 65 > public_key_point_data
 the full non-compressed version of the ECC point More...
 
typedef zero_initialized_array< unsigned char, 72 > signature
 
typedef zero_initialized_array< unsigned char, 65 > compact_signature
 
typedef std::vector< char > range_proof_type
 
typedef zero_initialized_array< unsigned char, 78 > extended_key_data
 

Functions

commitment_type blind (const blind_factor_type &blind, uint64_t value)
 
blind_factor_type blind_sum (const std::vector< blind_factor_type > &blinds, uint32_t non_neg)
 
bool verify_sum (const std::vector< commitment_type > &commits, const std::vector< commitment_type > &neg_commits, int64_t excess)
 
bool verify_range (uint64_t &min_val, uint64_t &max_val, const commitment_type &commit, const range_proof_type &proof)
 
range_proof_type range_proof_sign (uint64_t min_value, const commitment_type &commit, const blind_factor_type &commit_blind, const blind_factor_type &nonce, int8_t base10_exp, uint8_t min_bits, uint64_t actual_value)
 
bool verify_range_proof_rewind (blind_factor_type &blind_out, uint64_t &value_out, string &message_out, const blind_factor_type &nonce, uint64_t &min_val, uint64_t &max_val, commitment_type commit, const range_proof_type &proof)
 
range_proof_info range_get_info (const range_proof_type &proof)
 

Typedef Documentation

Definition at line 21 of file elliptic.hpp.

Definition at line 22 of file elliptic.hpp.

Definition at line 27 of file elliptic.hpp.

Definition at line 29 of file elliptic.hpp.

Definition at line 24 of file elliptic.hpp.

Definition at line 23 of file elliptic.hpp.

the full non-compressed version of the ECC point

Definition at line 25 of file elliptic.hpp.

typedef std::vector<char> fc::ecc::range_proof_type

Definition at line 28 of file elliptic.hpp.

typedef zero_initialized_array<unsigned char,72> fc::ecc::signature

Definition at line 26 of file elliptic.hpp.

Function Documentation

commitment_type fc::ecc::blind ( const blind_factor_type blind,
uint64_t  value 
)

Definition at line 208 of file elliptic_secp256k1.cpp.

blind_factor_type fc::ecc::blind_sum ( const std::vector< blind_factor_type > &  blinds,
uint32_t  non_neg 
)

Definition at line 215 of file elliptic_secp256k1.cpp.

range_proof_info fc::ecc::range_get_info ( const range_proof_type proof)

Definition at line 291 of file elliptic_secp256k1.cpp.

std::vector< char > fc::ecc::range_proof_sign ( uint64_t  min_value,
const commitment_type commit,
const blind_factor_type commit_blind,
const blind_factor_type nonce,
int8_t  base10_exp,
uint8_t  min_bits,
uint64_t  actual_value 
)

Definition at line 240 of file elliptic_secp256k1.cpp.

bool fc::ecc::verify_range ( uint64_t &  min_val,
uint64_t &  max_val,
const commitment_type commit,
const range_proof_type proof 
)

Definition at line 235 of file elliptic_secp256k1.cpp.

bool fc::ecc::verify_range_proof_rewind ( blind_factor_type blind_out,
uint64_t &  value_out,
string &  message_out,
const blind_factor_type nonce,
uint64_t &  min_val,
uint64_t &  max_val,
commitment_type  commit,
const range_proof_type proof 
)

Definition at line 264 of file elliptic_secp256k1.cpp.

bool fc::ecc::verify_sum ( const std::vector< commitment_type > &  commits_in,
const std::vector< commitment_type > &  neg_commits_in,
int64_t  excess 
)

verifies taht commnits + neg_commits + excess == 0

Definition at line 225 of file elliptic_secp256k1.cpp.