mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-01-13 09:41:55 -06:00
acf519f5c5
StringIO was renamed in Python 3. The import was was unused, so remove it. Files need to be opened in binary mode if bytes are written to them. (For Python 2: on Linux, there's no practical difference between text and binary mode) Reviewed-By: Tomas Babej <tbabej@redhat.com>
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
# Copyright (C) 2015 FreeIPA Project Contributors - see LICENSE file
|
|
|
|
from __future__ import print_function
|
|
from ipapython.secrets.store import iSecStore, NAME_DB_MAP, NSSCertDB
|
|
import os
|
|
import shutil
|
|
import subprocess
|
|
import unittest
|
|
|
|
|
|
def _test_password_callback():
|
|
with open('test-ipa-sec-store/pwfile') as f:
|
|
password = f.read()
|
|
return password
|
|
|
|
|
|
class TestiSecStore(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
try:
|
|
shutil.rmtree('test-ipa-sec-store')
|
|
except Exception: # pylint: disable=broad-except
|
|
pass
|
|
testdir = 'test-ipa-sec-store'
|
|
pwfile = os.path.join(testdir, 'pwfile')
|
|
os.mkdir(testdir)
|
|
with open(pwfile, 'w') as f:
|
|
f.write('testpw')
|
|
cls.certdb = os.path.join(testdir, 'certdb')
|
|
os.mkdir(cls.certdb)
|
|
cls.cert2db = os.path.join(testdir, 'cert2db')
|
|
os.mkdir(cls.cert2db)
|
|
seedfile = os.path.join(testdir, 'seedfile')
|
|
with open(seedfile, 'wb') as f:
|
|
seed = os.urandom(1024)
|
|
f.write(seed)
|
|
subprocess.call(['certutil', '-d', cls.certdb, '-N', '-f', pwfile])
|
|
subprocess.call(['certutil', '-d', cls.cert2db, '-N', '-f', pwfile])
|
|
subprocess.call(['certutil', '-d', cls.certdb, '-S', '-f', pwfile,
|
|
'-s', 'CN=testCA', '-n', 'testCACert', '-x',
|
|
'-t', 'CT,C,C', '-m', '1', '-z', seedfile])
|
|
|
|
def test_iSecStore(self):
|
|
iss = iSecStore({})
|
|
|
|
NAME_DB_MAP['test'] = {
|
|
'type': 'NSSDB',
|
|
'path': self.certdb,
|
|
'handler': NSSCertDB,
|
|
'pwcallback': _test_password_callback,
|
|
}
|
|
value = iss.get('keys/test/testCACert')
|
|
|
|
NAME_DB_MAP['test']['path'] = self.cert2db
|
|
iss.set('keys/test/testCACert', value)
|