diff --git a/cdoc/CDoc1Writer.cpp b/cdoc/CDoc1Writer.cpp index 63fb9ac..ed7c343 100644 --- a/cdoc/CDoc1Writer.cpp +++ b/cdoc/CDoc1Writer.cpp @@ -56,7 +56,6 @@ struct CDoc1Writer::Private final: public XMLWriter std::string documentFormat = "ENCDOC-XML|1.1"; std::string &lastError; std::vector files; - std::vector rcpts; int64_t writeEncryptionProperties(bool use_ddoc); int64_t writeKeyInfo(bool use_ddoc, const std::vector &rcpts, const Crypto::Key& transportKey); @@ -233,7 +232,7 @@ CDoc1Writer::encrypt(libcdoc::MultiDataSource& src, const std::vectorrcpts = keys; + rcpts = keys; Crypto::Key transportKey = Crypto::generateKey(d->method); int n_components = src.getNumComponents(); bool use_ddoc = (n_components > 1) || (n_components == libcdoc::NOT_IMPLEMENTED); @@ -272,7 +271,7 @@ CDoc1Writer::encrypt(libcdoc::MultiDataSource& src, const std::vector(*dst, last_error); return libcdoc::OK; @@ -281,9 +280,9 @@ CDoc1Writer::beginEncryption() libcdoc::result_t CDoc1Writer::addRecipient(const libcdoc::Recipient& rcpt) { - if(!d) + if(d) return WORKFLOW_ERROR; - d->rcpts.push_back(rcpt); + rcpts.push_back(rcpt); return libcdoc::OK; } @@ -309,12 +308,12 @@ CDoc1Writer::writeData(const uint8_t *src, size_t size) libcdoc::result_t CDoc1Writer::finishEncryption() { - if(!d || d->rcpts.empty() || d->files.empty()) + if(!d || rcpts.empty() || d->files.empty()) return WORKFLOW_ERROR; bool use_ddoc = d->files.size() > 1; libcdoc::Crypto::Key transportKey = libcdoc::Crypto::generateKey(d->method); - RET_ERROR(d->writeKeyInfo(use_ddoc, d->rcpts, transportKey)); + RET_ERROR(d->writeKeyInfo(use_ddoc, rcpts, transportKey)); RET_ERROR(d->writeElement(Private::DENC, "CipherData", [&] { return d->writeBase64Element(Private::DENC, "CipherValue", [&](DataConsumer &dst) -> int64_t { EncryptionConsumer enc(dst, d->method, transportKey); diff --git a/cdoc/CDoc1Writer.h b/cdoc/CDoc1Writer.h index 9ba0ba9..e5cf62c 100644 --- a/cdoc/CDoc1Writer.h +++ b/cdoc/CDoc1Writer.h @@ -38,6 +38,7 @@ class CDoc1Writer final: public libcdoc::CDocWriter private: CDOC_DISABLE_COPY(CDoc1Writer) + std::vector rcpts; struct Private; std::unique_ptr d; }; diff --git a/cdoc/Utils.cpp b/cdoc/Utils.cpp index 7c1862e..886035c 100644 --- a/cdoc/Utils.cpp +++ b/cdoc/Utils.cpp @@ -23,8 +23,6 @@ #include "json/jwt.h" #include "json/picojson/picojson.h" -#define OPENSSL_SUPPRESS_DEPRECATED - #include #include @@ -60,9 +58,9 @@ getTime() #endif double -timeFromISO(std::string_view iso) +timeFromISO(const std::string& iso) { - std::istringstream in{std::string(iso.data(), iso.size())}; + std::istringstream in{iso}; std::tm t = {}; in >> std::get_time(&t, "%Y-%m-%dT%TZ"); return timegm(&t); diff --git a/cdoc/Utils.h b/cdoc/Utils.h index 7256235..a028389 100644 --- a/cdoc/Utils.h +++ b/cdoc/Utils.h @@ -83,7 +83,7 @@ std::vector JsonToStringArray(std::string_view json); // Get time in seconds since the Epoch double getTime(); -double timeFromISO(std::string_view iso); +double timeFromISO(const std::string& iso); std::string timeToISO(double time); bool isValidUtf8 (std::string str);