Example #1
0
        // Token: 0x06000B63 RID: 2915 RVA: 0x0002E5D4 File Offset: 0x0002C7D4
        public static void RemoveSignature(XmlDocument xmlDoc)
        {
            XmlElement signatureElement;

            if (SignedXMLVerifier.TryGetSignatureNode(xmlDoc, out signatureElement))
            {
                SignedXMLVerifier.TryRunAction <ArgumentException>(delegate()
                {
                    signatureElement.ParentNode.RemoveChild(signatureElement);
                });
            }
        }
Example #2
0
        // Token: 0x06000B62 RID: 2914 RVA: 0x0002E410 File Offset: 0x0002C610
        public static bool VerifySignedXml(XmlDocument xmlDoc)
        {
            XmlElement value;

            if (SignedXMLVerifier.TryGetSignatureNode(xmlDoc, out value))
            {
                SignedXml signedXml = new SignedXml(xmlDoc);
                signedXml.LoadXml(value);
                using (XmlNodeList elementsByTagName = signedXml.KeyInfo.GetXml().GetElementsByTagName("X509Certificate"))
                {
                    SignedXMLVerifier.< > c__DisplayClass2 CS$ < > 8__locals1 = new SignedXMLVerifier.< > c__DisplayClass2();
                    int num = 0;
                    X509Certificate2 x509Certificate = null;
                    CS$ < > 8__locals1.certificate = null;
                    using (IEnumerator enumerator = elementsByTagName.GetEnumerator())
                    {
                        while (enumerator.MoveNext())
                        {
                            SignedXMLVerifier.< > c__DisplayClass5 CS$ < > 8__locals2 = new SignedXMLVerifier.< > c__DisplayClass5();
                            CS$ < > 8__locals2.CS$ < > 8__locals3 = CS$ < > 8__locals1;
                            CS$ < > 8__locals2.node = (XmlNode)enumerator.Current;
                            if (!SignedXMLVerifier.TryRunAction <CryptographicException>(delegate()
                            {
                                CS$ < > 8__locals2.CS$ < > 8__locals3.certificate = new X509Certificate2(Encoding.ASCII.GetBytes(CS$ < > 8__locals2.node.InnerText));
                            }))
                            {
                                return(false);
                            }
                            X509Chain chain = new X509Chain();
                            if (!SignedXMLVerifier.TryRunAction <ArgumentException, CryptographicException>(delegate()
                            {
                                chain.Build(CS$ < > 8__locals1.certificate);
                            }))
                            {
                                return(false);
                            }
                            if (chain.ChainElements.Count > num)
                            {
                                x509Certificate = CS$ < > 8__locals1.certificate;
                                num             = chain.ChainElements.Count;
                            }
                        }
                    }
                    if (x509Certificate != null && !SignedXMLVerifier.ValidateCertificateChain(x509Certificate, SignedXMLVerifier.GetSigningTime(xmlDoc)))
                    {
                        return(false);
                    }
                    return(signedXml.CheckSignature());
                }
                return(false);
            }
            return(false);
        }