Exemplo n.º 1
0
 public async Task LoadCertificatesAsync(OstcListeListe certList)
 {
     var sender = new OstcSender(SenderId.FromBnr("99300006"), "Test");
     var cred = new NetworkCredential("dataline", "a5pY_4cm");
     var client = new OstcClient(sender, Network.Base.Test, cred, new OstcClientInfo("Dataline", "Dataline Office", 21412))
     {
         OstcExtraValidatorFactory = OstcExtraValidator.Factory
     };
     var certs = await client.DownloadCertificateListAsync(certList);
     Assert.NotNull(certs);
     Assert.NotEqual(0, certs.Count);
 }
Exemplo n.º 2
0
        public async Task LoadCertificatesAsync(OstcListeListe certList)
        {
            var sender = new OstcSender(SenderId.FromBnr("99300006"), "Test");
            var cred   = new NetworkCredential("dataline", "a5pY_4cm");
            var client = new OstcClient(sender, Network.Base.Test, cred, new OstcClientInfo("Dataline", "Dataline Office", 21412))
            {
                OstcExtraValidatorFactory = OstcExtraValidator.Factory
            };
            var certs = await client.DownloadCertificateListAsync(certList);

            Assert.NotNull(certs);
            Assert.NotEqual(0, certs.Count);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Herunterladen der Zertifikat-Liste
        /// </summary>
        /// <param name="list">Zertifikat-Liste die zu Laden ist</param>
        /// <returns>Zertifikat-Liste</returns>
        public async Task<IReadOnlyList<X509Certificate>> DownloadCertificateListAsync(OstcListeListe list)
        {
            var query = new OstcListe
            {
                Liste = list
            };
            var queryData = OstcUtils.Serialize(query, Encoding.UTF8);
            
            ValidateData(queryData, OstcMessageType.ListData);

            var now = DateTime.Now;
            now = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, DateTimeKind.Local).ToUniversalTime();
            var message = new TransportRequestType()
            {
                version = SupportedVersionsType.Item11,
                profile = ExtraProfileOstc,
                TransportHeader = CreateRequestHeader(now, OstcDataType.ListRequest, ExtraScenario.RequestWithResponse),
                TransportBody = new TransportRequestBodyType
                {
                    Items = new object[]
                    {
                        new DataType 
                        {
                            Item = new Base64CharSequenceType()
                            {
                                Value = queryData,
                            },
                        },
                    },
                },
            };

            ValidateRequest(message, OstcMessageType.List);

            var messageData = OstcExtraSerializer.Utf8.Serialize(message);
            var request = CreateRequest(Network.Requests.ListRequest);
            using (var requestStream = await Task.Factory.FromAsync(request.BeginGetRequestStream, request.EndGetRequestStream, null))
            {
                requestStream.Write(messageData, 0, messageData.Length);
            }

            using (var response = await Task.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, null))
            {
                var serializer = new XmlSerializer(typeof(TransportResponseType));
                var responseData = (TransportResponseType)serializer.Deserialize(response.GetResponseStream());

                var flags = responseData.TransportHeader.GetFlags().ToList();
                if (flags.Any(x => x.weight == ExtraFlagWeight.Error))
                    throw new Ostc2Exception(flags);

                var data = ((Base64CharSequenceType)((DataType)responseData.TransportBody.Items[0]).Item).Value;
                var result = OstcUtils.ReadCertificates(new MemoryStream(data));
                return result;
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Herunterladen der Zertifikat-Liste
        /// </summary>
        /// <param name="list">Zertifikat-Liste die zu Laden ist</param>
        /// <returns>Zertifikat-Liste</returns>
        public async Task <IReadOnlyList <X509Certificate> > DownloadCertificateListAsync(OstcListeListe list)
        {
            var query = new OstcListe
            {
                Liste = list
            };
            var queryData = OstcUtils.Serialize(query, Encoding.UTF8);

            ValidateData(queryData, OstcMessageType.ListData);

            var now = DateTime.Now;

            now = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, DateTimeKind.Local).ToUniversalTime();
            var message = new TransportRequestType()
            {
                version         = SupportedVersionsType.Item11,
                profile         = ExtraProfileOstc,
                TransportHeader = CreateRequestHeader(now, OstcDataType.ListRequest, ExtraScenario.RequestWithResponse),
                TransportBody   = new TransportRequestBodyType
                {
                    Items = new object[]
                    {
                        new DataType
                        {
                            Item = new Base64CharSequenceType()
                            {
                                Value = queryData,
                            },
                        },
                    },
                },
            };

            ValidateRequest(message, OstcMessageType.List);

            var messageData = OstcExtraSerializer.Utf8.Serialize(message);
            var request     = CreateRequest(Network.Requests.ListRequest);

            using (var requestStream = await Task.Factory.FromAsync(request.BeginGetRequestStream, request.EndGetRequestStream, null))
            {
                requestStream.Write(messageData, 0, messageData.Length);
            }

            using (var response = await Task.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, null))
            {
                var serializer   = new XmlSerializer(typeof(TransportResponseType));
                var responseData = (TransportResponseType)serializer.Deserialize(response.GetResponseStream());

                var flags = responseData.TransportHeader.GetFlags().ToList();
                if (flags.Any(x => x.weight == ExtraFlagWeight.Error))
                {
                    throw new Ostc2Exception(flags);
                }

                var data   = ((Base64CharSequenceType)((DataType)responseData.TransportBody.Items[0]).Item).Value;
                var result = OstcUtils.ReadCertificates(new MemoryStream(data));
                return(result);
            }
        }