public void HASignWithPayloadResponseAndWaitTest()
        {
            IKsiService haService =
                new HAKsiService(
                    new List <IKsiService>()
            {
                GetStaticKsiService(File.ReadAllBytes(Path.Combine(TestSetup.LocalPath, Resources.KsiService_AggregationResponsePdu_RequestId_1584727637)), 1584727638),
                GetStaticKsiService(File.ReadAllBytes(Path.Combine(TestSetup.LocalPath, Resources.KsiService_AggregationResponsePdu_RequestId_1584727637)), 1584727637),
                GetStaticKsiService(File.ReadAllBytes(Path.Combine(TestSetup.LocalPath, Resources.KsiService_AggregationResponsePdu_RequestId_1584727637)), 1584727637)
            },
                    null, null);

            IAsyncResult ar = haService.BeginSign(new DataHash(Base16.Decode("019f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08")), null, null);
            SignRequestResponsePayload payload = haService.GetSignResponsePayload(ar);

            Assert.IsNotNull(payload, "Sign request response payload cannot be null.");
        }
Beispiel #2
0
        private KsiSignature CreateFromResponsePayload(SignRequestResponsePayload payload, ulong requestId, DataHash hash, uint?level)
        {
            try
            {
                Logger.Debug("Creating KSI signature from aggregation response. (request id: {0})", requestId);

                KsiSignature signature = new KsiSignature(false, false, payload.GetSignatureChildTags());

                if (level > 0)
                {
                    signature = CreateSignatureWithLevelCorrection(signature, level.Value);
                }

                Verify(signature, hash);

                Logger.Debug("Creating KSI signature from aggregation response successful. (request id: {0})", requestId);
                return(signature);
            }
            catch (TlvException e)
            {
                Logger.Warn("Creating KSI signature from aggregation response failed: {0} (request id: {1})", e, requestId);
                throw;
            }
        }