diff options
author | lloyd <[email protected]> | 2006-06-25 03:41:11 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2006-06-25 03:41:11 +0000 |
commit | 58f2a24de7b6e7cbae80766b39815e4a18df64be (patch) | |
tree | d178140839e53c9b315926e501f92ac7f9fb6e58 | |
parent | 4149ddc0e45c3a4733bb71a335d262ae13af8e0f (diff) |
Add a new variant of X509_CA::make_cert that takes an Extensions object,
rather than creating it internally. The older version (still used
internally) creates the Extensions object as before and passes it on.
-rw-r--r-- | include/x509_ca.h | 6 | ||||
-rw-r--r-- | src/x509_ca.cpp | 18 |
2 files changed, 24 insertions, 0 deletions
diff --git a/include/x509_ca.h b/include/x509_ca.h index 75e8ac04b..8dd89755b 100644 --- a/include/x509_ca.h +++ b/include/x509_ca.h @@ -38,6 +38,12 @@ class X509_CA Key_Constraints, const std::vector<OID>&); + static X509_Certificate make_cert(PK_Signer*, const AlgorithmIdentifier&, + const MemoryRegion<byte>&, + const X509_Time&, const X509_Time&, + const X509_DN&, const X509_DN&, + const class Extensions&); + X509_CA(const X509_Certificate&, const PKCS8_PrivateKey&); ~X509_CA(); private: diff --git a/src/x509_ca.cpp b/src/x509_ca.cpp index b13559341..ac3faa7ac 100644 --- a/src/x509_ca.cpp +++ b/src/x509_ca.cpp @@ -132,6 +132,24 @@ X509_Certificate X509_CA::make_cert(PK_Signer* signer, extensions.add( new Cert_Extension::Issuer_Alternative_Name(issuer_alt)); + return make_cert(signer, sig_algo, pub_key, + not_before, not_after, + issuer_dn, subject_dn, + extensions); + } + +/************************************************* +* Create a new certificate * +*************************************************/ +X509_Certificate X509_CA::make_cert(PK_Signer* signer, + const AlgorithmIdentifier& sig_algo, + const MemoryRegion<byte>& pub_key, + const X509_Time& not_before, + const X509_Time& not_after, + const X509_DN& issuer_dn, + const X509_DN& subject_dn, + const Extensions& extensions) + { const u32bit X509_CERT_VERSION = 3; const u32bit SERIAL_BITS = 128; |