Ejemplo n.º 1
0
 public bool Matches(X509Certificate2 certificate)
 {
     if (certificate == null)
     {
         return(false);
     }
     return(this.Matches(certificate.Issuer, Asn1IntegerConverter.Asn1IntegerToDecimalString(certificate.GetSerialNumber())));
 }
Ejemplo n.º 2
0
 public X509IssuerSerialKeyIdentifierClause(X509Certificate2 certificate) : base(null)
 {
     if (certificate == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("certificate");
     }
     this.issuerName         = certificate.Issuer;
     this.issuerSerialNumber = Asn1IntegerConverter.Asn1IntegerToDecimalString(certificate.GetSerialNumber());
 }
Ejemplo n.º 3
0
        /// <summary>
        ///   对XmlDocument执行解密
        /// </summary>
        /// <param name="doc"> XmlDocument对象 </param>
        /// <param name="cername"> 证书名称 </param>
        /// <param name="cersn"> 证书的序列号(已被Asn1IntegerConverter转换过的) </param>
        /// <param name="keyname"> 加密的标签名 </param>
        public static void DecryptDocument(XmlDocument doc, string cername, string cersn, string keyname)
        {
            X509Certificate2 x      = CertificateHelper.GetCertificate(StoreName.My, StoreLocation.LocalMachine, cername);
            string           thisSN = Asn1IntegerConverter.Asn1IntegerToDecimalString(x.GetSerialNumber());

            if (thisSN != cersn)
            {
                throw new Exception("无法分析文本");
            }
            EncryptedXml exml = new EncryptedXml(doc);

            exml.AddKeyNameMapping(keyname, x.PrivateKey);
            exml.DecryptDocument();
        }