public void ExportPrivateKey_InPemFormat() { // Arrange var certificateGenerator = new CertificateGenerator(); var keyPair = certificateGenerator.GetKeyPair(); //Act var privateKeyText = certificateGenerator.ExportKeyPair(keyPair); //Assert Assert.True(privateKeyText.StartsWith("-----BEGIN RSA PRIVATE KEY-----\r\n")); Assert.True(privateKeyText.EndsWith("\r\n-----END RSA PRIVATE KEY-----\r\n")); }
private static void CreateCaCertificate(CertificateGenerator certificateGenerator, IProxyServerConfiguration proxyServerConfiguration) { var caKeyPair = certificateGenerator.GetKeyPair(); IDictionary caCertificateDetails = new Hashtable(); caCertificateDetails[X509Name.C] = "UK"; caCertificateDetails[X509Name.O] = "Acceptance Test Proxy Organization"; caCertificateDetails[X509Name.OU] = "Testing Department"; //caCertificateDetails[X509Name.DnQualifier]; //populatated automatically from CN caCertificateDetails[X509Name.ST] = "London"; caCertificateDetails[X509Name.CN] = "AcceptanceTestProxy CA"; //caCertificateDetails[X509Name.SerialNumber] = CaCertificateName; //populatated automatically //RFC 5208 IList caCertificateDetailsOrder = new ArrayList(); caCertificateDetailsOrder.Add(X509Name.C); caCertificateDetailsOrder.Add(X509Name.O); caCertificateDetailsOrder.Add(X509Name.OU); //caCertificateDetailsOrder.Add(X509Name.DnQualifier); caCertificateDetailsOrder.Add(X509Name.ST); caCertificateDetailsOrder.Add(X509Name.CN); //caCertificateDetailsOrder.Add(X509Name.SerialNumber); var caCertificate = certificateGenerator.GenerateCaCertificate(caKeyPair, caCertificateDetails, caCertificateDetailsOrder); var caKeyPairFileName = Path.Combine(proxyServerConfiguration.CertificatePath, proxyServerConfiguration.CaKeyPairFileName); if (File.Exists(caKeyPairFileName)) { File.Delete(caKeyPairFileName); } var privateKeyText = certificateGenerator.ExportKeyPair(caKeyPair); File.WriteAllText(caKeyPairFileName, privateKeyText); var caCertificateFileName = Path.Combine(proxyServerConfiguration.CertificatePath, proxyServerConfiguration.CaCertificateFileName); if (File.Exists(caCertificateFileName)) { File.Delete(caCertificateFileName); } var certificateText = certificateGenerator.ExportCertificate(caCertificate); File.WriteAllText(caCertificateFileName, certificateText); }
public void ImportKeyPair_InPemFormat() { // Arrange var certificateGenerator = new CertificateGenerator(); var caKeyPair = certificateGenerator.GetKeyPair(); var privateKeyText = certificateGenerator.ExportKeyPair(caKeyPair); //Act var keyPair = certificateGenerator.ImportKeyPair(privateKeyText); //Assert Assert.AreEqual(caKeyPair.Private, keyPair.Private); Assert.AreEqual(caKeyPair.Public, keyPair.Public); }