aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/config.h15
-rw-r--r--src/config.cpp37
-rw-r--r--src/x509_ca.cpp2
-rw-r--r--src/x509self.cpp2
4 files changed, 18 insertions, 38 deletions
diff --git a/include/config.h b/include/config.h
index 61a22d46d..0b28cb848 100644
--- a/include/config.h
+++ b/include/config.h
@@ -34,6 +34,10 @@ class Config
std::string option(const std::string&) const;
void load_inifile(const std::string&);
+
+ static void choose_sig_format(const std::string&, std::string&,
+ Signature_Format&);
+
private:
std::map<std::string, std::string> settings;
};
@@ -43,17 +47,6 @@ class Config
*************************************************/
Config& global_config();
-namespace ConfigXXX {
-
-/*************************************************
-* Choose the signature format for a PK algorithm *
-*************************************************/
-void choose_sig_format(const std::string&, std::string&, Signature_Format&);
-void choose_sig_format(const std::string&, std::string&, std::string&,
- Signature_Format&);
-
-}
-
}
#endif
diff --git a/src/config.cpp b/src/config.cpp
index 337deae2b..819bc61f5 100644
--- a/src/config.cpp
+++ b/src/config.cpp
@@ -148,34 +148,15 @@ bool Config::option_as_bool(const std::string& key) const
}
/*************************************************
-* Dereference an alias *
-*************************************************/
-std::string deref_alias(const std::string& name)
- {
- return global_config().deref_alias(name);
- }
-
-namespace ConfigXXX {
-
-/*************************************************
* Choose the signature format for a PK algorithm *
*************************************************/
-void choose_sig_format(const std::string& algo_name, std::string& padding,
- Signature_Format& format)
- {
- std::string dummy;
- choose_sig_format(algo_name, padding, dummy, format);
- }
-
-/*************************************************
-* Choose the signature format for a PK algorithm *
-*************************************************/
-void choose_sig_format(const std::string& algo_name, std::string& padding,
- std::string& hash, Signature_Format& format)
+void Config::choose_sig_format(const std::string& algo_name,
+ std::string& padding,
+ Signature_Format& format)
{
if(algo_name == "RSA")
{
- hash = global_state().config().option("x509/ca/rsa_hash");
+ std::string hash = global_state().config().option("x509/ca/rsa_hash");
if(hash == "")
throw Invalid_State("No value set for x509/ca/rsa_hash");
@@ -187,7 +168,7 @@ void choose_sig_format(const std::string& algo_name, std::string& padding,
}
else if(algo_name == "DSA")
{
- hash = deref_alias("SHA-1");
+ std::string hash = global_state().config().deref_alias("SHA-1");
padding = "EMSA1(" + hash + ")";
format = DER_SEQUENCE;
}
@@ -195,6 +176,12 @@ void choose_sig_format(const std::string& algo_name, std::string& padding,
throw Invalid_Argument("Unknown X.509 signing key type: " + algo_name);
}
-}
+/*************************************************
+* Dereference an alias *
+*************************************************/
+std::string deref_alias(const std::string& name)
+ {
+ return global_config().deref_alias(name);
+ }
}
diff --git a/src/x509_ca.cpp b/src/x509_ca.cpp
index 23e79356f..fa4b7cf92 100644
--- a/src/x509_ca.cpp
+++ b/src/x509_ca.cpp
@@ -37,7 +37,7 @@ X509_CA::X509_CA(const X509_Certificate& c,
std::string padding;
Signature_Format format;
- ConfigXXX::choose_sig_format(key.algo_name(), padding, format);
+ Config::choose_sig_format(key.algo_name(), padding, format);
ca_sig_algo.oid = OIDS::lookup(key.algo_name() + "/" + padding);
ca_sig_algo.parameters = key.DER_encode_params();
diff --git a/src/x509self.cpp b/src/x509self.cpp
index da75aff18..fadcf0c39 100644
--- a/src/x509self.cpp
+++ b/src/x509self.cpp
@@ -63,7 +63,7 @@ PK_Signer* choose_sig_format(const PKCS8_PrivateKey& key,
{
std::string padding;
Signature_Format format;
- ConfigXXX::choose_sig_format(key.algo_name(), padding, format);
+ Config::choose_sig_format(key.algo_name(), padding, format);
sig_algo.oid = OIDS::lookup(key.algo_name() + "/" + padding);
sig_algo.parameters = key.DER_encode_params();