You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by sw...@apache.org on 2014/11/20 17:54:09 UTC

git commit: updated refs/heads/hotfix/4.5-7822 to 5ac9f2d

Repository: cloudstack
Updated Branches:
  refs/heads/hotfix/4.5-7822 [created] 5ac9f2dc5


CLOUDSTACK-7822: Fixed SSL Cert Tests and relaxed chain validation

Signed-off-by: Will Stevens <ws...@cloudops.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5ac9f2dc
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5ac9f2dc
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5ac9f2dc

Branch: refs/heads/hotfix/4.5-7822
Commit: 5ac9f2dc5b1f623e57cdee470218540d654a9a3d
Parents: 91d448f
Author: Will Stevens <ws...@cloudops.com>
Authored: Thu Nov 13 09:55:49 2014 -0500
Committer: Will Stevens <ws...@cloudops.com>
Committed: Thu Nov 20 11:53:30 2014 -0500

----------------------------------------------------------------------
 .../cloudstack/network/lb/CertServiceImpl.java  | 19 +----
 .../cloudstack/network/lb/CertServiceTest.java  | 87 ++------------------
 server/test/resources/certs/dsa_self_signed.crt | 26 ------
 server/test/resources/certs/non_root.crt        | 13 +++
 server/test/resources/certs/non_root.csr        | 11 +++
 server/test/resources/certs/non_root.key        | 15 ++++
 server/test/resources/certs/root_chain.crt      | 32 +++----
 server/test/resources/certs/root_chain.csr      | 11 +++
 server/test/resources/certs/root_chain.key      | 38 +++------
 server/test/resources/certs/rsa_ca_signed.crt   | 26 +++---
 server/test/resources/certs/rsa_ca_signed.csr   | 11 +++
 server/test/resources/certs/rsa_ca_signed.key   | 26 +++---
 server/test/resources/certs/rsa_ca_signed2.crt  | 21 -----
 server/test/resources/certs/rsa_ca_signed2.key  | 30 -------
 server/test/resources/certs/rsa_random_pkey.key | 28 -------
 server/test/resources/certs/rsa_self_signed.crt | 26 +++---
 server/test/resources/certs/rsa_self_signed.csr | 11 +++
 server/test/resources/certs/rsa_self_signed.key | 26 +++---
 .../certs/rsa_self_signed_with_pwd.crt          | 26 +++---
 .../certs/rsa_self_signed_with_pwd.csr          | 11 +++
 .../certs/rsa_self_signed_with_pwd.key          | 29 ++++---
 21 files changed, 191 insertions(+), 332 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java b/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
index 695b935..cbc7dd8 100644
--- a/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
+++ b/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
@@ -350,15 +350,6 @@ public class CertServiceImpl implements CertService {
         } catch (Exception e) {
             throw new IllegalArgumentException("Certificate expired or not valid", e);
         }
