BitShares-Core  5.0.0
BitShares blockchain implementation and command-line interface software
Classes | Namespaces | Typedefs | Functions
elliptic.hpp File Reference
#include <fc/container/zeroed_array.hpp>
#include <fc/crypto/bigint.hpp>
#include <fc/crypto/openssl.hpp>
#include <fc/crypto/sha256.hpp>
#include <fc/crypto/sha512.hpp>
#include <fc/fwd.hpp>
#include <fc/io/raw_fwd.hpp>
#include <array>
#include <fc/reflect/reflect.hpp>

Go to the source code of this file.

Classes

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

Namespaces

 fc
 
 fc::ecc
 
 fc::ecc::detail
 
 fc::raw
 

Typedefs

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

Functions

commitment_type fc::ecc::blind (const blind_factor_type &blind, uint64_t value)
 
blind_factor_type fc::ecc::blind_sum (const std::vector< blind_factor_type > &blinds, uint32_t non_neg)
 
bool fc::ecc::verify_sum (const std::vector< commitment_type > &commits, const std::vector< commitment_type > &neg_commits, int64_t excess)
 
bool fc::ecc::verify_range (uint64_t &min_val, uint64_t &max_val, const commitment_type &commit, const range_proof_type &proof)
 
range_proof_type 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)
 
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)
 
range_proof_info fc::ecc::range_get_info (const range_proof_type &proof)
 
void fc::to_variant (const ecc::private_key &var, variant &vo, uint32_t max_depth)
 
void fc::from_variant (const variant &var, ecc::private_key &vo, uint32_t max_depth)
 
void fc::to_variant (const ecc::public_key &var, variant &vo, uint32_t max_depth)
 
void fc::from_variant (const variant &var, ecc::public_key &vo, uint32_t max_depth)
 
template<typename Stream >
void fc::raw::unpack (Stream &s, fc::ecc::public_key &pk, uint32_t _max_depth)
 
template<typename Stream >
void fc::raw::pack (Stream &s, const fc::ecc::public_key &pk, uint32_t _max_depth)
 
template<typename Stream >
void fc::raw::unpack (Stream &s, fc::ecc::private_key &pk, uint32_t _max_depth)
 
template<typename Stream >
void fc::raw::pack (Stream &s, const fc::ecc::private_key &pk, uint32_t _max_depth)