defining new api calls
This commit is contained in:
parent
1bbb748c4e
commit
68410f35fe
1 changed files with 42 additions and 0 deletions
|
|
@ -16,6 +16,8 @@ namespace fc {
|
||||||
class private_key_impl;
|
class private_key_impl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef fc::sha256 blind_factor_type;
|
||||||
|
typedef fc::array<char,33> commitment_type;
|
||||||
typedef fc::array<char,33> public_key_data;
|
typedef fc::array<char,33> public_key_data;
|
||||||
typedef fc::sha256 private_key_secret;
|
typedef fc::sha256 private_key_secret;
|
||||||
typedef fc::array<char,65> public_key_point_data; ///< the full non-compressed version of the ECC point
|
typedef fc::array<char,65> public_key_point_data; ///< the full non-compressed version of the ECC point
|
||||||
|
|
@ -134,6 +136,45 @@ namespace fc {
|
||||||
static fc::sha256 get_secret( const EC_KEY * const k );
|
static fc::sha256 get_secret( const EC_KEY * const k );
|
||||||
fc::fwd<detail::private_key_impl,32> my;
|
fc::fwd<detail::private_key_impl,32> my;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct range_proof_info
|
||||||
|
{
|
||||||
|
uint8_t exp;
|
||||||
|
uint8_t mantissa;
|
||||||
|
uint64_t min_value;
|
||||||
|
uint64_t max_value;
|
||||||
|
std::vector<char> proof;
|
||||||
|
};
|
||||||
|
|
||||||
|
commitment_type blind( const blind_factor_type& blind, uint64_t value );
|
||||||
|
commitment_type blind_sum( const std::vector<blind_factor_type>& blinds, uint32_t non_neg );
|
||||||
|
/** verifies taht commnits + neg_commits + excess == 0 */
|
||||||
|
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 std::vector<char>& proof );
|
||||||
|
|
||||||
|
std::vector<char> range_proof_sign( uint64_t min_value,
|
||||||
|
const commitment_type& commit,
|
||||||
|
const blind_factor_type& commit_blind,
|
||||||
|
const blind_factor_type& nonce,
|
||||||
|
uint8_t base10_exp,
|
||||||
|
uint8_t min_bits,
|
||||||
|
uint64_t actual_value
|
||||||
|
);
|
||||||
|
|
||||||
|
bool verify_range_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 std::vector<char>& proof );
|
||||||
|
range_proof_info range_get_info( const std::vector<char>& proof );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace ecc
|
} // namespace ecc
|
||||||
void to_variant( const ecc::private_key& var, variant& vo );
|
void to_variant( const ecc::private_key& var, variant& vo );
|
||||||
void from_variant( const variant& var, ecc::private_key& vo );
|
void from_variant( const variant& var, ecc::private_key& vo );
|
||||||
|
|
@ -177,3 +218,4 @@ namespace fc {
|
||||||
|
|
||||||
FC_REFLECT_TYPENAME( fc::ecc::private_key )
|
FC_REFLECT_TYPENAME( fc::ecc::private_key )
|
||||||
FC_REFLECT_TYPENAME( fc::ecc::public_key )
|
FC_REFLECT_TYPENAME( fc::ecc::public_key )
|
||||||
|
FC_REFLECT( fc::ecc::range_proof_info, (exp)(mantissa)(min_value)(max_value)(proof) )
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue