X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fsigner.h;h=1d53d5baf2eefec241dcec1645ec04f739cf8c49;hb=19e00ec24925192d354dd15961b9f067c790edbf;hp=9ee5852b07a9431971f4e6859ac26029d9260fc3;hpb=2cc2026701c9e8268ba154ec9330c5d56cbdc240;p=libdcp.git diff --git a/src/signer.h b/src/signer.h index 9ee5852b..1d53d5ba 100644 --- a/src/signer.h +++ b/src/signer.h @@ -17,6 +17,9 @@ */ +#ifndef LIBDCP_SIGNER_H +#define LIBDCP_SIGNER_H + /** @file src/signer.h * @brief Signer class. */ @@ -38,10 +41,21 @@ namespace dcp { class Signer { public: + Signer (boost::filesystem::path openssl); + + Signer ( + boost::filesystem::path openssl, + std::string organisation, + std::string organisational_unit, + std::string root_common_name, + std::string intermediate_common_name, + std::string leaf_common_name + ); + /** @param c Certificate chain to sign with. - * @param k Key to sign with. + * @param k Key to sign with as a PEM-format string. */ - Signer (CertificateChain c, boost::filesystem::path k) + Signer (CertificateChain c, std::string k) : _certificates (c) , _key (k) {} @@ -52,13 +66,30 @@ public: CertificateChain const & certificates () const { return _certificates; } + + CertificateChain& certificates () { + return _certificates; + } -private: + std::string key () const { + return _key; + } + + void set_key (std::string k) { + _key = k; + } + bool valid () const; + +private: + void create (boost::filesystem::path directory); + /** Certificate chain to sign with */ CertificateChain _certificates; - /** Filename of signer key */ - boost::filesystem::path _key; + /** Key to sign with as a PEM-format string */ + std::string _key; }; } + +#endif