arnaucube
arnaucube/ark-r1cs-stdPublic Self-hosted repository
add to_bits_be
oblivious-app 55861861+oblivious-app@users.noreply.github.com
Fri, 18 Sep 2020 00:27:17 -0700
commit

d087166c51f2452aa0544b4bc74253bdef7a6aec

parent

2a8ee871d81ed384d3f276202a857587b402518c

1 files changed, 15 insertions(+), 1 deletions(-)

jump to
M r1cs-std/src/bits/mod.rs → r1cs-std/src/bits/mod.rs

@@ -25,12 +25,26 @@ ///

/// This is the correct default for 99% of use cases. fn to_bits_le(&self) -> Result<Vec<Boolean<F>>, SynthesisError>; - /// Outputs a possibly non-unique bit-wise representation of `self`. + /// Outputs a possibly non-unique little-endian bit-wise representation of `self`. /// /// If you're not absolutely certain that your usecase can get away with a /// non-canonical representation, please use `self.to_bits()` instead. fn to_non_unique_bits_le(&self) -> Result<Vec<Boolean<F>>, SynthesisError> { self.to_bits_le() + } + + /// Outputs the canonical big-endian bit-wise representation of `self`. + fn to_bits_be(&self) -> Result<Vec<Boolean<F>>, SynthesisError> { + let mut res = self.to_bits_le()?; + res.reverse(); + Ok(res) + } + + /// Outputs a possibly non-unique big-endian bit-wise representation of `self`. + fn to_non_unique_bits_be(&self) -> Result<Vec<Boolean<F>>, SynthesisError> { + let mut res = self.to_non_unique_bits_le()?; + res.reverse(); + Ok(res) } }