Пример #1
0
        public void TestKsiSignatureExtendWithoutPublicationRecord()
        {
            IKsiSignature signature         = GetKsiSignatureFromFile(Resources.KsiSignature_Ok);
            IKsiSignature extendedSignature = signature.Extend(GetCalendarHashChain());

            Assert.True(extendedSignature.IsExtended, "IsExtended should be true.");
            Assert.AreEqual(1455494400, extendedSignature.PublicationRecord.PublicationData.PublicationTime, "Unexpected publication time");
            VerificationResult result = new DefaultVerificationPolicy().Verify(extendedSignature, null, TestUtil.GetPublicationsFile());

            Assert.AreEqual(VerificationResultCode.Ok, result.ResultCode, "Unexpected verification result code.");
        }
        public void Verify()
        {
            KsiService         ksiService = GetHttpKsiService();
            VerificationResult result     = new DefaultVerificationPolicy().Verify(new VerificationContext(TestUtil.GetSignature())
            {
                IsExtendingAllowed = true,
                KsiService         = ksiService,
                PublicationsFile   = ksiService.GetPublicationsFile()
            });

            Assert.AreEqual(VerificationResultCode.Ok, result.ResultCode, "Unexpected verification result");
        }
Пример #3
0
        public void TestKsiSignatureExtendWithPublicationRecordInSignature()
        {
            IKsiSignature signature = GetKsiSignatureFromFile(Resources.KsiSignature_Ok);
            PublicationRecordInSignature publicationRecord = new PublicationRecordInSignature(false, false, new ITlvTag[]
            {
                new PublicationData(1455494400, new DataHash(Base16.Decode("011878289E1A333DD85091D30F001B9F6F9ED4D428D57E049BD0EBD4DBC89BD210"))),
                new StringTag(Constants.PublicationRecord.PublicationRepositoryUriTagType, false, false, "Test uri (publication record in signature)")
            });

            IKsiSignature extendedSignature = signature.Extend(GetCalendarHashChain(), publicationRecord);

            Assert.True(extendedSignature.IsExtended, "IsExtended should be true.");
            Assert.AreEqual(1455494400, extendedSignature.PublicationRecord.PublicationData.PublicationTime, "Unexpected publication time");
            VerificationResult result = new DefaultVerificationPolicy().Verify(extendedSignature, null, TestUtil.GetPublicationsFile());

            Assert.AreEqual(VerificationResultCode.Ok, result.ResultCode, "Unexpected verification result code.");
            Assert.AreEqual("Test uri (publication record in signature)", extendedSignature.PublicationRecord.RepositoryUri[0], "Unexpected repository uri.");
        }
Пример #4
0
        public void TestKsiSignatureExtendWithPublicationRecordInPublicationsFile()
        {
            IKsiSignature signature = GetKsiSignatureFromFile(Resources.KsiSignature_Ok);

            byte[] publicationDataBytes =
                new PublicationData(1455494400, new DataHash(Base16.Decode("011878289E1A333DD85091D30F001B9F6F9ED4D428D57E049BD0EBD4DBC89BD210"))).Encode();
            byte[] uriTagBytes = new StringTag(Constants.PublicationRecord.PublicationRepositoryUriTagType, false, false, "Test uri (publication record in publications file)")
                                 .Encode();
            byte[] childBytes = new byte[publicationDataBytes.Length + uriTagBytes.Length];
            Array.Copy(publicationDataBytes, childBytes, publicationDataBytes.Length);
            Array.Copy(uriTagBytes, 0, childBytes, publicationDataBytes.Length, uriTagBytes.Length);
            PublicationRecordInPublicationFile publicationRecord =
                new PublicationRecordInPublicationFile(new RawTag(Constants.PublicationRecord.TagTypeInPublicationsFile, false, false, childBytes));

            IKsiSignature extendedSignature = signature.Extend(GetCalendarHashChain(), publicationRecord);

            Assert.True(extendedSignature.IsExtended, "IsExtended should be true.");
            Assert.AreEqual(1455494400, extendedSignature.PublicationRecord.PublicationData.PublicationTime, "Unexpected publication time");
            VerificationResult result = new DefaultVerificationPolicy().Verify(extendedSignature, null, TestUtil.GetPublicationsFile());

            Assert.AreEqual(VerificationResultCode.Ok, result.ResultCode, "Unexpected verification result code.");
            Assert.AreEqual("Test uri (publication record in publications file)", extendedSignature.PublicationRecord.RepositoryUri[0], "Unexpected repository uri.");
        }