Commit c5efd0c35b21722d4003215adb9857ee923ebe01
1 parent
974bc7cf
Refactor `QPDF_encryption`: replace `getKey` and `getName` with `Name` and opera…
…tor[] for improved clarity and consistency, and remove unused test coverage entries.
Showing
2 changed files
with
8 additions
and
16 deletions
libqpdf/QPDF_encryption.cc
| ... | ... | @@ -676,8 +676,7 @@ QPDF::EncryptionParameters::initialize(QPDF& qpdf) |
| 676 | 676 | throw qpdf.damagedPDF("/Encrypt in trailer dictionary is not a dictionary"); |
| 677 | 677 | } |
| 678 | 678 | |
| 679 | - if (!(encryption_dict.getKey("/Filter").isName() && | |
| 680 | - (encryption_dict.getKey("/Filter").getName() == "/Standard"))) { | |
| 679 | + if (Name(encryption_dict["/Filter"]) != "/Standard") { | |
| 681 | 680 | throw unsupported("unsupported encryption filter"); |
| 682 | 681 | } |
| 683 | 682 | if (!encryption_dict.getKey("/SubFilter").null()) { |
| ... | ... | @@ -765,16 +764,12 @@ QPDF::EncryptionParameters::initialize(QPDF& qpdf) |
| 765 | 764 | for (auto const& [filter, cdict]: CF.as_dictionary()) { |
| 766 | 765 | if (cdict.isDictionary()) { |
| 767 | 766 | encryption_method_e method = e_none; |
| 768 | - if (cdict.getKey("/CFM").isName()) { | |
| 769 | - std::string method_name = cdict.getKey("/CFM").getName(); | |
| 770 | - if (method_name == "/V2") { | |
| 771 | - QTC::TC("qpdf", "QPDF_encryption CFM V2"); | |
| 767 | + if (Name const& CFM = cdict["/CFM"]) { | |
| 768 | + if (CFM == "/V2") { | |
| 772 | 769 | method = e_rc4; |
| 773 | - } else if (method_name == "/AESV2") { | |
| 774 | - QTC::TC("qpdf", "QPDF_encryption CFM AESV2"); | |
| 770 | + } else if (CFM == "/AESV2") { | |
| 775 | 771 | method = e_aes; |
| 776 | - } else if (method_name == "/AESV3") { | |
| 777 | - QTC::TC("qpdf", "QPDF_encryption CFM AESV3"); | |
| 772 | + } else if (CFM == "/AESV3") { | |
| 778 | 773 | method = e_aesv3; |
| 779 | 774 | } else { |
| 780 | 775 | // Don't complain now -- maybe we won't need to reference this type. |
| ... | ... | @@ -785,9 +780,9 @@ QPDF::EncryptionParameters::initialize(QPDF& qpdf) |
| 785 | 780 | } |
| 786 | 781 | } |
| 787 | 782 | |
| 788 | - cf_stream = interpretCF(encryption_dict.getKey("/StmF")); | |
| 789 | - cf_string = interpretCF(encryption_dict.getKey("/StrF")); | |
| 790 | - if (auto EFF = encryption_dict.getKey("/EFF"); EFF.isName()) { | |
| 783 | + cf_stream = interpretCF(encryption_dict["/StmF"]); | |
| 784 | + cf_string = interpretCF(encryption_dict["/StrF"]); | |
| 785 | + if (Name const& EFF = encryption_dict["/EFF"]) { | |
| 791 | 786 | // qpdf does not use this for anything other than informational purposes. This is |
| 792 | 787 | // intended to instruct conforming writers on which crypt filter should be used when new |
| 793 | 788 | // file attachments are added to a PDF file, but qpdf never generates encrypted files | ... | ... |
qpdf/qpdf.testcov
| ... | ... | @@ -143,8 +143,6 @@ qpdf-c called qpdf_init_write multiple times 0 |
| 143 | 143 | QPDF_encryption rc4 decode string 0 |
| 144 | 144 | QPDF_encryption rc4 decode stream 0 |
| 145 | 145 | QPDFWriter not compressing metadata 0 |
| 146 | -QPDF_encryption CFM V2 0 | |
| 147 | -QPDF_encryption CFM AESV2 0 | |
| 148 | 146 | QPDF_encryption aes decode string 0 |
| 149 | 147 | QPDF_encryption cleartext metadata 0 |
| 150 | 148 | QPDF_encryption aes decode stream 0 |
| ... | ... | @@ -222,7 +220,6 @@ QPDFWriter remove ADBE 0 |
| 222 | 220 | QPDFWriter remove existing Extensions 0 |
| 223 | 221 | QPDFWriter preserve ADBE 0 |
| 224 | 222 | QPDF_encryption skip 0x28 0 |
| 225 | -QPDF_encryption CFM AESV3 0 | |
| 226 | 223 | qpdf-c called qpdf_get_pdf_extension_level 0 |
| 227 | 224 | qpdf-c called qpdf_set_r5_encryption_parameters 0 |
| 228 | 225 | qpdf-c called qpdf_set_r6_encryption_parameters 0 | ... | ... |