github-1: support for hashing functions other than sha1
[certmaster.git] / certmaster / config.py
index 205af35..bf9b87b 100644 (file)
 
 import os
 import sys
 
 import os
 import sys
-import warnings
 import copy
 import urlparse
 from ConfigParser import NoSectionError, NoOptionError, ConfigParser
 from ConfigParser import ParsingError
 import exceptions
 import copy
 import urlparse
 from ConfigParser import NoSectionError, NoOptionError, ConfigParser
 from ConfigParser import ParsingError
 import exceptions
+import warnings
 
 CONFIG_FILE = "/etc/certmaster/certmaster.conf"
 
 
 CONFIG_FILE = "/etc/certmaster/certmaster.conf"
 
@@ -448,7 +448,7 @@ class BaseConfig(object):
         self.cfg.write(fileobj)
 
     def getConfigOption(self, option, default=None):
         self.cfg.write(fileobj)
 
     def getConfigOption(self, option, default=None):
-        warnings.warn('getConfigOption() will go away in a future version of Yum.\n'
+        warnings.warn('getConfigOption() will go away in a future version of certmaster.\n'
                 'Please access option values as attributes or using getattr().',
                 DeprecationWarning)
         if hasattr(self, option):
                 'Please access option values as attributes or using getattr().',
                 DeprecationWarning)
         if hasattr(self, option):
@@ -456,7 +456,7 @@ class BaseConfig(object):
         return default
 
     def setConfigOption(self, option, value):
         return default
 
     def setConfigOption(self, option, value):
-        warnings.warn('setConfigOption() will go away in a future version of Yum.\n'
+        warnings.warn('setConfigOption() will go away in a future version of certmaster.\n'
                 'Please set option values as attributes or using setattr().',
                 DeprecationWarning)
         if hasattr(self, option):
                 'Please set option values as attributes or using setattr().',
                 DeprecationWarning)
         if hasattr(self, option):
@@ -478,22 +478,21 @@ def read_config(config_file, BaseConfigDerived):
 
     ## build up the cas structure
     opts.ca = {}
 
     ## build up the cas structure
     opts.ca = {}
-    opts.ca[''] = {}
 
     ## Add the default items when just using a single ca
 
     ## Add the default items when just using a single ca
-    main_items = confparser.items('main')
-    for (key,value) in main_items:
-        if key in ['autosign','cadir','cert_dir','certroot','csrroot']:
-            opts.ca[''][key] = value
+    opts.ca[''] = BaseConfigDerived()
+    opts.ca[''].hash_function = "sha256"
+    opts.ca[''].populate(confparser,'main')
 
     ## Add additonal ca sections
     sections = confparser.sections()
     for a_section in sections:
         if a_section.startswith('ca:'):
             ca_name = a_section[3:]
 
     ## Add additonal ca sections
     sections = confparser.sections()
     for a_section in sections:
         if a_section.startswith('ca:'):
             ca_name = a_section[3:]
-            items = confparser.items(a_section)
-            opts.ca[ca_name] = {}
-            for (key,value) in items:
-                opts.ca[ca_name][key] = value
+            opts.ca[ca_name] = BaseConfigDerived()
+            opts.ca[ca_name].hash_function = "sha256"
+            opts.ca[ca_name].populate(confparser,a_section)
+            opts.ca[ca_name].cakey = None
+            opts.ca[ca_name].cacert = None
     
     return opts
     
     return opts