-
-        if (!chainPresent) {
-            PublicKey pubKey = cert.getPublicKey();
-            try {
-                cert.verify(pubKey);
-            } catch (Exception e) {
-                throw new IllegalArgumentException("No chain given and certificate not self signed", e);
-            }
-        }
     }
 
     private void validateKeys(PublicKey pubKey, PrivateKey privKey) {
@@ -399,8 +390,6 @@ public class CertServiceImpl implements CertService {
     private void validateChain(List<Certificate> chain, Certificate cert) {
 
         List<Certificate> certs = new ArrayList<Certificate>();
-        List<Certificate> root = new ArrayList<Certificate>();
-
         Set<TrustAnchor> anchors = new HashSet<TrustAnchor>();
 
         certs.add(cert); // adding for self signed certs
@@ -415,15 +404,9 @@ public class CertServiceImpl implements CertService {
             Principal subject = xCert.getSubjectDN();
             Principal issuer = xCert.getIssuerDN();
 
-            if (issuer != null && subject.equals(issuer)) {
-                root.add(c);
-                anchors.add(new TrustAnchor(xCert, null));
-            }
+           anchors.add(new TrustAnchor(xCert, null));
         }
 
-        if (root.size() == 0)
-            throw new IllegalArgumentException("No root certificates found for certificate chain", null);
-
         X509CertSelector target = new X509CertSelector();
         target.setCertificate((X509Certificate)cert);
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
----------------------------------------------------------------------
diff --git a/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java b/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
index 1292ce1..e466639 100755
--- a/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
+++ b/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
@@ -99,7 +99,6 @@ public class CertServiceTest {
         String certFile = getClass().getResource("/certs/rsa_ca_signed.crt").getFile();
         String keyFile = getClass().getResource("/certs/rsa_ca_signed.key").getFile();
         String chainFile = getClass().getResource("/certs/root_chain.crt").getFile();
-        String password = "user";
 
         String cert = readFileToString(new File(certFile));
         String key = readFileToString(new File(keyFile));
@@ -134,10 +133,6 @@ public class CertServiceTest {
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
-        Field passField = _class.getDeclaredField("password");
-        passField.setAccessible(true);
-        passField.set(uploadCmd, password);
-
         Field chainField = _class.getDeclaredField("chain");
         chainField.setAccessible(true);
         chainField.set(uploadCmd, chain);
@@ -147,7 +142,7 @@ public class CertServiceTest {
 
     @Test
     /**
-     * Given a Self-signed Certificate with non-encrypted key, upload should succeed
+     * Given a Self-signed Certificate with encrypted key, upload should succeed
      */
     public void runUploadSslCertSelfSignedWithPassword() throws Exception {
 
@@ -198,7 +193,7 @@ public class CertServiceTest {
 
     @Test
     /**
-     * Given a Self-signed Certificate with encrypted key, upload should succeed
+     * Given a Self-signed Certificate with non-encrypted key, upload should succeed
      */
     public void runUploadSslCertSelfSignedNoPassword() throws Exception {
 
@@ -242,7 +237,7 @@ public class CertServiceTest {
         certService.uploadSslCert(uploadCmd);
     }
 
-    /*
+
     @Test
     public void runUploadSslCertBadChain() throws IOException, IllegalAccessException, NoSuchFieldException {
         Assume.assumeTrue(isOpenJdk() || isJCEInstalled());
@@ -250,7 +245,6 @@ public class CertServiceTest {
         String certFile = getClass().getResource("/certs/rsa_ca_signed.crt").getFile();
         String keyFile = getClass().getResource("/certs/rsa_ca_signed.key").getFile();
         String chainFile = getClass().getResource("/certs/rsa_self_signed.crt").getFile();
-        String password = "user";
 
         String cert = readFileToString(new File(certFile));
         String key = readFileToString(new File(keyFile));
@@ -282,10 +276,6 @@ public class CertServiceTest {
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
-        Field passField = _class.getDeclaredField("password");
-        passField.setAccessible(true);
-        passField.set(uploadCmd, password);
-
         Field chainField = _class.getDeclaredField("chain");
         chainField.setAccessible(true);
         chainField.set(uploadCmd, chain);
@@ -297,9 +287,8 @@ public class CertServiceTest {
             assertTrue(e.getMessage().contains("Invalid certificate chain"));
         }
     }
-    */
 
-    /*
+
     @Test
     public void runUploadSslCertNoRootCert() throws IOException, IllegalAccessException, NoSuchFieldException {
 
@@ -307,8 +296,7 @@ public class CertServiceTest {
 
         String certFile = getClass().getResource("/certs/rsa_ca_signed.crt").getFile();
         String keyFile = getClass().getResource("/certs/rsa_ca_signed.key").getFile();
-        String chainFile = getClass().getResource("/certs/rsa_ca_signed2.crt").getFile();
-        String password = "user";
+        String chainFile = getClass().getResource("/certs/non_root.crt").getFile();
 
         String cert = readFileToString(new File(certFile));
         String key = readFileToString(new File(keyFile));
@@ -340,78 +328,20 @@ public class CertServiceTest {
         keyField.setAccessible(true);
         keyField.set(uploadCmd, key);
 
-        Field passField = _class.getDeclaredField("password");
-        passField.setAccessible(true);
-        passField.set(uploadCmd, password);
-
         Field chainField = _class.getDeclaredField("chain");
         chainField.setAccessible(true);
         chainField.set(uploadCmd, chain);
 
         try {
             certService.uploadSslCert(uploadCmd);
-            fail("Chain is given but does not have root certificate");
+            fail("Chain is given but does not link to the certificate");
         } catch (Exception e) {
-            assertTrue(e.getMessage().contains("No root certificates found"));
+            assertTrue(e.getMessage().contains("Invalid certificate chain"));
         }
 
     }
-    */
-
-    /*
-    @Test
-    public void runUploadSslCertNoChain() throws IOException, IllegalAccessException, NoSuchFieldException {
-
-        Assume.assumeTrue(isOpenJdk() || isJCEInstalled());
-
-        String certFile = getClass().getResource("/certs/rsa_ca_signed.crt").getFile();
-        String keyFile = getClass().getResource("/certs/rsa_ca_signed.key").getFile();
-        String password = "user";
-
-        String cert = readFileToString(new File(certFile));
-        String key = readFileToString(new File(keyFile));
 
-        CertServiceImpl certService = new CertServiceImpl();
-
-        //setting mock objects
-        certService._accountMgr = Mockito.mock(AccountManager.class);
-        Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
-
-        certService._domainDao = Mockito.mock(DomainDao.class);
-        DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
-
-        certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
-
-        //creating the command
-        UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
-        Class<?> _class = uploadCmd.getClass().getSuperclass();
-
-        Field certField = _class.getDeclaredField("cert");
-        certField.setAccessible(true);
-        certField.set(uploadCmd, cert);
-
-        Field keyField = _class.getDeclaredField("key");
-        keyField.setAccessible(true);
-        keyField.set(uploadCmd, key);
-
-        Field passField = _class.getDeclaredField("password");
-        passField.setAccessible(true);
-        passField.set(uploadCmd, password);
-
-        try {
-            certService.uploadSslCert(uploadCmd);
-            fail("If no chain is given, the certificate should be self signed. Else, uploadShould Fail");
-        } catch (Exception e) {
-            assertTrue(e.getMessage().contains("No chain given and certificate not self signed"));
-        }
-
-    }
-    */
 
-    /*
     @Test
     public void runUploadSslCertBadPassword() throws IOException, IllegalAccessException, NoSuchFieldException {
 
@@ -460,13 +390,12 @@ public class CertServiceTest {
         }
 
     }
-    */
 
     @Test
     public void runUploadSslCertBadkeyPair() throws IOException, IllegalAccessException, NoSuchFieldException {
         // Reading appropritate files
         String certFile = getClass().getResource("/certs/rsa_self_signed.crt").getFile();
-        String keyFile = getClass().getResource("/certs/rsa_random_pkey.key").getFile();
+        String keyFile = getClass().getResource("/certs/non_root.key").getFile();
 
         String cert = readFileToString(new File(certFile));
         String key = readFileToString(new File(keyFile));

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/dsa_self_signed.crt
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/dsa_self_signed.crt b/server/test/resources/certs/dsa_self_signed.crt
deleted file mode 100644
index 9ee3dc8..0000000
--- a/server/test/resources/certs/dsa_self_signed.crt
+++ /dev/null
@@ -1,26 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEaDCCBBACCQDB6QTHSA74AzAJBgcqhkjOOAQDMEUxCzAJBgNVBAYTAkFVMRMw
-EQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0
-eSBMdGQwHhcNMTMxMDIxMTUxMzE1WhcNMTQxMDIxMTUxMzE1WjBFMQswCQYDVQQG
-EwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk
-Z2l0cyBQdHkgTHRkMIIDSDCCAjoGByqGSM44BAEwggItAoIBAQD1cLkWeTvzloom
-uaHmB0ANyrmHTum6bVVMyN2V/it8BAErugqQBIaNtF2EOmJ3baxsxIROOqJ5uVx0
-pymYVr4BcS3R6H2G7lSWHa5iA/UMfVp9yHroK+WYdN5ZVKGYcUTvKZXtyr2OX3Rc
-KJJ2yp4qbcQTB2GlV6eZdpX3l38G/03n/Wi5yjU2/p56R80FAaLtCr4wJoS2aXxU
-Iytps+msEn0LRZuFHpW1sLIKPLRCnjFXWeWKdJu6bggUVB0GjfsZR67XzFY5nRvX
-7/vW2XS5Vo4X6gSOym0O/8/vzUp1gQSwHiMQQRAoRYoZPxWo8ACMsqdj0MTbN32y
-b11//OlXAiEAoR8xDStCDTaQ2Ale9swNzLB8vWFzmSLQXXOM1PY10fMCggEBAO1p
-RV1kluxjYCKec12MKdTBqO2QZnOOVFsY2vpIavgqpxyGaHRwY8Cm7BGosV2chMZw
-G6xMz5CRnR55KasaX1Vz2xAz7PwczXWDQA59Il5tQbQdewitm1S3NRb1n9u+cNkQ
-E6ZekjdW9tRykvaNQHH8EBzgQ9KXCYzJ8nFLk2DMt2Mor/paXfobNzO/vi2UgL+B
-5/E8BXoMtBFPhiz72CsCiXp/usROe/UAejow/CTHYC2mfcPhKt2jIVelXx7Baf0n
-K1SWKBpNI4ucBj+/4L3Be0ldqDGmeTRUNTNpJIzmAyplUvnpOiqCbzKst57+l4ZE
-xdVgv2LiIrTaqTn1L4sDggEGAAKCAQEAv0hyFYj8IMEaOCk9+6wb32NGEGoEz4re
-YW1O02Kij2/0YJk0CPyg0ozIpJq9FiHvOzE+2/Eg5jLVTLlAJbjnGjSnzZJ6pJHw
-zhwnJ9wT4to51jLvG1v82iL2FfFKOZFjABxC+kND9cAUXu3URIGfdYJl1rBxvOD1
-WZ03Gk90GMCLUIMqqUYBQg7XRNVf0k1AgiRgDWpdLkKOGiDntAj/unXdFrbse2xD
-IbqBGhCNtPVx34CZ3bUWrvYBoj+BUinfItRK4rkZTEGJinoxbKDvdqoewgk2nSty
-7CH40wFS4ni4DCvYTEwUoUuciQaU4XUOOSYFS9IjNWOR8uGBtORteTAJBgcqhkjO
-OAQDA0cAMEQCIHqfrNbyMadxZ3uCPr8QPj+17XZZod8B7F8VgZW3R5vSAiAV/WMF
-vQ1Dwpr4wJOjNELDe5AEH9WGvevfuc54vmdAdg==
------END CERTIFICATE-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/non_root.crt
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/non_root.crt b/server/test/resources/certs/non_root.crt
new file mode 100644
index 0000000..288ab3d
--- /dev/null
+++ b/server/test/resources/certs/non_root.crt
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB9TCCAV4CAQEwDQYJKoZIhvcNAQEFBQAwQjELMAkGA1UEBhMCWFgxFTATBgNV
+BAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDAg
+Fw0xNDExMTIyMTU1MzBaGA8yMTEwMDkxMDIxNTUzMFowQjELMAkGA1UEBhMCWFgx
+FTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55
+IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsnzKPLJXUaCXTXrmGplZ
+jULuk2YgyOPII0pRbumO8DaT8hhu1yv0bYp5FPMY8oYzj/K+J8ixLNJeXmxKEs1k
+2XuHe6FOoRZQYuOlRHQ18D6r4U6pdvND98elnj47WIhquRqUrzZS9hGJsaEk+Q2X
+R0YuieZ4JxzCto2UJ+/No0kCAwEAATANBgkqhkiG9w0BAQUFAAOBgQActcWz/1y4
+wRpNhisks7bjPW8oKqS4dpXtUr016+m0xcn0HCl3GzcltG9PmOd6DUOeulsO89lg
+d3u/+TwzVCzQNi7KcPiAc1ELjgKX/qJVZbY5SMjDAaB9hvE8UY6bTI3gjoHW2oGr
+heIiCaASvVucpcYUwyfWDFa77WDckE6yHg==
+-----END CERTIFICATE-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/non_root.csr
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/non_root.csr b/server/test/resources/certs/non_root.csr
new file mode 100644
index 0000000..9b7c826
--- /dev/null
+++ b/server/test/resources/certs/non_root.csr
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBgTCB6wIBADBCMQswCQYDVQQGEwJYWDEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5
+MRwwGgYDVQQKDBNEZWZhdWx0IENvbXBhbnkgTHRkMIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQCyfMo8sldRoJdNeuYamVmNQu6TZiDI48gjSlFu6Y7wNpPyGG7X
+K/RtinkU8xjyhjOP8r4nyLEs0l5ebEoSzWTZe4d7oU6hFlBi46VEdDXwPqvhTql2
+80P3x6WePjtYiGq5GpSvNlL2EYmxoST5DZdHRi6J5ngnHMK2jZQn782jSQIDAQAB
+oAAwDQYJKoZIhvcNAQEFBQADgYEApgfoXJUv6kBU1OCKvIjefxMUEd4nwIuM62S9
+WSjOVQqwpuyD2GT/cpJWTwOZ5SmkoEyWLPrcZFXv2YhusqDh8jefI51Y6B5QZLFC
+RaZGTovkpyvNPg1Us0NNw1BeGnMkybKIuXspsinXd7aqtjHtSNkyNXofLsBMA7jd
+xp6ExwU=
+-----END CERTIFICATE REQUEST-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/non_root.key
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/non_root.key b/server/test/resources/certs/non_root.key
new file mode 100644
index 0000000..ef29614
--- /dev/null
+++ b/server/test/resources/certs/non_root.key
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCyfMo8sldRoJdNeuYamVmNQu6TZiDI48gjSlFu6Y7wNpPyGG7X
+K/RtinkU8xjyhjOP8r4nyLEs0l5ebEoSzWTZe4d7oU6hFlBi46VEdDXwPqvhTql2
+80P3x6WePjtYiGq5GpSvNlL2EYmxoST5DZdHRi6J5ngnHMK2jZQn782jSQIDAQAB
+AoGAF3I/GsQOpmFjHsFzMrFMSzssnd4/lkQdyUz874Xsye9Rde7xuIBEppMXHsJk
+V497fIBVrGI3q/yieuLcxCWJBrRxYJMvneygmrXSQpfTzKHNMu2RMq1NE+wAFs5i
+za9JTVyD/DNX6BoMdsDg2n4PNRnIoz/5GyPoCUJY/6r6WYECQQDgxAm3fRQGz0ip
+4CJe4o2Tm97LuzuA2gLYdSyH7pV3IbXKIQJn2sGC7sRJ0NQ/RweiZk/xc753+x4V
+x6hqQRT5AkEAy0pq6Jf6bGoizoqwXnclAcdXn66POqLGuMV9BwuqxTC6laru/WPp
+ccYcMgVzT/kG9m1Z583AAjS5E8mz1Byk0QJBAMNVO0iOV+gvHmwbkGM7qmRcsrwF
+hInPbWemNUQQ8S4uSqlWFJwi/ceHL2kjJkGzvgvBtLoWp7Hnt9afxFpLIykCQQC1
+hkXgW5TpqfxaoczLDWimJfJATAbpPOBlrTLvT6O1YMW7T18INGcHiPc0U1mcV6m3
+8f0N19NUJO/+k2VYShuBAkBqaMYUI76HJwna+484aojb0RF4y4I/V8S7XvnVBvDa
+8VqsePQ1mr7SlY16/0yCLKL0+uS/+BygJFJMfUMwTzLT
+-----END RSA PRIVATE KEY-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/root_chain.crt
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/root_chain.crt b/server/test/resources/certs/root_chain.crt
index b46d839..4ce5013 100644
--- a/server/test/resources/certs/root_chain.crt
+++ b/server/test/resources/certs/root_chain.crt
@@ -1,23 +1,13 @@
 -----BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIJAPjwxbyQ1zxmMA0GCSqGSIb3DQEBBQUAMIGDMQswCQYD
-VQQGEwJDUzEPMA0GA1UECAwGQXBhY2hlMRMwEQYDVQQHDApDbG91ZFN0YWNrMRow
-GAYDVQQKDBFBcGFjaGUgQ2xvdWRTdGFjazEOMAwGA1UECwwFdGVzdHMxIjAgBgkq
-hkiG9w0BCQEWE3BkaW9uODkxQGFwYWNoZS5vcmcwIBcNMTQxMTA1MDEyMDI2WhgP
-MjExNDEwMTIwMTIwMjZaMIGDMQswCQYDVQQGEwJDUzEPMA0GA1UECAwGQXBhY2hl
-MRMwEQYDVQQHDApDbG91ZFN0YWNrMRowGAYDVQQKDBFBcGFjaGUgQ2xvdWRTdGFj
-azEOMAwGA1UECwwFdGVzdHMxIjAgBgkqhkiG9w0BCQEWE3BkaW9uODkxQGFwYWNo
-ZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9FEa9/M5lOYNR
-OjRnyb0OEDtja4jghiMSTAfhQJdOPr3g+zUYh6zGiWFBQddBtT8DqAAIJDtB7SPi
-tnYUKz0/CwO94hyg6OMHr0xR9P9dUUmcKURDy/phh4bAuDn7oUiOY62J7I84dyNJ
-40KO37qJgGBAtXsdcvLiLo7DXQJms1PDsuPlbVYHj2tHTRp/AneEU7DpmA8WeD+i
-Q3LvWvBX1o9KxpelQE2duhzsoR3/virw+7xFdIFt8bTaeINB+I56RwJd6TFKNDg0
-10ipt03UvfYd8IHJO43BlmQhgRpvv+9780GJNkAXibUXvgqy0DBjJmmj1I5X8IWb
-DJTLkPsdAgMBAAGjUDBOMB0GA1UdDgQWBBTkKiZL2xPX1L6dct/rNtVCVwfQoTAf
-BgNVHSMEGDAWgBTkKiZL2xPX1L6dct/rNtVCVwfQoTAMBgNVHRMEBTADAQH/MA0G
-CSqGSIb3DQEBBQUAA4IBAQBC8PDJ+0zV2SyHx7p3KCj5TzNdfT+szsZNICqGOY97
-qx+kGfuJLoDgO3mTH3TXyy/krVaL466Fo5RcMFTvVQAcg8uBQIVWfSvug/wVGvQ6
-kCIowTCpDMN5G6VtFe8IWpBCVkLAvl/Qu3t2RIyLzCxR2yIPiqQGW1ldHyEQdA3o
-sg74nNVURFQeosFpwcTrbu7FgOlHCjti8i2R7tlaXx7YCMwAjL5yr/ScUIMJyTPG
-JdyPy03WYPc6eDQPm5eKIQUXGXT97Q3h0IaDXiRJzrrW7x5zj+Dy68qDq2legojT
-6g0OC0H18K0+W02BPWVN4ZtmvSYpCQVSPvc0rnjSEuDw
+MIIB9TCCAV4CAQEwDQYJKoZIhvcNAQEFBQAwQjELMAkGA1UEBhMCWFgxFTATBgNV
+BAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDAg
+Fw0xNDExMTIyMTI0MzdaGA8yMTEwMDkxMDIxMjQzN1owQjELMAkGA1UEBhMCWFgx
+FTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55
+IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxYJtGogvfKTQMgNumCKz
+H/IbEqxwVbbp29fT8Gh67dSs+Rnu9w0DY9XtMSPTUw+uCacKfI4AbP5UsGMO8LST
+6g0LkanJOk8aGvg8lclxsrsTPSomn2EHexauHMiZ/a0kc2civGn4me9H0bkBokvK
+0KpAg3rNORCRIBioCaj+KVsCAwEAATANBgkqhkiG9w0BAQUFAAOBgQBvT6ilNAVt
+2HUzjSf+d+3OvjAnIutO8O0W9BFol2Z54atV18A2W6aXgzdJ9LDNLqWtVqKyU6/T
+iOJ7mdxFOlXc19Bg3YXMCxnyKDXt5IBJmtv9XgSjOCWhPd9Tln0w4NB9QHUPjUxc
+M+DtHmSuXBwvaszJO4gvhJq+9jFdcS2BZg==
 -----END CERTIFICATE-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/root_chain.csr
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/root_chain.csr b/server/test/resources/certs/root_chain.csr
new file mode 100644
index 0000000..bfea399
--- /dev/null
+++ b/server/test/resources/certs/root_chain.csr
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBgTCB6wIBADBCMQswCQYDVQQGEwJYWDEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5
+MRwwGgYDVQQKDBNEZWZhdWx0IENvbXBhbnkgTHRkMIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQDFgm0aiC98pNAyA26YIrMf8hsSrHBVtunb19PwaHrt1Kz5Ge73
+DQNj1e0xI9NTD64Jpwp8jgBs/lSwYw7wtJPqDQuRqck6Txoa+DyVyXGyuxM9Kiaf
+YQd7Fq4cyJn9rSRzZyK8afiZ70fRuQGiS8rQqkCDes05EJEgGKgJqP4pWwIDAQAB
+oAAwDQYJKoZIhvcNAQEFBQADgYEAxHTAyMT460uTyddqlJ4X+YYGES6G6hR4mauT
+s7WhYZNvpeU6Vi/ds5EKTXr8kD2I4zIqoqSiII880r2nPKNwiTHEl6qy3vxB+XSH
+4pets9ZWqhTrsBlClWdoYRLtPzbO5ePSxFcHso3pNI0q25w+CJQdaApXKoBMmfoh
+vr/g0qs=
+-----END CERTIFICATE REQUEST-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/root_chain.key
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/root_chain.key b/server/test/resources/certs/root_chain.key
index ce080d4..0168003 100644
--- a/server/test/resources/certs/root_chain.key
+++ b/server/test/resources/certs/root_chain.key
@@ -1,27 +1,15 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_ca_signed.crt
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_ca_signed.crt b/server/test/resources/certs/rsa_ca_signed.crt
index 0b540aa..913f2b3 100644
--- a/server/test/resources/certs/rsa_ca_signed.crt
+++ b/server/test/resources/certs/rsa_ca_signed.crt
@@ -1,17 +1,13 @@
 -----BEGIN CERTIFICATE-----
-MIICszCCAhwCCQCaE4goZabzDTANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMC
-VVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhTYW4gSm9zZTETMBEGA1UECgwKQ2xv
-dWRTdGFjazETMBEGA1UECwwKQ2xvdWRTdGFjazEeMBwGA1UEAwwVY2xvdWRzdGFj
-ay5hcGFjaGUub3JnMSQwIgYJKoZIhvcNAQkBFhVjbG91ZHN0YWNrQGFwYWNoZS5v
-cmcwHhcNMTQxMDIxMjI0MjA4WhcNMTUxMDIxMjI0MjA4WjCBnTELMAkGA1UEBhMC
-VVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhTYW4gSm9zZTETMBEGA1UECgwKQ2xv
-dWRTdGFjazETMBEGA1UECwwKQ2xvdWRTdGFjazEeMBwGA1UEAwwVY2xvdWRzdGFj
-ay5hcGFjaGUub3JnMSQwIgYJKoZIhvcNAQkBFhVjbG91ZHN0YWNrQGFwYWNoZS5v
-cmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANrW6mzOmvTipZiL6N0Lz+T+
-W1qM7iN0k9mOC9fq/U3pN1kIvI8yDF/6eJHQDmr0Hx/GJg4TNZ761kJcB/kCu7zA
-8uILGqh2M3+qhp5zqgPfN7MAxJ65dZPdg+r1mxogHxZUcMTDcEvNKDd73xJDZK47
-iPBie/4RRPQTJS3jbWhJAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAoBURaXgxobxj
-4YEU0IHo/G1UwPhPAKahiDjQH7HxUFJoLEDGUXlP6L8Z7fN22CeX2gQoeAA3w6I2
-Oyb78wBnI3Kwlhr486NGZuxg2DSSfgK2EirIqswMa+P1/XxrArrfr/Ty4qiMEKhg
-ut+HM3oPPMVyU0Tlk/vgwgER5WD/9d0=
+MIIB9TCCAV4CAQEwDQYJKoZIhvcNAQEFBQAwQjELMAkGA1UEBhMCWFgxFTATBgNV
+BAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDAg
+Fw0xNDExMTIyMTMxMDRaGA8yMTEwMDkxMDIxMzEwNFowQjELMAkGA1UEBhMCWFgx
+FTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55
+IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyZ3yVWZsHSRFr9LnMRpa
+bdkBurAn4jISqC69GUo3FL0TekOuihMcwPho/aZGgDE621+7g1vy1+hUE7fOv0V4
+x6uVjNpIe8GWpb9ZL0v3f/xgREHxGGX4XVY2OXsrYu2/qpZHNe+fYQTkFPqIvNVz
+bbdDpSGRk15G0YBwOtrMyfECAwEAATANBgkqhkiG9w0BAQUFAAOBgQA4V+MBF1Nb
+Wt2mFg8gw6TOBBUH0m/6EMkRZQ8/dneBn+kOkPG6YF3kj+/WmUbuc4nxj3GtaHrn
+mSNEbE6+JDXBzQNaPY/smoaL7BHfn/dd4UqwCf0aJC4/GwmbCfcuvGirnioVM2ns
+wvRpD6fmS4rq8FVLlhzsNEmwDf94ZSVGCQ==
 -----END CERTIFICATE-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_ca_signed.csr
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_ca_signed.csr b/server/test/resources/certs/rsa_ca_signed.csr
new file mode 100644
index 0000000..10ee195
--- /dev/null
+++ b/server/test/resources/certs/rsa_ca_signed.csr
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBgTCB6wIBADBCMQswCQYDVQQGEwJYWDEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5
+MRwwGgYDVQQKDBNEZWZhdWx0IENvbXBhbnkgTHRkMIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQDJnfJVZmwdJEWv0ucxGlpt2QG6sCfiMhKoLr0ZSjcUvRN6Q66K
+ExzA+Gj9pkaAMTrbX7uDW/LX6FQTt86/RXjHq5WM2kh7wZalv1kvS/d//GBEQfEY
+ZfhdVjY5eyti7b+qlkc1759hBOQU+oi81XNtt0OlIZGTXkbRgHA62szJ8QIDAQAB
+oAAwDQYJKoZIhvcNAQEFBQADgYEAe7h4MlCx2UJEiAVsY8PuEB+GbwLy2rBxLjhi
+XxF06esSjdJnyItGokTI2nv9MJgR9CUA8EQS/0FTdJYHNDldYP/iXi7VhNtPpcIV
+rZv7FELzWct5LwiEoV/v88tv3tlx3AJtyh1eGrZPw1yejfQbEGVoNSM6ICr7hyh0
+6wz4tGk=
+-----END CERTIFICATE REQUEST-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_ca_signed.key
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_ca_signed.key b/server/test/resources/certs/rsa_ca_signed.key
index ece40e4..89aebc1 100644
--- a/server/test/resources/certs/rsa_ca_signed.key
+++ b/server/test/resources/certs/rsa_ca_signed.key
@@ -1,15 +1,15 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIICWwIBAAKBgQDa1upszpr04qWYi+jdC8/k/ltajO4jdJPZjgvX6v1N6TdZCLyP
-Mgxf+niR0A5q9B8fxiYOEzWe+tZCXAf5Aru8wPLiCxqodjN/qoaec6oD3zezAMSe
-uXWT3YPq9ZsaIB8WVHDEw3BLzSg3e98SQ2SuO4jwYnv+EUT0EyUt421oSQIDAQAB
-AoGAEYwgGf9rD23JB3VYg7j5v4vhuV4JjlA/trccHgEatI+Zv4riy7ygn2WPG2oK
-besLP9n8nS5PI2NLoOCORxpAAVmUQFZvUKE76ElJN9KtNNzY/Xoch54RJ1fCoqL/
-ERMpYDXmVONWSUTRio+SPu3gYDCOZX4wBWV+G6wHRa4m0V0CQQD7d/BvlE37T4kP
-5U3r8LpD05PxqvK18zq4D5oV7DFm3trog+uyScG+oHVNmZTCzujIxhlA7PrpClyv
-MuWBm6f7AkEA3sh0Rx4l1y4htTRIsS3i3QSfhE85Nf1VvYuVJGL1R/ckBlOyWrPV
-XadOxKpnho/sFT9a1FHMFWZtZBhkeGYpiwJAGURW4086eqrmMbOvnaplfNUwg1LS
-6ldTKhVfPR6rZBO2WTCQKSziC75hqvdojB5wI2RMO0rUdz/0SiJKDzjNqwJAauf0
-bIA6FmVLxaG+VE+5sufaCGrgAFl+QIPv4NMf8xXUkritOLtdYyC7OsKvBTKhTpzl
-YEeUUJyjV8ogxGn5+wJAXbnTChiLrfgMOOOAP8acxFPWGfLC3Ae0CAm5CeVJRTSr
-4m6LNHbtqXeYTnr1WQ8A10yNPxyB0l3AaWJpBC3iew==
+MIICXgIBAAKBgQDJnfJVZmwdJEWv0ucxGlpt2QG6sCfiMhKoLr0ZSjcUvRN6Q66K
+ExzA+Gj9pkaAMTrbX7uDW/LX6FQTt86/RXjHq5WM2kh7wZalv1kvS/d//GBEQfEY
+ZfhdVjY5eyti7b+qlkc1759hBOQU+oi81XNtt0OlIZGTXkbRgHA62szJ8QIDAQAB
+AoGBAL41sfuZzmPL5abUPWMY7rl1oukC6g2/mdRri+GBH+gD3Y1arx76mwT/FuY+
+aYLlbxaqAZkTNU82k6OqpHXVT/S5XRbuhERFBIIl4FKVi1iiZ3m5Pz5XbDzFU24y
+etwRdUGM/ZeLHBtknOgEKXakiLoNdIf+mqov5YAvxyH+BCcxAkEA+9GZs6nLI2Aw
+So8/TmkMMzLNSjVxdqIg/OZtcuZiyQ2OKUL7t2DRrCmabWSMw7E+kZxhHW+QeDrC
+fh4wdPVcjQJBAMz29G6QRQTX0NBNo6H+qoPvtZfbWmRKMLuJ+OpIvcMmRXkn3cCR
++K5MQ/vpu9JyApp1DoRNTPThJpmnFRI/0/UCQQCchwf0Xqmvfp3l6q7eLXvw4zYq
+V5gEtvisWwtTbZOgB7YDPei7bwpF6sJcFzFMfwM2fa78Hhn+MgAtZtSWDuINAkBy
+vybk5xvctD4RAAZF4N7xcjfFxmX6k5Zox7t03jhuknR+eZUqBA6m9cdxts8R6AYR
+FsuDwgr9ZTdI+kNPrjApAkEA8KlHUML5lyn8YIbg81uaQPL79opAD4ZGArje9Z9k
+J20fc50gmpEXd+wtfYeq95jgLWilrhS6oM2cFbEAUpzrbQ==
 -----END RSA PRIVATE KEY-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_ca_signed2.crt
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_ca_signed2.crt b/server/test/resources/certs/rsa_ca_signed2.crt
deleted file mode 100644
index e52271d..0000000
--- a/server/test/resources/certs/rsa_ca_signed2.crt
+++ /dev/null
@@ -1,21 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDhjCCAm4CCQCKnxCO3XZA3TANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC
-Q1MxDzANBgNVBAgMBkFwYWNoZTETMBEGA1UEBwwKQ2xvdWRTdGFjazEaMBgGA1UE
-CgwRQXBhY2hlIENsb3VkU3RhY2sxDjAMBgNVBAsMBXRlc3QyMSIwIAYJKoZIhvcN
-AQkBFhNwZGlvbjg5MUBhcGFjaGUub3JnMCAXDTE0MTEwNTAyMjUwN1oYDzIxMTQx
-MDEyMDIyNTA3WjCBgzELMAkGA1UEBhMCQ1MxDzANBgNVBAgMBkFwYWNoZTETMBEG
-A1UEBwwKQ2xvdWRTdGFjazEaMBgGA1UECgwRQXBhY2hlIENsb3VkU3RhY2sxDjAM
-BgNVBAsMBXRlc3QyMSIwIAYJKoZIhvcNAQkBFhNwZGlvbjg5MUBhcGFjaGUub3Jn
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvRRGvfzOZTmDUTo0Z8m9
-DhA7Y2uI4IYjEkwH4UCXTj694Ps1GIesxolhQUHXQbU/A6gACCQ7Qe0j4rZ2FCs9
-PwsDveIcoOjjB69MUfT/XVFJnClEQ8v6YYeGwLg5+6FIjmOtieyPOHcjSeNCjt+6
-iYBgQLV7HXLy4i6Ow10CZrNTw7Lj5W1WB49rR00afwJ3hFOw6ZgPFng/okNy71rw
-V9aPSsaXpUBNnboc7KEd/74q8Pu8RXSBbfG02niDQfiOekcCXekxSjQ4NNdIqbdN
-1L32HfCByTuNwZZkIYEab7/ve/NBiTZAF4m1F74KstAwYyZpo9SOV/CFmwyUy5D7
-HQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0kW4ph+cROIUIDue4A4DAl+RUi4MS
-lkyWL90eo6vvX3oW53N9U7QV3gvZAG3hxD9XJHL7wf6SXNutLe2G7Vv5HhWtM6k4
-9RhDMH+nLbBFz6YHyN1aGMRTFbzLYTcXiLJhK5oeoZTh50zVGjoFuXvpcfKznqPq
-kaL+R3sElN/pyKdvacKbMNQHVgJqPEbMIPU+eizrVQJ/Dx5/A7GqdCBWXdwY6m3z
-/zPckpSMa7m2JdNsA5Dl/w5DosRupVVfqLwxnOkhofaxvx7WEo0YNKbk8M7Diu6n
-5Z6yC+DxhE5SrMkuwpF95AlVx3pY+AGc0cOItgCqeBE8K3AUxIYhUwS9
------END CERTIFICATE-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_ca_signed2.key
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_ca_signed2.key b/server/test/resources/certs/rsa_ca_signed2.key
deleted file mode 100644
index d30dd8e..0000000
--- a/server/test/resources/certs/rsa_ca_signed2.key
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN ENCRYPTED PRIVATE KEY-----
-MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIN4x8YHLIb60CAggA
-MBQGCCqGSIb3DQMHBAiuWe+C2SitUgSCBMhVxMKivNaQh9SQedh2GQ8vlhI2/mKf
-r6zVUgODOdmFRj/PAlQu6B+VH8u2Ef5tr74O9UyZUQpC6oI0npvQOGqnhIxECR8D
-zepFlC0s+6kNRqfzXiMhGTsfbs3xUE1TZK1z5556OS4GlihIB0E5F7GdlulHELeA
-dnEItqDffWPQczTmSmFqtH7G/ksGQhSA2reBIDNgxWreBh9x9h2TftEvhhogdkr2
-XQpzxcby2v2z6Hut1lfVkLQNdvdHYdDG751NQltOmGvncXkTNJ+tSByXuY9ITtYz
-XqwY/vAEX+YYjCrWcvMmhU1t6B9cZ3viFzIIIltqtvDo3rybicpM3xvmnYnTF35j
-sGebcynzZedrLUHwD6/o0jBzFJN26QBxDGrlmn9E8HBhmjMCeSyZTXtSkwN0dAhu
-EHT2NgdC/4G4+JHsb3Oetl6AbUyYs2eWTRgr6bgBezbiDqKMj1QtGECkPQE9tFFP
-Jtma6lGJ1/u8zLFYNjigKZgXaNbtlMpslk+KDTGaTSbbVEaaxWSc0YlHz329ovQC
-1btrTE71FoNjRsTRaDRXC7BfrrMtnLhG2SmROKzyBtoxFymfEmASpdGERO+c2712
-Z0NLpHJL5ocsRr/onVi0auFC/nuaq6QqYF5OPtZhYh3+IDd193LP3xo8hnFjTq90
-9zV1QI2uHfTfijI4OABYSSZLxrl2IFF7Z/e4XkWSXrneR2Ne5GoYX7w6wshiuubQ
-bDPUHODsy7uQJ3ZEmmmd5xWvA3h3F5Yyls3WEuz8+jYR4iPKdjt8DJuz9j+7IP3C
-LoRa3KhxIPAzziQw+tMFVCozLLfS1kN8mg5SwU9Dp4HUPY/n3KnjVSjUJ347KAgW
-+ykPlz4S1H0A2GyGWhdyX3J839UOdXfCsfKQQ1FLOBvhQgBNGzoRIgDrsZdrxgWa
-XtF+Ct2/2/O+503I6X90maXzhshmGw/NKsiNx7YOdUiu6w3N4LajIWE689UUU7Dr
-EtM8HcfmBnE/cZTbeWbQBfl1GqigMp+YOAY2sw0rZdF4ocmnqoCWLVN2j8O/re5g
-20y5eHkztPOZ+NNczo5PP96ng1XEMVzs/h6xDHzsak6osZb5b+Hs9kcYuqBEqr16
-3DVwaZ45dGwNN90Q9YmrgEdCqtCAU12w/YYVB/aB701Ijg0NhVsh7PgWaJIOJD56
-YTaiWIzQaZ/uM0KlgLz2eI9VXcuv24gUMAUMaI84mInnIrax1zFMrlCjEcR8Zxvk
-jCCY6Uq9WH30cUo7cMHWLWMzsl7PC7xpYSHPClqzCUluUgQwqoOs5Ux4nYl+JI7C
-ZfJ8BUMCD2RJtjvJhkE6LEkcrCjwnvappRaXbN54IVXpuMl2XYtp44T117QulEj1
-I/jk1mrpkXRKi9ZsKsjDH9VMy1hcKHn4CgTxmtRYN6LPA4tamxzVLxIi6YDU0142
-l1u763cT7cH14lvzUvEQMFbk/s0AUl8zeZAwjDayNlD/ljz7nZnJ3NToMlxeoK0a
-F6c/RgQBwxR8NMdo19Irv8stxo9WGB2/0Q8WCxW7ENHlBpvX5zXKRJMswFKp0ft6
-dT7hOBPgJlD7C1eX5jVcSz6kDRM6gQ7K/c5QcJa6qNAC2Jw6yBBYltqiRalFWX46
-VcM=
------END ENCRYPTED PRIVATE KEY-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_random_pkey.key
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_random_pkey.key b/server/test/resources/certs/rsa_random_pkey.key
deleted file mode 100644
index 8c29b3e..0000000
--- a/server/test/resources/certs/rsa_random_pkey.key
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQD2ZYOSvqPjro7k
-JKWggB0FJL45mz3pfvBR0NcHTGgHKdh5hml1GiHHPanYnWqRuKFI7UPWLq3xllvJ
-jolMjX6FGzPFuh4wHQ3gHMFlmpi6o1gUkk5QxAeCWmsA77qJAAiLVbm27sqfpvSG
-ec6KJOcePDDN/6Jp363Gf8JuSssafg6fAbfwLp7Cm1cxFM3RKN13fUdy50+OcXv7
-uvUlzHZ2ZIVK7FnlFoXOfhFHoyfdZL2Qm8xV3SuUllNPGl7aCM59Y6xR743Rq01j
-3E6hHNZ82GlJGaOL413oVsp5J9ZmKV+WM7plFIn86p2JGMoA2xjtON+X6BZdz3YT
-ymp7ic+7AgMBAAECggEBAKvkNd3x0TPNWzIdvs4xkg08jNhzTMXQIKdzIg+dZhVZ
-RAPDmV5wVJBCnHLZnrb6LspJe8G33vFjC7WZEn+tVk5Vo9CU/uph2oQ2i1TufQ33
-VkNDrg76MqLloTCODXv14gASVfUgsYqfVodaApStGe8l3oZXiF6EBR8tkd6PnxFi
-8TPAalFS/0mfjj/dA9zHXoZ0iyl+h6had6kqJNNbP8zgD+TbnfJZVkURNB0cyGVI
-8/8d/eO05oQ1DpuvTJ+Q5i8wTDjikUzc4btt6coA/ho4QuOvfsZGsgCzCYsUn0+W
-GA+Vn2PVEFV5hJ+MZ9gGmQ5ouC/IVAYkBBC7HlNX70ECgYEA+3DC6rTvXqdrjZz1
-TFWcITfAt7WzfGlHi2LBZ/JNmyIetXmF/sHpqGKkvp7iHDMJ4NeEBXSN9tbbEfhc
-1yU+HXYlKkeaZAGaNiCSvqlr/Bouy7dX3jG8xgPGQ1o2gyluaoTEwORf2LgmApYA
-q/eQyWTKHLxatTnjlqLULerxqv8CgYEA+t1Wa00XHHgB1D4was59qnpPemIUxpvm
-4e3wjyQs6P2kH0F0rKyytQaSXKhkBYRcmh0EnyNSGu7wxM5l3aDTzCDgBHmb1i9P
-UXLzWUYnsSgUpUB8jL6YDlUmQ1AMMDqvLagLlOLqPkRmNjN1P4/+6mdoxD5SL0rv
-5FeRaOAGR0UCgYEAjWEgGDzYg058CUqCGwPgIEVrFWETpRbFZbiHq1zxChOrVLsZ
-/t8l9MpSe+R2mwiPu18zGqYo1OyGjZorCcYlIQe3agiM5UKJZXn3SUGWOFC4k09q
-FsO8s1KX/nMRR7raHQa+Yv+GbSNOLBIQGqG/RZ5ojrPSBSihsaeoypDahh0CgYEA
-+OK3ZmVpVHlLd0LrzktnKceHKqg8bH8oJWZnj9wYIl/igI/0LYx5EFigxQTblw2m
-wc+gUjI8tzPv85HCRovVFWRYXJg6H9l4HBqrjBqqLnzRXtIHv6soOLAJ8iZssTzH
-p8hdFS27sGMz9PpAjPtTsUM/EdOyvfDe5/Bo91+rWvECgYEAxgvptntWbXc8QI9n
-DFYGigeza0sQTmFtSsob5cux9dtPORChdb6EPNTgOPOfKD4QMkmar/VWedeXOHb9
-Cy1Qz7bgOhIUSMdXzw4hPOmLrT7IbhG5CHawwHanGycrQ/bJcV00lsv0BEj3N/NJ
-PW/vxADWc9H3AcVeMi5So6gTBt4=
------END PRIVATE KEY-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_self_signed.crt
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_self_signed.crt b/server/test/resources/certs/rsa_self_signed.crt
index f0dbbb8..8759f31 100644
--- a/server/test/resources/certs/rsa_self_signed.crt
+++ b/server/test/resources/certs/rsa_self_signed.crt
@@ -1,17 +1,13 @@
 -----BEGIN CERTIFICATE-----
-MIICwTCCAioCCQCRL9B7rcgqFTANBgkqhkiG9w0BAQUFADCBpDELMAkGA1UEBhMC
-VVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhTYW4gSm9zZTEaMBgGA1UECgwRQXBh
-Y2hlIENsb3VkU3RhY2sxEzARBgNVBAsMCkNsb3VkU3RhY2sxHjAcBgNVBAMMFWNs
-b3Vkc3RhY2suYXBhY2hlLm9yZzEkMCIGCSqGSIb3DQEJARYVY2xvdWRzdGFja0Bh
-cGFjaGUub3JnMB4XDTE0MTAyMTIyMjc1OFoXDTI0MTAxODIyMjc1OFowgaQxCzAJ
-BgNVBAYTAlVTMQswCQYDVQQIDAJDQTERMA8GA1UEBwwIU2FuIEpvc2UxGjAYBgNV
-BAoMEUFwYWNoZSBDbG91ZFN0YWNrMRMwEQYDVQQLDApDbG91ZFN0YWNrMR4wHAYD
-VQQDDBVjbG91ZHN0YWNrLmFwYWNoZS5vcmcxJDAiBgkqhkiG9w0BCQEWFWNsb3Vk
-c3RhY2tAYXBhY2hlLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtZuL
-mow2ktFcV50aU4On6O5PxWzDWX4118nKJ/qCEjdxArZacSTpdbjBtQdq3DeWAbbD
-d5TdcL0qB0/dZSXmNWt5kEaEmOTm0Yy1HwbT+pKDn+r5KwtICvJogf2VTVpjGNyD
-bmvYE9mCdxmaqZIzGWMrr04ZZX+6AXAlKfYPaRsCAwEAATANBgkqhkiG9w0BAQUF
-AAOBgQBCKbaQ0puIQ7/WzlQCnt8r7z3FIhLJ/pyFL/lyAjr/+8TxEcxZvoNMKza6
-EFAYmHPumJdTQJVWWMOpeY3m3+rKKup+DcGVGmijTG1t7wPhok4JAWm561NUNNaI
-RQFyp9VuTWbgvN6pZCI6RsV9oXj8FnkDenXyX4qlUXXKVa74hw==
+MIIB9TCCAV4CAQEwDQYJKoZIhvcNAQEFBQAwQjELMAkGA1UEBhMCWFgxFTATBgNV
+BAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDAg
+Fw0xNDExMTIyMTUwMDRaGA8yMTEwMDkxMDIxNTAwNFowQjELMAkGA1UEBhMCWFgx
+FTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55
+IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzPO0MFEa3u0LOVSFzvVa
+AEgnh1QVpqZkGEQAE8jHiLY511/ML2SivvO3xRBUNvKvY5iAc1zKV/8i1vR065Kz
+hIkES1r7xNEzOwVS3pRs8XRavz7cIif2yCehLHsa1qAOBCc1rgTBA2LYbUhs0XuX
+4GLL/1FCmzY9HBH/AQDQs58CAwEAATANBgkqhkiG9w0BAQUFAAOBgQA3ZmmtiKHp
+xHF0qK5j1aknmgjYuUduLEbnWfE+MhbWUGhT2xxwfc32mo3OyCoFvM77hb2cVDb1
+KIH/THjnQ3DwQ6UTdqobWQ/k05xDhl6yI5fXayo4nTlQVIxtSlvo3KwYxj5kJwhz
+3da0/H3M/e2Wx9Ju6qT9Hv7JJBH7R4gV6A==
 -----END CERTIFICATE-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_self_signed.csr
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_self_signed.csr b/server/test/resources/certs/rsa_self_signed.csr
new file mode 100644
index 0000000..4d41e09
--- /dev/null
+++ b/server/test/resources/certs/rsa_self_signed.csr
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBgTCB6wIBADBCMQswCQYDVQQGEwJYWDEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5
+MRwwGgYDVQQKDBNEZWZhdWx0IENvbXBhbnkgTHRkMIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQDM87QwURre7Qs5VIXO9VoASCeHVBWmpmQYRAATyMeItjnXX8wv
+ZKK+87fFEFQ28q9jmIBzXMpX/yLW9HTrkrOEiQRLWvvE0TM7BVLelGzxdFq/Ptwi
+J/bIJ6EsexrWoA4EJzWuBMEDYthtSGzRe5fgYsv/UUKbNj0cEf8BANCznwIDAQAB
+oAAwDQYJKoZIhvcNAQEFBQADgYEAWnDe0GnGISSI2Ew/P90x1dlBRTNrTFdI4Rae
+fG2M1XynGysg8vPMlEJ7ho7V0fHq8528tqnreA/w/5HbptvFOE/HlSVq0gPnHNDz
+TZHpyYbagLXnR+QF5IJ+T8BJjRyrdJt5rtYdepcT9pABILdAD2qTRcvPVv3wjWMY
+BJPa0fs=
+-----END CERTIFICATE REQUEST-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_self_signed.key
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_self_signed.key b/server/test/resources/certs/rsa_self_signed.key
index 043b865..8896233 100644
--- a/server/test/resources/certs/rsa_self_signed.key
+++ b/server/test/resources/certs/rsa_self_signed.key
@@ -1,15 +1,15 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQC1m4uajDaS0VxXnRpTg6fo7k/FbMNZfjXXycon+oISN3ECtlpx
-JOl1uMG1B2rcN5YBtsN3lN1wvSoHT91lJeY1a3mQRoSY5ObRjLUfBtP6koOf6vkr
-C0gK8miB/ZVNWmMY3INua9gT2YJ3GZqpkjMZYyuvThllf7oBcCUp9g9pGwIDAQAB
-AoGAPyqiDRhV5w0xDDxVqtSxM4CoeGfTLq6Kdcr3KJ6mXUWxZhsdLBuFpG+l2JyC
-26Pt5hy2skIyH4N8OdzaidL71eSQSz8rmnh811EkM1+Xu6NnX81dLsFV8zGuZpMs
-qF/0lPggmg9o+mwXD5v8BBnmSV86Ki3LNCidgZFvOXhdLkkCQQDk1k2a4qt1JZ8J
-II6eNEwCKV13RrXnds83+q0pglosSjRmFNBll35MQxsPMG1FPRHisl7ayeppCeK7
-R8mDUWaPAkEAyyoS6bpTASRDmIfbSPPUZePJT6Wyx0rSAhWZ9nWU3tJGk2lkmkJQ
-yVNO7yPl05O8k8MMpBSTw56WR1XwBiK6tQJBAKRT2Eq/N0zahUfynzewalyrA7lh
-h8L9qHSUiMDkIIjpiJM9oyExFrsA/W984Rr1beCTIlaO5MwlEzJVrLmmPLUCQEs4
-q8IAK8VrcN+jxYwwQz7qZNnphtUFHdaJuvSmulT51Am2Zvo6fYDdKIegafK5a4Pm
-HuMNf1xZdli5N+J9r1UCQQCGyN8Cbggjms1hZoby4EFsEvFw+l7/B56Km51LUDKE
-8phRLBOy5X5ATT8QjrTGNAhw+T7OewkwK8CjVSltkk1x
+MIICXwIBAAKBgQDM87QwURre7Qs5VIXO9VoASCeHVBWmpmQYRAATyMeItjnXX8wv
+ZKK+87fFEFQ28q9jmIBzXMpX/yLW9HTrkrOEiQRLWvvE0TM7BVLelGzxdFq/Ptwi
+J/bIJ6EsexrWoA4EJzWuBMEDYthtSGzRe5fgYsv/UUKbNj0cEf8BANCznwIDAQAB
+AoGBAKYq5KnT6DRb/iCiPcbZN/pIhfv7mX4/I6Jk56civ1xBWk4bdoHqVuT41sMo
+hQ7z3m2ihGqEDe4gho+/LVid3XsfzM50IE36Krh3nzdmsvxkA9L3EQJZDPDZ5J4z
+IxfrlXulxVm44lFSjSPrhMhqVpk7N1rf1vqcVI2NFAmssGi5AkEA936KOrxiSAOf
+Iys1QCNk6rJPm1dT96EzI75ICfktmJQElKCFNH3Inq2MTk0ZtektoBoAhHKWAS5c
++rWMIddmEwJBANP+4CdXOnBcVxir0lSDCm4M3Zu0SLQMyKn/BNa5uRuvjti4zgiA
+gLkac8fV/pImYJ2uZVk1FqMRshHlzc5lHcUCQQCYaH5rKTNEsaZAHA2Qz7sHpILN
+YHu+1LAPZNAsBByGBzDC7g7ZglQXEzyBw4z/rvZ/z0NeTMn/NDPh2AbRmDmtAkEA
+iHiCOjEoGJ8JHoO10dvNwgycOJj1WJsGLpFRvx0uMclxTsihMc3vj7mcoR98Uv9L
+oRZcffH0EaPZmzXxqBVl9QJBAKE0cBqNNbLgAe9KLll3KzWvrkbld6y3ihcL/QPq
+ESoqFejbKrtaAvMx9J4zpU2gr7klpUFtG6vyR07SD2FNfGA=
 -----END RSA PRIVATE KEY-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_self_signed_with_pwd.crt
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_self_signed_with_pwd.crt b/server/test/resources/certs/rsa_self_signed_with_pwd.crt
index 0b540aa..89da7d5 100644
--- a/server/test/resources/certs/rsa_self_signed_with_pwd.crt
+++ b/server/test/resources/certs/rsa_self_signed_with_pwd.crt
@@ -1,17 +1,13 @@
 -----BEGIN CERTIFICATE-----
-MIICszCCAhwCCQCaE4goZabzDTANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMC
-VVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhTYW4gSm9zZTETMBEGA1UECgwKQ2xv
-dWRTdGFjazETMBEGA1UECwwKQ2xvdWRTdGFjazEeMBwGA1UEAwwVY2xvdWRzdGFj
-ay5hcGFjaGUub3JnMSQwIgYJKoZIhvcNAQkBFhVjbG91ZHN0YWNrQGFwYWNoZS5v
-cmcwHhcNMTQxMDIxMjI0MjA4WhcNMTUxMDIxMjI0MjA4WjCBnTELMAkGA1UEBhMC
-VVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhTYW4gSm9zZTETMBEGA1UECgwKQ2xv
-dWRTdGFjazETMBEGA1UECwwKQ2xvdWRTdGFjazEeMBwGA1UEAwwVY2xvdWRzdGFj
-ay5hcGFjaGUub3JnMSQwIgYJKoZIhvcNAQkBFhVjbG91ZHN0YWNrQGFwYWNoZS5v
-cmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANrW6mzOmvTipZiL6N0Lz+T+
-W1qM7iN0k9mOC9fq/U3pN1kIvI8yDF/6eJHQDmr0Hx/GJg4TNZ761kJcB/kCu7zA
-8uILGqh2M3+qhp5zqgPfN7MAxJ65dZPdg+r1mxogHxZUcMTDcEvNKDd73xJDZK47
-iPBie/4RRPQTJS3jbWhJAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAoBURaXgxobxj
-4YEU0IHo/G1UwPhPAKahiDjQH7HxUFJoLEDGUXlP6L8Z7fN22CeX2gQoeAA3w6I2
-Oyb78wBnI3Kwlhr486NGZuxg2DSSfgK2EirIqswMa+P1/XxrArrfr/Ty4qiMEKhg
-ut+HM3oPPMVyU0Tlk/vgwgER5WD/9d0=
+MIIB9TCCAV4CAQEwDQYJKoZIhvcNAQEFBQAwQjELMAkGA1UEBhMCWFgxFTATBgNV
+BAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDAg
+Fw0xNDExMTIyMTQ1MzBaGA8yMTEwMDkxMDIxNDUzMFowQjELMAkGA1UEBhMCWFgx
+FTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55
+IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqJKMYmpVAxSA74oMW2tP
+yLii1rTHA5b3/AzlQb1/ee5yCSuagToEKYzhYCobF6XpsV2qQkahUVTEnIQbhhvH
+mMvRDYZ857QDW0xO9fqWFN22acWjvAHYsGybN/B0Uy9du3fgrcRz3VBj0PtXq04c
+w74O8aeXXfim41NJq8lbPeUCAwEAATANBgkqhkiG9w0BAQUFAAOBgQB4QQBZFXxd
+Qi8Cr6fY8US7JqTHbGxe9qANiinV8rQJx1RFwJaxXsOg4foSKM+KFtFzW20SBTVs
+oqKe1Vofy+jHXObYvRPDP/IMnh2mCqYofQOxfFXgFYNOlnjqfSpzqRAHg16BLWKJ
+8hjuypDxOlg3O8IWinZNBEgXVAkQsYdMTw==
 -----END CERTIFICATE-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_self_signed_with_pwd.csr
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_self_signed_with_pwd.csr b/server/test/resources/certs/rsa_self_signed_with_pwd.csr
new file mode 100644
index 0000000..3444d40
--- /dev/null
+++ b/server/test/resources/certs/rsa_self_signed_with_pwd.csr
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBgTCB6wIBADBCMQswCQYDVQQGEwJYWDEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5
+MRwwGgYDVQQKDBNEZWZhdWx0IENvbXBhbnkgTHRkMIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQCokoxialUDFIDvigxba0/IuKLWtMcDlvf8DOVBvX957nIJK5qB
+OgQpjOFgKhsXpemxXapCRqFRVMSchBuGG8eYy9ENhnzntANbTE71+pYU3bZpxaO8
+AdiwbJs38HRTL127d+CtxHPdUGPQ+1erThzDvg7xp5dd+KbjU0mryVs95QIDAQAB
+oAAwDQYJKoZIhvcNAQEFBQADgYEAn4U8S3TdL4wZQAsstVS/7FTE/WdCx1GYLjZw
+Irteohk6RfwToA744v09IuxxXHz+NpCYTswuWoZnY8MgGhUf8e57CB7GIJG9Wt/Z
+/ictkkKUyWtMs1Dp7JYvuTPjxjDN7eArb4bE1pyEpBpXBwPTPDneH4wOx5VB4biS
+Wrd7mw4=
+-----END CERTIFICATE REQUEST-----

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ac9f2dc/server/test/resources/certs/rsa_self_signed_with_pwd.key
----------------------------------------------------------------------
diff --git a/server/test/resources/certs/rsa_self_signed_with_pwd.key b/server/test/resources/certs/rsa_self_signed_with_pwd.key
index ece40e4..c7b8be3 100644
--- a/server/test/resources/certs/rsa_self_signed_with_pwd.key
+++ b/server/test/resources/certs/rsa_self_signed_with_pwd.key
@@ -1,15 +1,18 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIICWwIBAAKBgQDa1upszpr04qWYi+jdC8/k/ltajO4jdJPZjgvX6v1N6TdZCLyP
-Mgxf+niR0A5q9B8fxiYOEzWe+tZCXAf5Aru8wPLiCxqodjN/qoaec6oD3zezAMSe
-uXWT3YPq9ZsaIB8WVHDEw3BLzSg3e98SQ2SuO4jwYnv+EUT0EyUt421oSQIDAQAB
-AoGAEYwgGf9rD23JB3VYg7j5v4vhuV4JjlA/trccHgEatI+Zv4riy7ygn2WPG2oK
-besLP9n8nS5PI2NLoOCORxpAAVmUQFZvUKE76ElJN9KtNNzY/Xoch54RJ1fCoqL/
-ERMpYDXmVONWSUTRio+SPu3gYDCOZX4wBWV+G6wHRa4m0V0CQQD7d/BvlE37T4kP
-5U3r8LpD05PxqvK18zq4D5oV7DFm3trog+uyScG+oHVNmZTCzujIxhlA7PrpClyv
-MuWBm6f7AkEA3sh0Rx4l1y4htTRIsS3i3QSfhE85Nf1VvYuVJGL1R/ckBlOyWrPV
-XadOxKpnho/sFT9a1FHMFWZtZBhkeGYpiwJAGURW4086eqrmMbOvnaplfNUwg1LS
-6ldTKhVfPR6rZBO2WTCQKSziC75hqvdojB5wI2RMO0rUdz/0SiJKDzjNqwJAauf0
-bIA6FmVLxaG+VE+5sufaCGrgAFl+QIPv4NMf8xXUkritOLtdYyC7OsKvBTKhTpzl
-YEeUUJyjV8ogxGn5+wJAXbnTChiLrfgMOOOAP8acxFPWGfLC3Ae0CAm5CeVJRTSr
-4m6LNHbtqXeYTnr1WQ8A10yNPxyB0l3AaWJpBC3iew==
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,4CDFBA8C969DE003
+
+VNBZGCs2h2Y3+hdujU4LIMzWDeKFiBWGwWTlRX5Jb+hhnJ0zRnx1sn6N9GM1k2qQ
+aa4mQ5LkYu8kReMmRGUEJ8skym+Mmlg0qE8kbUvIPNNjm24ZTBlIj39rScSENjPD
+XATItLrfmu1YZlWFLb1qz5zkDA/POhdvV9/tD6RLqedOftP7a5ENGmoS9xQmznlX
+4DuB8IihhiFQiNgYgIXtx2DYz4vKrVZ3hU9JFuhtYEhfMRGFmFJgTJdxHBm9UknN
+VbppOz2UO9A4RwQYWEe27GfF9Tk7HcuAL8xUCKOAw4KgyEbYx3cKCJoFQkY11/7V
+eAj7kl9iILeovWw+/8xfN8WOKvSWtQAsxpCBABaxZ8ufL0Gfegm8VBf+UvskInpN
+cZoUJqJ6SlXG6s16n21sugroNnrv5Qkm2rj8ObEMmbUV15+/bZTSJPVvxQfwPeE/
+rtKpznZQpRwOLOPnMc5Twe7JOHd89FWVKZWy4NRZvEjPEzr9c4Z5BQg1kzToc3vl
+9hw5ooXzUadXsjcS1jqiHSH2zovBqVOOqZwuZlQcPK67sCFf1DuLEP9jNdZZdOTn
+6n7uNi/wt0rAcEQCawUBwpDiI7I/736t8NNpZO7COkJNv5XG7iihEyTVzhW+GLyN
+1slSAxsRoM+NmoieWsJJ29dZrj7Oz2cd+tsLCeStBGEJ3/z/tB43c6blNEZDW9v+
+sqT+rPC/flh+3g5wcO9ExasDGvir1NglZWRkCaBEcKgIprJ5et0/VXbyEYtwOMIi
+jWhVgiSa/BQYZ3MLLr5PwvqvWJ9MWji9AANID2xSr1o=
 -----END RSA PRIVATE KEY-----