diff --git a/bls/bignum_pure.go b/bls/bignum_pure.go index 5b36554..75a397a 100644 --- a/bls/bignum_pure.go +++ b/bls/bignum_pure.go @@ -6,6 +6,7 @@ package bls import ( "crypto/rand" "math/big" + "errors" ) var _modulus big.Int @@ -107,8 +108,12 @@ func PowModFr(dst *Fr, a, b *Fr) { (*big.Int)(dst).Exp((*big.Int)(a), (*big.Int)(b), &_modulus) } -func InvModFr(dst *Fr, v *Fr) { +func InvModFr(dst *Fr, v *Fr) error { + if EqualZero(v) { + return errors.New("division by zero") + } (*big.Int)(dst).ModInverse((*big.Int)(v), &_modulus) + return nil } // BatchInvModFr computes the inverse for each input.