private static void Verify(IKsiSignature signature, DataHash dataHash) { IVerificationContext context = new VerificationContext() { Signature = signature, DocumentHash = dataHash }; VerificationResult result = new InternalVerificationPolicy().Verify(context); Assert.AreEqual(VerificationResultCode.Ok, result.ResultCode, "Unexpected verification result"); }
private static void Verify(IKsiSignature signature) { Assert.IsTrue(signature.IsExtended, ""); IVerificationContext context = new VerificationContext() { Signature = signature, }; VerificationResult result = new InternalVerificationPolicy().Verify(context); Assert.AreEqual(VerificationResultCode.Ok, result.ResultCode, "Unexpected verification result"); }
public void AsyncSignHashTest(KsiService service) { byte[] data = Encoding.UTF8.GetBytes("This is my document"); IDataHasher dataHasher = KsiProvider.CreateDataHasher(); dataHasher.AddData(data); DataHash dataHash = dataHasher.GetHash(); ManualResetEvent waitHandle = new ManualResetEvent(false); IKsiSignature signature = null; object testObject = new object(); bool isAsyncStateCorrect = false; service.BeginSign(dataHash, delegate(IAsyncResult ar) { try { isAsyncStateCorrect = ar.AsyncState == testObject; signature = service.EndSign(ar); } catch (Exception ex) { Assert.Fail("Unexpected exception: " + ex); } finally { waitHandle.Set(); } }, testObject); Assert.IsTrue(waitHandle.WaitOne(10000), "Wait handle timed out."); Assert.IsNotNull(signature, "Signature should not be null."); Assert.AreEqual(true, isAsyncStateCorrect, "Unexpected async state."); VerificationContext verificationContext = new VerificationContext(signature) { DocumentHash = dataHash }; InternalVerificationPolicy policy = new InternalVerificationPolicy(); VerificationResult verificationResult = policy.Verify(verificationContext); Assert.AreEqual(VerificationResultCode.Ok, verificationResult.ResultCode, "Signature should verify with internal policy"); }
private static void CreateSignatureWithAggregationChainAndVerify(IKsiSignature signature, DataHash inputHash, AggregationHashChain.Link[] links, string expectedVerificationErrorCode = null) { IKsiSignature newSignature = new KsiSignatureFactory( new EmptyVerificationPolicy()).CreateSignatureWithAggregationChain(signature, inputHash, HashAlgorithm.Sha2256, links); VerificationResult result = new InternalVerificationPolicy().Verify(new VerificationContext(newSignature) { DocumentHash = inputHash }); if (string.IsNullOrEmpty(expectedVerificationErrorCode)) { Assert.AreEqual(VerificationResultCode.Ok, result.ResultCode, "Unexpected verification result"); } else { Assert.AreEqual(VerificationResultCode.Fail, result.ResultCode, "Unexpected verification result"); Assert.AreEqual(expectedVerificationErrorCode, result.VerificationError.Code, "Unexpected verification error code"); } }