michael@0: #!/usr/bin/python michael@0: # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- michael@0: # vim: set filetype=python michael@0: michael@0: # This Source Code Form is subject to the terms of the Mozilla Public michael@0: # License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: # file, You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: michael@0: import tempfile, os, sys michael@0: michael@0: libpath = os.path.abspath('../psm_common_py') michael@0: sys.path.append(libpath) michael@0: import CertUtils michael@0: michael@0: srcdir = os.getcwd() michael@0: db = tempfile.mkdtemp() michael@0: michael@0: def generate_child_cert(db_dir, dest_dir, noise_file, name, ca_nick, michael@0: cert_version, do_bc, is_ee): michael@0: return CertUtils.generate_child_cert(db_dir, dest_dir, noise_file, name, michael@0: ca_nick, cert_version, do_bc, is_ee, '') michael@0: michael@0: def generate_ee_family(db_dir, dest_dir, noise_file, ca_name): michael@0: name = "v1_ee-"+ ca_name; michael@0: generate_child_cert(db_dir, dest_dir, noise_file, name, ca_name, 1, False, True) michael@0: name = "v1_bc_ee-"+ ca_name; michael@0: generate_child_cert(db_dir, dest_dir, noise_file, name, ca_name, 1, True, True) michael@0: michael@0: name = "v2_ee-"+ ca_name; michael@0: generate_child_cert(db_dir, dest_dir, noise_file, name, ca_name, 2, False, True) michael@0: name = "v2_bc_ee-"+ ca_name; michael@0: generate_child_cert(db_dir, dest_dir, noise_file, name, ca_name, 2, True, True) michael@0: michael@0: name = "v3_missing_bc_ee-"+ ca_name; michael@0: generate_child_cert(db_dir, dest_dir, noise_file, name, ca_name, 3, False, True) michael@0: name = "v3_bc_ee-"+ ca_name; michael@0: generate_child_cert(db_dir, dest_dir, noise_file, name, ca_name, 3, True, True) michael@0: michael@0: name = "v4_bc_ee-"+ ca_name; michael@0: generate_child_cert(db_dir, dest_dir, noise_file, name, ca_name, 4, True, True) michael@0: michael@0: def generate_intermediates_and_ee_set(db_dir, dest_dir, noise_file, ca_name): michael@0: name = "v1_int-" + ca_name; michael@0: generate_child_cert(db, srcdir, noise_file, name, ca_name, 1, False, False) michael@0: generate_ee_family(db, srcdir, noise_file, name) michael@0: name = "v1_int_bc-" + ca_name; michael@0: generate_child_cert(db, srcdir, noise_file, name, ca_name, 1, True, False) michael@0: generate_ee_family(db, srcdir, noise_file, name) michael@0: michael@0: name = "v2_int-" + ca_name; michael@0: generate_child_cert(db, srcdir, noise_file, name, ca_name, 2, False, False) michael@0: generate_ee_family(db, srcdir, noise_file, name) michael@0: name = "v2_int_bc-" + ca_name; michael@0: generate_child_cert(db, srcdir, noise_file, name, ca_name, 2, True, False) michael@0: generate_ee_family(db, srcdir, noise_file, name) michael@0: michael@0: name = "v3_int_missing_bc-" + ca_name; michael@0: generate_child_cert(db, srcdir, noise_file, name, ca_name, 3, False, False) michael@0: generate_ee_family(db, srcdir, noise_file, name) michael@0: name = "v3_int-" + ca_name; michael@0: generate_child_cert(db, srcdir, noise_file, name, ca_name, 3, True, False) michael@0: generate_ee_family(db, srcdir, noise_file, name) michael@0: michael@0: def generate_ca(db_dir, dest_dir, noise_file, name, version, do_bc): michael@0: CertUtils.generate_ca_cert(db_dir, dest_dir, noise_file, name, version, do_bc) michael@0: generate_intermediates_and_ee_set(db_dir, dest_dir, noise_file, name) michael@0: michael@0: def generate_certs(): michael@0: [noise_file, pwd_file] = CertUtils.init_nss_db(db) michael@0: generate_ca(db, srcdir, noise_file, "v1_ca", 1, False ) michael@0: generate_ca(db, srcdir, noise_file, "v1_ca_bc", 1, True) michael@0: generate_ca(db, srcdir, noise_file, "v2_ca", 2, False ) michael@0: generate_ca(db, srcdir, noise_file, "v2_ca_bc", 2, True) michael@0: generate_ca(db, srcdir, noise_file, "v3_ca", 3, True ) michael@0: generate_ca(db, srcdir, noise_file, "v3_ca_missing_bc", 3, False) michael@0: michael@0: generate_certs();