Advertisement
Guest User

e-deklaracje

a guest
Jan 19th, 2018
423
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.40 KB | None | 0 0
  1. public X509Certificate2 WybierzCertyfikat()
  2.         {
  3.             X509Store store = new X509Store(StoreLocation.CurrentUser);
  4.             store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
  5.             X509Certificate2Collection certificates = store.Certificates;
  6.             X509Certificate2Collection foundCertificates = certificates;
  7.             var selectedCertificates = X509Certificate2UI.SelectFromCollection(foundCertificates,
  8.             "Wybรณr certyfikatu", "Wybierz certyfkat do podpisywania", X509SelectionFlag.SingleSelection);
  9.             if (selectedCertificates.Count != 0)
  10.             {
  11.                 X509Certificate2 certificate = selectedCertificates[0];
  12.                 return certificate;
  13.             }
  14.             return null;
  15.         }
  16.         public void Podpisz(X509Certificate2 cert, string xmlDek, string xmlDekPodpisany)
  17.         {
  18.             if (cert != null)
  19.             {
  20.                 XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform();
  21.                 Reference reference = new Reference();
  22.                 RSACryptoServiceProvider rsaKey = (RSACryptoServiceProvider)cert.PrivateKey;
  23.                 var doc = new XmlDocument();
  24.                 doc.PreserveWhitespace = false;
  25.                 doc.Load(xmlDek);
  26.                 var xadesSignedXml = new XadesSignedXml(doc);
  27.                 xadesSignedXml.Signature.Id = "";
  28.                 reference.Uri = "#SignedProperties-0";
  29.                 reference.Id = "SignedProperties-Reference0";
  30.                 reference.Type = @"http://uri.etsi.org/01903#SignedProperties";
  31.                 xadesSignedXml.SignedInfo.Id = "SignedInfo-0";
  32.                 xadesSignedXml.AddReference(reference);
  33.                 xadesSignedXml.SigningKey = rsaKey;
  34.                 KeyInfo keyInfo = new KeyInfo();
  35.                 keyInfo.Id = "KeyInfo-0";
  36.                 keyInfo.AddClause(new KeyInfoX509Data(cert));
  37.                 xadesSignedXml.KeyInfo = keyInfo;
  38.                 xadesSignedXml.Signature.Id = "Signature-0";
  39.                 xadesSignedXml.SignatureValueId = "SignatureValue-0";
  40.                 XadesObject xadesObject = new XadesObject();
  41.                 Cert certificate = new Cert();
  42.                 certificate.IssuerSerial.X509IssuerName = cert.IssuerName.Name;
  43.                 certificate.IssuerSerial.X509SerialNumber = cert.SerialNumber;
  44.                 SHA1 cryptoServiceProvider = new SHA1CryptoServiceProvider();
  45.                 certificate.CertDigest.DigestValue = cryptoServiceProvider.ComputeHash(cert.RawData);
  46.                 certificate.CertDigest.DigestMethod.Algorithm = SignedXml.XmlDsigSHA1Url;
  47.                 xadesObject.QualifyingProperties.Target = "#" + xadesSignedXml.Signature.Id;
  48.                 xadesObject.QualifyingProperties.SignedProperties.SignedSignatureProperties.SigningTime = DateTime.Now;
  49.                 xadesObject.QualifyingProperties.SignedProperties.Id = "SignedProperties-0";
  50.                 xadesObject.QualifyingProperties.SignedProperties.SignedSignatureProperties.SignaturePolicyIdentifier.SignaturePolicyImplied = false;
  51.                 xadesObject.QualifyingProperties.SignedProperties.SignedSignatureProperties.SigningCertificate.CertCollection.Add(certificate);
  52.                 xadesSignedXml.AddXadesObject(xadesObject);
  53.                 var data = new System.Security.Cryptography.Xml.DataObject("Dokument-0", "text/xml", "UTF-8", doc.DocumentElement);
  54.                 xadesSignedXml.AddObject(data);
  55.                 xadesSignedXml.ComputeSignature();
  56.                 XadesCheckSignatureMasks composedMask = default(XadesCheckSignatureMasks);
  57.                 bool sigOk = xadesSignedXml.XadesCheckSignature(composedMask);
  58.                 if (sigOk)  File.WriteAllText(xmlDekPodpisany, xadesSignedXml.GetXml().OuterXml, Encoding.UTF8);
  59.             }
  60.         }
  61.  
  62.         GateServicePortTypeClient client = new GateServicePortTypeClient("GateServiceSOAP12port1");
  63.  
  64.         public sendDocumentResponse Wyslij(string xmlDekPodpisany)
  65.         {
  66.             sendDocument send = new sendDocument();
  67.             send.document = File.ReadAllBytes(xmlDekPodpisany);
  68.             var resDok = client.sendDocument(send);
  69.             return resDok;
  70.         }
  71.  
  72.         public requestUPOResponse PobierzUPO(string refId)
  73.         {
  74.             requestUPO reqUpo = new requestUPO();
  75.             reqUpo.refId = refId;
  76.             return client.requestUPO(reqUpo);
  77.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement