diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/x509_ca.cpp | 29 | ||||
-rw-r--r-- | src/x509self.cpp | 18 |
2 files changed, 19 insertions, 28 deletions
diff --git a/src/x509_ca.cpp b/src/x509_ca.cpp index 7e556f164..e7a463e18 100644 --- a/src/x509_ca.cpp +++ b/src/x509_ca.cpp @@ -33,16 +33,7 @@ X509_CA::X509_CA(const X509_Certificate& c, if(!cert.is_CA_cert()) throw Invalid_Argument("X509_CA: This certificate is not for a CA"); - std::string padding; - Signature_Format 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(); - - const PK_Signing_Key& sig_key = dynamic_cast<const PK_Signing_Key&>(key); - signer = get_pk_signer(sig_key, padding, format); + signer = choose_sig_format(key, ca_sig_algo); } /************************************************* @@ -249,4 +240,22 @@ X509_CA::~X509_CA() delete signer; } +/************************************************* +* Choose a signing format for the key * +*************************************************/ +PK_Signer* choose_sig_format(const PKCS8_PrivateKey& key, + AlgorithmIdentifier& sig_algo) + { + std::string padding; + Signature_Format 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(); + + const PK_Signing_Key& sig_key = dynamic_cast<const PK_Signing_Key&>(key); + + return get_pk_signer(sig_key, padding, format); + } + } diff --git a/src/x509self.cpp b/src/x509self.cpp index fadcf0c39..5707c1a58 100644 --- a/src/x509self.cpp +++ b/src/x509self.cpp @@ -55,24 +55,6 @@ void load_info(const X509_Cert_Options& opts, X509_DN& subject_dn, opts.xmpp, UTF8_STRING); } -/************************************************* -* Choose a signing format for the key * -*************************************************/ -PK_Signer* choose_sig_format(const PKCS8_PrivateKey& key, - AlgorithmIdentifier& sig_algo) - { - std::string padding; - Signature_Format 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(); - - const PK_Signing_Key& sig_key = dynamic_cast<const PK_Signing_Key&>(key); - - return get_pk_signer(sig_key, padding, format); - } - } namespace X509 { |