Template Manager¶
The TemplateManager class handles template files for storing default certificate values.
Templates help reduce repetitive input and ensure consistency.
Overview¶
Templates store default values that can be reused when creating CAs and certificates:
Organization information
Location details (country, state, city)
Default validity periods
Default key sizes
Initialization¶
from certica.template_manager import TemplateManager
# Initialize with default base directory
template_manager = TemplateManager()
# Or specify a custom base directory
template_manager = TemplateManager(base_dir="/path/to/certificates")
Parameters:
base_dir(str, optional): Base directory for storing templates. Default:"output"
Note
Templates are stored as JSON files in: {base_dir}/templates/{name}.json
Methods¶
create_template¶
Create a new template file.
template_path = template_manager.create_template(
template_name="myorg",
organization="My Company Inc.",
country="US",
state="California",
city="San Francisco",
default_validity_days=730,
default_key_size=2048
)
Parameters:
template_name(str): Name for the template (required)organization(str, optional): Organization name. Default:"Development"country(str, optional): Country code. Default:"CN"state(str, optional): State/Province. Default:"Beijing"city(str, optional): City. Default:"Beijing"default_validity_days(int, optional): Default validity in days. Default:365default_key_size(int, optional): Default key size in bits. Default:2048
Returns:
Path to the created template file (str).
Example:
path = template_manager.create_template(
template_name="production",
organization="My Company Inc.",
country="US",
default_validity_days=730
)
print(f"Template created: {path}")
Template File Format:
Templates are stored as JSON:
{
"organization": "My Company Inc.",
"country": "US",
"state": "California",
"city": "San Francisco",
"default_validity_days": 730,
"default_key_size": 2048
}
load_template¶
Load a template file to get default values.
template_data = template_manager.load_template("myorg")
Parameters:
template_name(str, optional): Name of the template to load. IfNone, loads default template.
Returns:
Dictionary containing template values. If template doesn’t exist, returns default values.
Example:
template = template_manager.load_template("myorg")
print(f"Organization: {template['organization']}")
print(f"Country: {template['country']}")
Note
If a template doesn’t exist, this method returns default values instead of raising an error. This makes it safe to use templates that may not exist yet.
list_templates¶
List all available template files.
templates = template_manager.list_templates()
Returns:
List of template names (str).
Example:
templates = template_manager.list_templates()
for template in templates:
print(f"Template: {template}")
delete_template¶
Delete a template file.
success = template_manager.delete_template("myorg")
Parameters:
template_name(str): Name of the template to delete
Returns:
True if deletion was successful, False if template doesn’t exist.
Example:
if template_manager.delete_template("myorg"):
print("Template deleted")
else:
print("Template not found")
Complete Example¶
from certica.template_manager import TemplateManager
from certica.ca_manager import CAManager
template_manager = TemplateManager()
ca_manager = CAManager()
# Create a template
template_manager.create_template(
template_name="myorg",
organization="My Company Inc.",
country="US",
state="California",
city="San Francisco",
default_validity_days=730
)
# Load template and use it
template = template_manager.load_template("myorg")
# Create CA using template values
ca_manager.create_root_ca(
ca_name="company-ca",
organization=template["organization"],
country=template["country"],
state=template["state"],
city=template["city"],
validity_days=template["default_validity_days"]
)
Template Manager - Handles template files for default values
- class certica.template_manager.TemplateManager(base_dir='output')[source]¶
Bases:
objectManages template files for default certificate values