diff options
-rw-r--r-- | ipalib/x509.py | 31 | ||||
-rw-r--r-- | ipatests/test_ipaserver/test_otptoken_import.py | 5 |
2 files changed, 25 insertions, 11 deletions
diff --git a/ipalib/x509.py b/ipalib/x509.py index 88ea415bf..a87dbf413 100644 --- a/ipalib/x509.py +++ b/ipalib/x509.py @@ -89,19 +89,12 @@ def strip_header(pem): return pem -def load_certificate(data, datatype=PEM, dbdir=None): +def initialize_nss_database(dbdir=None): """ - Given a base64-encoded certificate, with or without the - header/footer, return a request object. - - Returns a nss.Certificate type + Initializes NSS database, if not initialized yet. Uses a proper database + directory (.ipa/alias or HTTPD_ALIAS_DIR), depending on the value of + api.env.in_tree. """ - if type(data) in (tuple, list): - data = data[0] - - if (datatype == PEM): - data = strip_header(data) - data = base64.b64decode(data) if not nss.nss_is_initialized(): if dbdir is None: @@ -116,6 +109,22 @@ def load_certificate(data, datatype=PEM, dbdir=None): else: nss.nss_init(dbdir) +def load_certificate(data, datatype=PEM, dbdir=None): + """ + Given a base64-encoded certificate, with or without the + header/footer, return a request object. + + Returns a nss.Certificate type + """ + if type(data) in (tuple, list): + data = data[0] + + if (datatype == PEM): + data = strip_header(data) + data = base64.b64decode(data) + + initialize_nss_database(dbdir=dbdir) + return nss.Certificate(buffer(data)) def load_certificate_from_file(filename, dbdir=None): diff --git a/ipatests/test_ipaserver/test_otptoken_import.py b/ipatests/test_ipaserver/test_otptoken_import.py index 7ee0754da..84df0e2a6 100644 --- a/ipatests/test_ipaserver/test_otptoken_import.py +++ b/ipatests/test_ipaserver/test_otptoken_import.py @@ -21,12 +21,17 @@ import os import sys import nose from nss import nss +from ipalib.x509 import initialize_nss_database from ipaserver.install.ipa_otptoken_import import PSKCDocument, ValidationError basename = os.path.join(os.path.dirname(__file__), "data") class test_otptoken_import(object): + + def teardown(self): + initialize_nss_database() + def test_figure3(self): doc = PSKCDocument(os.path.join(basename, "pskc-figure3.xml")) assert doc.keyname is None |