run method

Future<void> run()

Implementation

Future<void> run() async {
  final valid = vector.valid;
  final proof = await verifier.verify(valid);
  if ((proof.signedResponseId != valid.responseId &&
          proof.signedAssertionId != valid.assertionId) ||
      (proof.signedResponseId != null &&
          proof.signedResponseId != valid.responseId) ||
      (proof.signedAssertionId != null &&
          proof.signedAssertionId != valid.assertionId)) {
    throw const AuthSamlVerifierConformanceFailure(
      'valid.exact-reference-binding',
      'Verifier did not bind the expected consumed element.',
    );
  }
  for (final entry in vector.hostile.entries) {
    try {
      await verifier.verify(entry.value);
    } catch (_) {
      continue;
    }
    throw AuthSamlVerifierConformanceFailure(
      'hostile.${entry.key}',
      'Verifier accepted a hostile XMLDSig vector.',
    );
  }
}