(
&self,
revealed_msgs: &BTreeMap<usize, E::ScalarField>,
challenge: &E::ScalarField,
pk: impl Into<PreparedPublicKeyG2<E>>,
params: impl Into<PreparedSignature
| 420 | } |
| 421 | |
| 422 | pub fn _verify( |
| 423 | &self, |
| 424 | revealed_msgs: &BTreeMap<usize, E::ScalarField>, |
| 425 | challenge: &E::ScalarField, |
| 426 | pk: impl Into<PreparedPublicKeyG2<E>>, |
| 427 | params: impl Into<PreparedSignatureParams23G1<E>>, |
| 428 | missing_responses: Option<BTreeMap<usize, E::ScalarField>>, |
| 429 | ) -> Result<(), BBSPlusError> { |
| 430 | let params = params.into(); |
| 431 | let g1 = params.g1; |
| 432 | let g2 = params.g2; |
| 433 | let h = params.h; |
| 434 | self.verify_except_pairings(revealed_msgs, challenge, g1, h, missing_responses)?; |
| 435 | |
| 436 | // Verify the randomized signature |
| 437 | if !E::multi_pairing( |
| 438 | [ |
| 439 | E::G1Prepared::from(self.A_bar), |
| 440 | E::G1Prepared::from(-(self.B_bar.into_group())), |
| 441 | ], |
| 442 | [pk.into().0, g2], |
| 443 | ) |
| 444 | .is_zero() |
| 445 | { |
| 446 | return Err(BBSPlusError::PairingCheckFailed); |
| 447 | } |
| 448 | Ok(()) |
| 449 | } |
| 450 | |
| 451 | pub fn _verify_with_randomized_pairing_checker( |
| 452 | &self, |
no test coverage detected