lib/bls/pairing.rb in bls12-381-0.2.0 vs lib/bls/pairing.rb in bls12-381-0.2.1

- old
+ new

@@ -5,11 +5,14 @@ # @param [BLS::PointG1] p # @param [BLS::PointG2] q # @param [Boolean] with_final_exp # @return [BLS::Fq12] - # @return [BLS::PairingError] Occur when p.zero? or q.zero? + # @raise [BLS::PairingError] Occur when p.zero? or q.zero? + # @raise [ArgumentError] def pairing(p, q, with_final_exp: true) + raise ArgumentError, 'p should be BLS::PointG1 object' unless p.is_a?(BLS::PointG1) + raise ArgumentError, 'q should be BLS::PointG2 object' unless q.is_a?(BLS::PointG2) raise PairingError, 'No pairings at point of Infinity' if p.zero? || q.zero? p.validate! q.validate! looped = p.miller_loop(q)