diff options
author | m-holger <m-holger@kubitscheck.org> | 2022-07-23 17:48:28 +0200 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2022-07-24 17:02:35 +0200 |
commit | f7978db1f604083c16733952d2b01d3b0f4b0a6a (patch) | |
tree | 44bb02e178aa305ca06a0140dbefe9748a72bc0f /libqpdf/QPDF_encryption.cc | |
parent | 3404ca8ac8e19ccba5ff2d7426081a593880f1c0 (diff) | |
download | qpdf-f7978db1f604083c16733952d2b01d3b0f4b0a6a.tar.zst |
QPDFObjGen : tidy QPDF private methods
Change method signatures to use QPDFObjGen.
Use QPDFObjGen methods where possible.
Remove redundant QPDF::objGenToIndirect.
Diffstat (limited to 'libqpdf/QPDF_encryption.cc')
-rw-r--r-- | libqpdf/QPDF_encryption.cc | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/libqpdf/QPDF_encryption.cc b/libqpdf/QPDF_encryption.cc index 95d5ea37..8c35b992 100644 --- a/libqpdf/QPDF_encryption.cc +++ b/libqpdf/QPDF_encryption.cc @@ -1075,8 +1075,7 @@ QPDF::initializeEncryption() std::string QPDF::getKeyForObject( std::shared_ptr<EncryptionParameters> encp, - int objid, - int generation, + QPDFObjGen const& og, bool use_aes) { if (!encp->encrypted) { @@ -1084,26 +1083,24 @@ QPDF::getKeyForObject( "request for encryption key in non-encrypted PDF"); } - if (!((objid == encp->cached_key_objid) && - (generation == encp->cached_key_generation))) { + if (og != encp->cached_key_og) { encp->cached_object_encryption_key = compute_data_key( encp->encryption_key, - objid, - generation, + og.getObj(), + og.getGen(), use_aes, encp->encryption_V, encp->encryption_R); - encp->cached_key_objid = objid; - encp->cached_key_generation = generation; + encp->cached_key_og = og; } return encp->cached_object_encryption_key; } void -QPDF::decryptString(std::string& str, int objid, int generation) +QPDF::decryptString(std::string& str, QPDFObjGen const& og) { - if (objid == 0) { + if (!og.isIndirect()) { return; } bool use_aes = false; @@ -1139,8 +1136,7 @@ QPDF::decryptString(std::string& str, int objid, int generation) } } - std::string key = - getKeyForObject(this->m->encp, objid, generation, use_aes); + std::string key = getKeyForObject(this->m->encp, og, use_aes); try { if (use_aes) { QTC::TC("qpdf", "QPDF_encryption aes decode string"); @@ -1175,8 +1171,8 @@ QPDF::decryptString(std::string& str, int objid, int generation) this->m->file->getName(), this->m->last_object_description, this->m->file->getLastOffset(), - "error decrypting string for object " + - QPDFObjGen(objid, generation).unparse() + ": " + e.what()); + "error decrypting string for object " + og.unparse() + ": " + + e.what()); } } @@ -1186,8 +1182,7 @@ QPDF::decryptStream( std::shared_ptr<InputSource> file, QPDF& qpdf_for_warning, Pipeline*& pipeline, - int objid, - int generation, + QPDFObjGen const& og, QPDFObjectHandle& stream_dict, std::vector<std::shared_ptr<Pipeline>>& heap) { @@ -1282,7 +1277,7 @@ QPDF::decryptStream( break; } } - std::string key = getKeyForObject(encp, objid, generation, use_aes); + std::string key = getKeyForObject(encp, og, use_aes); std::shared_ptr<Pipeline> new_pipeline; if (use_aes) { QTC::TC("qpdf", "QPDF_encryption aes decode stream"); |