コード例 #1
0
        /// <summary>
        /// 从证书链反序列化证书链集合
        /// </summary>
        /// <param name="certificate">证书链</param>
        private static List <X509Certificate2> ReadPemCertChain(string certificate)
        {
            var certChainStr = File.Exists(certificate) ? File.ReadAllText(certificate)
                : Base64Util.IsBase64String(certificate) ? Encoding.ASCII.GetString(Convert.FromBase64String(certificate))
                : throw new AlipayException("证书文件不存在或证书的Base64String不正确!");

            var certStrArr = certChainStr.Split("-----END CERTIFICATE-----", StringSplitOptions.RemoveEmptyEntries);

            var certs = new List <X509Certificate2>();

            foreach (var certStr in certStrArr)
            {
                certs.Add(new X509Certificate2(Encoding.ASCII.GetBytes(certStr + "-----END CERTIFICATE-----")));
            }

            return(certs);
        }
コード例 #2
0
 /// <summary>
 /// 反序列化证书
 /// </summary>
 /// <param name="certificate">证书</param>
 public static X509Certificate2 Parse(string certificate)
 {
     return(File.Exists(certificate) ? new X509Certificate2(certificate)
         : Base64Util.IsBase64String(certificate) ? new X509Certificate2(Convert.FromBase64String(certificate))
         : throw new AlipayException("证书文件不存在或证书的Base64String不正确!"));
 }