Source code for cfssl.models.config_mixer
# -*- coding: utf-8 -*-
# Copyright 2016 LasLabs Inc.
# License MIT (https://opensource.org/licenses/MIT).
from ..utils import to_api
[docs]class ConfigMixer(object):
""" It provides a mixer for the Client and Server Configs """
def __init__(self, sign_policy_default, sign_policies_add, auth_policies):
""" Initialize a new General Configuration for Server or Client.
Args:
sign_policy_default (PolicySign): Default signing
policy for entity to use.
sign_policies_add (tuple of PolicySign):
Additional signing policies to use for the entity.
auth_policies (tuple of PolicyAuth): Auth
policies for the entity.
"""
self.sign_policy = sign_policy_default
self.sign_policies = sign_policies_add
self.auth_policies = auth_policies
[docs] def to_api(self):
""" It returns an object compatible with the API. """
return {
'signing': {
'default': to_api(self.sign_policy),
'profiles': {
p.name: to_api(p) for p in self.sign_policies
},
},
'auth_keys': {
k.name: to_api(k) for k in self.auth_policies
},
}