/// <summary> /// Verification exception on missing KSI signature /// </summary> public void TestContextMissingSignature(TestVerificationContext context) { KsiVerificationException ex = Assert.Throws <KsiVerificationException>(delegate { Rule.Verify(context); }, "Exception expected but non thrown. Rule: " + Rule); Assert.That(ex.Message, Does.StartWith("Invalid KSI signature in context: null"), "Unexpected exception message. Rule: " + Rule); }
public void VerifyWithoutSignature() { KsiVerificationException ex = Assert.Throws <KsiVerificationException>(delegate { new DefaultVerificationPolicy().Verify(new VerificationContext()); }); Assert.That(ex.Message, Does.StartWith("Invalid KSI signature in context: null")); }
/// <summary> /// Verification exception on missing publications file /// </summary> public void TestContextMissingUserPublication(IKsiSignature signature = null) { TestVerificationContext context = new TestVerificationContext(signature ?? TestUtil.GetSignature()); KsiVerificationException ex = Assert.Throws <KsiVerificationException>(delegate { Rule.Verify(context); }); Assert.That(ex.Message, Does.StartWith("Invalid user publication in context: null")); }
/// <summary> /// Verification exception on missing publications file /// </summary> public void TestContextMissingPublicationsFile(IKsiSignature signature = null) { TestVerificationContext context = new TestVerificationContext(signature ?? TestUtil.GetSignature(Resources.KsiSignature_Ok_With_Publication_Record)); KsiVerificationException ex = Assert.Throws <KsiVerificationException>(delegate { Rule.Verify(context); }); Assert.That(ex.Message, Does.StartWith("Invalid publications file in context: null")); }
private VerificationResult DoVerification(IVerificationContext context, bool writeLog = true) { VerificationRule verificationRule = FirstRule; List <VerificationResult> verificationResults = new List <VerificationResult>(); try { while (verificationRule != null) { VerificationPolicy policy = verificationRule as VerificationPolicy; VerificationResult result = policy != null?policy.DoVerification(context, false) : verificationRule.Verify(context); verificationResults.Add(result); verificationRule = verificationRule.NextRule(result.ResultCode); } } catch (Exception e) { KsiVerificationException ksiVerificationException = e as KsiVerificationException; VerificationResult resultFromException = ksiVerificationException?.VerificationResult; // if inner policy has thrown an exception and verification result is set within the exception then add this result to result list. // otherwise add a new result. verificationResults.Add(resultFromException ?? new VerificationResult(verificationRule?.GetRuleName(), VerificationResultCode.Na)); VerificationResult result = new VerificationResult(GetRuleName(), verificationResults); // write log only when topmost policy if (writeLog) { Logger.Warn("Error occured on rule {0}: {1}{2}{3}", verificationRule?.GetRuleName(), e, Environment.NewLine, result); throw; } if (resultFromException != null) { ksiVerificationException.VerificationResult = result; throw ksiVerificationException; } throw new KsiVerificationException(e.Message, e) { VerificationResult = result }; } VerificationResult verificationResult = new VerificationResult(GetRuleName(), verificationResults); // write log only when topmost policy if (writeLog) { Logger.Debug(Environment.NewLine + verificationResult); } return(verificationResult); }
public void VerifyWithoutSignatureInContext() { KsiVerificationException ex = Assert.Throws <KsiVerificationException>(delegate { // no signature in context VerificationContext context = new VerificationContext(); Policy.Verify(context); }); Assert.That(ex.Message, Does.StartWith("Invalid KSI signature in context: null")); }
public void VerifyWithoutKsiService() { KsiVerificationException ex = Assert.Throws <KsiVerificationException>(delegate { new DefaultVerificationPolicy().Verify(new VerificationContext(TestUtil.GetSignature()) { IsExtendingAllowed = true, PublicationsFile = GetHttpKsiService().GetPublicationsFile() }); }); Assert.That(ex.Message, Does.StartWith("Invalid KSI service in context: null")); }
public void VerifyWithoutPublicationsInContext() { KsiVerificationException ex = Assert.Throws <KsiVerificationException>(delegate { // no publications file in context Policy.Verify(new VerificationContext() { Signature = TestUtil.GetSignature(Resources.KsiSignature_Ok_Extended), }); }); Assert.That(ex.Message, Does.StartWith("Invalid publications file in context: null")); }