Exemplo n.º 1
0
        static SignerHelper()
        {
            var localFileLoader = DependencyService.Get <IResourceLoader>();

            using (Stream streamXslt = localFileLoader.OpenFile("PA_AD_RA_v2_3.xml"))
            {
                byte[] policyFileData = StreamHelper.StreamToByteArray(streamXslt);
                policy = new PolicyIdentifier("http://politicas.icpbrasil.gov.br/PA_AD_RA_v2_3.xml", policyFileData, "qipT2sA6/iY9Z14EeVBdoiDWxdqsu5WEuY23mxbADmE=");
            }
        }
Exemplo n.º 2
0
        public void Sign(Stream xml, Stream signature, string signedElementXPath, X509Certificate certificate, AsymmetricKeyParameter key, PolicyIdentifier policyId)
        {
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.PreserveWhitespace = true;
            xmlDoc.Load(xml);

            XAdESSignedXml signedXML = new XAdESSignedXml(xmlDoc);

            signedXML.SigningKey = key;

            signedXML.SignedInfo.SignatureMethod = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";
            signedXML.Certificate        = certificate;
            signedXML.SignedElementXPath = signedElementXPath;
            signedXML.PolicyId           = policyId;
            signedXML.SignedInfo.CanonicalizationMethod = "http://www.w3.org/2001/10/xml-exc-c14n#";

            signedXML.ComputeXAdESSignature();

            XmlElement xmlDigitalSignature = signedXML.GetXml();

            //xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true));

            XmlTextWriter wr = new XmlTextWriter(signature, Encoding.UTF8);

            wr.Formatting = Formatting.None;
            xmlDigitalSignature.WriteTo(wr);
            wr.Flush();
            signature.Position = 0;
        }