Example #1
0
 def test_clear_both(self):
     # setup
     repoid = 'repo1'
     self.test_repo_first_time(repoid)
     ca = None
     client = None
     cf = CertFiles(TEST_CERT_ROOT_DIR, repoid)
     cf.update(ca, client)
     capath, clientpath = cf.apply()
     #verify
     rootdir = os.path.join(TEST_CERT_ROOT_DIR, repoid)
     self.assertFalse(os.path.exists(rootdir))
Example #2
0
 def test_clear_client(self):
     # setup
     repoid = 'repo1'
     self.test_repo_first_time(repoid)
     ca = 'MY-NEW-CA-CERT'
     client = None
     cf = CertFiles(TEST_CERT_ROOT_DIR, repoid)
     cf.update(ca, client)
     capath, clientpath = cf.apply()
     #verify
     rootdir = os.path.join(TEST_CERT_ROOT_DIR, repoid)
     self.assertTrue(os.path.exists(rootdir))
     self.assertEqual(capath, os.path.join(rootdir, CertFiles.CA))
     self.assertEqual(len(os.listdir(rootdir)), 1)
     f = open(capath)
     pem = f.read()
     f.close()
     self.assertEqual(pem, ca)
Example #3
0
 def test_repo_first_time(self, repoid='repo1'):
     # setup
     repoid = 'repo1'
     ca = 'MY-CA-CERT'
     client = 'MY-CLIENT-KEY_AND_CERT'
     cf = CertFiles(TEST_CERT_ROOT_DIR, repoid)
     cf.update(ca, client)
     capath, clientpath = cf.apply()
     #verify
     rootdir = os.path.join(TEST_CERT_ROOT_DIR, repoid)
     self.assertTrue(os.path.exists(rootdir))
     self.assertEqual(capath, os.path.join(rootdir, CertFiles.CA))
     self.assertEqual(clientpath, os.path.join(rootdir, CertFiles.CLIENT))
     for path, content in ((capath, ca),(clientpath, client)):
         f = open(path)
         pem = f.read()
         f.close()
         self.assertEqual(pem, content)
Example #4
0
def _handle_certs(repo, rootdir, cacert, clientcert):
    """
    Handle x.509 certificates that were specified with the repo.
    The cert files will be written to disk, deleting any existing
    files that were there. The repo object will be updated with any
    values related to the stored certificates.
    """
    certificates = CertFiles(rootdir, repo.id)
    certificates.update(cacert, clientcert)
    capath, clientpath = certificates.apply()
    # CA certificate
    if cacert:
        repo['sslcacert'] = capath
        repo['sslverify'] = '1'
    else:
        repo['sslverify'] = '0'
    # client certificate
    if clientcert:
        repo['sslclientcert'] = clientpath