using System.IO; using bc = Org.BouncyCastle; namespace PKISharp.WACS.Services { public class PemService { /// /// Helper function for PEM encoding /// /// /// public string GetPem(object obj) { string pem; using (var tw = new StringWriter()) { var pw = new bc.OpenSsl.PemWriter(tw); pw.WriteObject(obj); pem = tw.GetStringBuilder().ToString(); tw.GetStringBuilder().Clear(); } return pem; } public string GetPem(string name, byte[] content) => GetPem(new bc.Utilities.IO.Pem.PemObject(name, content)); /// /// Helper function for reading PEM encoding /// /// /// /// public T? ParsePem(string pem) where T: class { using var tr = new StringReader(pem); var pr = new bc.OpenSsl.PemReader(tr); return pr.ReadObject() as T; } } }