コード例 #1
0
 /// <summary>
 /// Get file name or return default
 /// </summary>
 /// <param name="cert"></param>
 /// <param name="defaultName"></param>
 /// <returns></returns>
 public static string GetFileNameOrDefault(this X509CertificateModel cert,
                                           string defaultName)
 {
     try {
         var dn     = Utils.ParseDistinguishedName(cert.Subject);
         var prefix = dn
                      .FirstOrDefault(x => x.StartsWith("CN=",
                                                        StringComparison.OrdinalIgnoreCase)).Substring(3);
         return(prefix + " [" + cert.Thumbprint + "]");
     }
     catch {
         return(defaultName);
     }
 }
コード例 #2
0
        /// <summary>
        /// Get Raw data
        /// </summary>
        /// <returns></returns>
        public static byte[] ToRawData(this X509CertificateModel model)
        {
            const string certPemHeader = "-----BEGIN CERTIFICATE-----";
            const string certPemFooter = "-----END CERTIFICATE-----";

            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            if (model.Certificate == null)
            {
                throw new ArgumentNullException(nameof(model.Certificate));
            }
            switch (model.Certificate.Type)
            {
            case JTokenType.Bytes:
                return((byte[])model.Certificate);

            case JTokenType.String:
                var request = (string)model.Certificate;
                if (request.Contains(certPemHeader,
                                     StringComparison.OrdinalIgnoreCase))
                {
                    var strippedCertificateRequest = request.Replace(
                        certPemHeader, "", StringComparison.OrdinalIgnoreCase);
                    strippedCertificateRequest = strippedCertificateRequest.Replace(
                        certPemFooter, "", StringComparison.OrdinalIgnoreCase);
                    return(Convert.FromBase64String(strippedCertificateRequest));
                }
                return(Convert.FromBase64String(request));

            default:
                throw new ArgumentException(
                          "Bad certificate data", nameof(model.Certificate));
            }
        }
コード例 #3
0
 /// <summary>
 /// Convert to framework model
 /// </summary>
 /// <returns></returns>
 public static Certificate ToStackModel(this X509CertificateModel model)
 {
     return(CertificateEx.Create(model.ToRawData()));
 }