zkSNARK: Foundations of circuit design and verification logic.

This commit is contained in:
Sean Bowe
2016-05-04 18:25:45 -06:00
parent 369df06583
commit 074eb3a2cf
3 changed files with 148 additions and 10 deletions

View File

@@ -0,0 +1,29 @@
std::vector<bool> uint256_to_bool_vector(uint256 input) {
std::vector<unsigned char> input_v(input.begin(), input.end());
std::vector<bool> output_bv(256, 0);
libzerocash::convertBytesVectorToVector(
input_v,
output_bv
);
return output_bv;
}
std::vector<bool> uint64_to_bool_vector(uint64_t input) {
std::vector<unsigned char> num_bv(8, 0);
libzerocash::convertIntToBytesVector(input, num_bv);
std::vector<bool> num_v(64, 0);
libzerocash::convertBytesVectorToVector(num_bv, num_v);
return num_v;
}
void insert_uint256(std::vector<bool>& into, uint256 from) {
std::vector<bool> blob = uint256_to_bool_vector(from);
into.insert(into.end(), blob.begin(), blob.end());
}
void insert_uint64(std::vector<bool>& into, uint64_t from) {
std::vector<bool> num = uint64_to_bool_vector(from);
into.insert(into.end(), num.begin(), num.end());
}