/// <summary> /// Create .cer or .pfx file from an X509Certificate2 object /// </summary> /// <param name="cert">an X509Certificate2 object</param> /// <param name="NewCerFile">name of generated .cer file</param> /// <returns>full path of newly generated .cer file</returns> public static string CreateCertFile(X509Certificate2 cert, string NewCertFile, CertFileType certFileType) { byte[] CerContents; // Write the content to a local .cer file so that users can upload it into Azure if (certFileType == CertFileType.Cer) { CerContents = cert.Export(X509ContentType.Cert); } else { CerContents = cert.Export(X509ContentType.Pfx, PasswordForCert); } using (FileStream fileStream = new FileStream(NewCertFile, FileMode.Create)) { for (int i = 0; i < CerContents.Length; i++) { fileStream.WriteByte(CerContents[i]); } fileStream.Seek(0, SeekOrigin.Begin); fileStream.Close(); } return System.IO.Path.GetFullPath(NewCertFile); }
// BizRule cert file name pattern - <Partner Name> - Biz Rule - <anything>.xlsx // Spec cert file name pattern - <Partner Name> - Spec Cert - <version> - <Message domain id> - <direction>.xlsx public static CertFileType GetCertFileType(string certFileName) { CertFileType certFileType = CertFileType.Invalid; if (string.IsNullOrWhiteSpace(certFileName) == false) { certFileName = Path.GetFileNameWithoutExtension(certFileName); string[] fileNameParts = certFileName.Split('-'); if (fileNameParts.Length > 2) { fileNameParts[1] = fileNameParts[1].Trim(); if (string.Equals(fileNameParts[1], "Biz Rule", StringComparison.OrdinalIgnoreCase) == true) { certFileType = CertFileType.BizRuleCert; } else if (string.Equals(fileNameParts[1], "Spec Cert", StringComparison.OrdinalIgnoreCase) == true) { certFileType = CertFileType.SpecCert; } } } return(certFileType); }