-
…implify padding logic, and streamline password handling across methods.
-
…nline previously separate method, and streamline data encoding logic.
-
…ased logic in `setEncryptionMinimumVersion`, and reduce redundancy across `QPDFWriter` methods.
-
…ption dictionary generation, and reduce redundancy in encryption handling logic.
-
… encryption handling, and reduce redundancy across methods.
-
…`, simplify method signatures, and centralize logic in `QPDF::EncryptionData` for improved maintainability.
-
…ng in method parameters, and simplify encryption logic for improved maintainability and reduced redundancy.
-
…uce redundancy, improve maintainability, and streamline parameter handling.
-
…ling, and improve maintainability.
-
…Perms_value_V5` methods; inline their logic into `setV5EncryptionParameters` to simplify encryption data processing.
-
…dom_string`, improve readability of salts and keys handling, and streamline `compute_Perms_value_V5_clear` logic by returning strings directly.
-
…std::bitset`, reorganizing related methods, and simplifying access to improve clarity and maintainability.
-
…irectly access encryption parameters for improved clarity and maintainability.
-
…, transition `interpretCF` to a class method, and eliminate redundant parameter passing for improved clarity and maintainability.
-
…rs::initialize` and replacing shared pointers with references for improved clarity and maintainability.
-
…t parameter passing, and improve maintainability. Change static functions and QPDF methods to EncryptionData methods.
-
Miscellaneous code modernisation
-
Streamlined method definitions, replaced explicit loop counters with range-based loops, and added `final` specifier to class and methods to ensure overriding restrictions. Simplified constructor and member variable initialization.
-
…ssing to simplify buffer handling
-
…cess for consistency and readability.
-
Refactor object reading logic in `QPDF` for clarity and improved main…
-
Simplify `readObjectAtOffset` by splitting responsibilities into separate functions: `read_object_start` and a streamlined `readObjectAtOffset`. Remove redundant parameters and improve code readability, ensuring better modularity for object reading operations.
-
Extend xref reconstruction sanity checks
-
After xref reconstruction treat the input file as suspect and apply sanity checks to all subsequent object reads. Remove `in_xref_reconstruction` flag and update references to use `reconstructed_xref` for simplified state management during xref processing. Adjust warnings for invalid dictionary keys in test output.
-
Refactor `Pl_DCT` buffer management to use `std::string` and simplify…
-
…n/decompression logic. Remove redundant `Buffer` class dependency.
-
Apply sanity checks on dangling reference object ids encountered before
-
the xref table has been loaded
-
Improve sanity checks and error handling in `QPDFParser`
-
Enhanced handling of unexpected tokens during xref table reconstruction. Adjusted logic for invalid tokens, ensuring better robustness during PDF parsing of corrupt PDF files.
-
Enhance error handling for unexpected tokens during sanity checks
-
Implemented stricter sanity checks to handle unexpected tokens like array/dictionary close and endobj/endstream more effectively. Improved warning messages and handling of corrupt objects to enhance PDF parsing robustness.
-
Apply sanity checks during xref stream parsing
-
Detect corrupt xref streams early to avoid excessive runtime and memory usage.
-
Fix apparent typo for zopfli enablement
-
Refactor ADBE handling logic in QPDFWriter.
-
Reorganized and cleaned up the logic for managing ADBE entries in the /Extensions dictionary, improving clarity and maintainability. Adjusted object shallow copying to avoid unnecessary copying.
-
Fix startxref recovery
-
Backup and restore the xref table during attempted startxref recovery to avoid corrupt states. Added a guard condition to handle invalid xref entries types, preventing processing of unsupported cases. These changes improve robustness during PDF parsing and recovery.