mirror of
https://github.com/pezkuwichain/bizinikiwi-bn.git
synced 2026-06-12 15:51:04 +00:00
Don't perform field inverse/squaring during affine conversion if point is already in affine.
This commit is contained in:
@@ -112,6 +112,11 @@ impl<P: GroupParams> G<P> {
|
||||
pub fn to_affine(&self) -> Option<AffineG<P>> {
|
||||
if self.z.is_zero() {
|
||||
None
|
||||
} else if self.z == P::Base::one() {
|
||||
Some(AffineG {
|
||||
x: self.x,
|
||||
y: self.y
|
||||
})
|
||||
} else {
|
||||
let zinv = self.z.inverse().unwrap();
|
||||
let zinv_squared = zinv.squared();
|
||||
|
||||
@@ -35,6 +35,7 @@ fn group_serialization_and_deserialization() {
|
||||
a = a * b;
|
||||
|
||||
assert!(reserialize(a) == a);
|
||||
assert!(reserialize(reserialize(a)) == a);
|
||||
}
|
||||
|
||||
let mut a = G2::one();
|
||||
@@ -42,6 +43,7 @@ fn group_serialization_and_deserialization() {
|
||||
a = a * b;
|
||||
|
||||
assert!(reserialize(a) == a);
|
||||
assert!(reserialize(reserialize(a)) == a);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user