Fix code and tests so that SubtitleString::v_position is between 0 and 1 (not a perce...
[libdcp.git] / src / signer.h
index 32514fb37fe733d58a8a60ffd7ed7a6c8dd56e91..1d53d5baf2eefec241dcec1645ec04f739cf8c49 100644 (file)
@@ -17,6 +17,9 @@
 
 */
 
+#ifndef LIBDCP_SIGNER_H
+#define LIBDCP_SIGNER_H
+
 /** @file  src/signer.h
  *  @brief Signer class.
  */
@@ -35,13 +38,24 @@ namespace dcp {
 /** @class Signer
  *  @brief A class which can sign XML files.
  */
-class Signer : public boost::noncopyable
+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