@pdfme/pdf-lib 5.4.0-dev.63 → 5.4.0-dev.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/api/PDFDocument.js +3 -11
- package/dist/cjs/src/api/PDFDocument.js.map +1 -1
- package/dist/cjs/src/api/PDFEmbeddedFile.js.map +1 -1
- package/dist/cjs/src/api/PDFEmbeddedPage.js.map +1 -1
- package/dist/cjs/src/api/PDFFont.js.map +1 -1
- package/dist/cjs/src/api/PDFJavaScript.js.map +1 -1
- package/dist/cjs/src/api/PDFPage.js +16 -42
- package/dist/cjs/src/api/PDFPage.js.map +1 -1
- package/dist/cjs/src/api/colors.js.map +1 -1
- package/dist/cjs/src/api/errors.js.map +1 -1
- package/dist/cjs/src/api/form/PDFButton.js +1 -3
- package/dist/cjs/src/api/form/PDFButton.js.map +1 -1
- package/dist/cjs/src/api/form/PDFCheckBox.js +1 -3
- package/dist/cjs/src/api/form/PDFCheckBox.js.map +1 -1
- package/dist/cjs/src/api/form/PDFDropdown.js +1 -3
- package/dist/cjs/src/api/form/PDFDropdown.js.map +1 -1
- package/dist/cjs/src/api/form/PDFField.js +4 -10
- package/dist/cjs/src/api/form/PDFField.js.map +1 -1
- package/dist/cjs/src/api/form/PDFForm.js +1 -3
- package/dist/cjs/src/api/form/PDFForm.js.map +1 -1
- package/dist/cjs/src/api/form/PDFOptionList.js.map +1 -1
- package/dist/cjs/src/api/form/PDFRadioGroup.js +1 -3
- package/dist/cjs/src/api/form/PDFRadioGroup.js.map +1 -1
- package/dist/cjs/src/api/form/PDFSignature.js +1 -3
- package/dist/cjs/src/api/form/PDFSignature.js.map +1 -1
- package/dist/cjs/src/api/form/PDFTextField.js.map +1 -1
- package/dist/cjs/src/api/form/appearances.js.map +1 -1
- package/dist/cjs/src/api/operations.js.map +1 -1
- package/dist/cjs/src/api/operators.js +1 -5
- package/dist/cjs/src/api/operators.js.map +1 -1
- package/dist/cjs/src/api/rotations.js.map +1 -1
- package/dist/cjs/src/api/svg.js +25 -23
- package/dist/cjs/src/api/svg.js.map +1 -1
- package/dist/cjs/src/api/svgPath.js +1 -2
- package/dist/cjs/src/api/svgPath.js.map +1 -1
- package/dist/cjs/src/api/text/layout.js.map +1 -1
- package/dist/cjs/src/core/PDFContext.js.map +1 -1
- package/dist/cjs/src/core/PDFObjectCopier.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroButton.js +1 -2
- package/dist/cjs/src/core/acroform/PDFAcroButton.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroChoice.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroComboBox.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroField.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroForm.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroListBox.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroPushButton.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroSignature.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroTerminal.js.map +1 -1
- package/dist/cjs/src/core/acroform/utils.js.map +1 -1
- package/dist/cjs/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
- package/dist/cjs/src/core/crypto.js +122 -179
- package/dist/cjs/src/core/crypto.js.map +1 -1
- package/dist/cjs/src/core/document/PDFCrossRefSection.js.map +1 -1
- package/dist/cjs/src/core/document/PDFHeader.js.map +1 -1
- package/dist/cjs/src/core/document/PDFTrailer.js.map +1 -1
- package/dist/cjs/src/core/embedders/CMap.js.map +1 -1
- package/dist/cjs/src/core/embedders/CustomFontEmbedder.js +1 -2
- package/dist/cjs/src/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/FileEmbedder.js +3 -7
- package/dist/cjs/src/core/embedders/FileEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/JpegEmbedder.js +1 -3
- package/dist/cjs/src/core/embedders/JpegEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/PDFPageEmbedder.js +11 -7
- package/dist/cjs/src/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/StandardFontEmbedder.js.map +1 -1
- package/dist/cjs/src/core/errors.js +1 -3
- package/dist/cjs/src/core/errors.js.map +1 -1
- package/dist/cjs/src/core/index.js.map +1 -1
- package/dist/cjs/src/core/interactive/ViewerPreferences.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFArray.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFDict.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFName.js +1 -3
- package/dist/cjs/src/core/objects/PDFName.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFRawStream.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFRef.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFStream.js.map +1 -1
- package/dist/cjs/src/core/operators/PDFOperator.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFObjectParser.js +1 -2
- package/dist/cjs/src/core/parser/PDFObjectParser.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFParser.js +1 -2
- package/dist/cjs/src/core/parser/PDFParser.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/dist/cjs/src/core/streams/Ascii85Stream.js.map +1 -1
- package/dist/cjs/src/core/streams/DecryptStream.js.map +1 -1
- package/dist/cjs/src/core/streams/FlateStream.js.map +1 -1
- package/dist/cjs/src/core/streams/LZWStream.js.map +1 -1
- package/dist/cjs/src/core/streams/Stream.js.map +1 -1
- package/dist/cjs/src/core/streams/decode.js +1 -1
- package/dist/cjs/src/core/streams/decode.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFCatalog.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFCrossRefStream.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFFlateStream.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFObjectStream.js +1 -4
- package/dist/cjs/src/core/structures/PDFObjectStream.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFPageLeaf.js +1 -6
- package/dist/cjs/src/core/structures/PDFPageLeaf.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFPageTree.js +1 -1
- package/dist/cjs/src/core/structures/PDFPageTree.js.map +1 -1
- package/dist/cjs/src/core/syntax/Keywords.js +4 -30
- package/dist/cjs/src/core/syntax/Keywords.js.map +1 -1
- package/dist/cjs/src/core/writers/PDFStreamWriter.js.map +1 -1
- package/dist/cjs/src/core/writers/PDFWriter.js.map +1 -1
- package/dist/cjs/src/types/matrix.js.map +1 -1
- package/dist/cjs/src/utils/arrays.js +2 -5
- package/dist/cjs/src/utils/arrays.js.map +1 -1
- package/dist/cjs/src/utils/base64.js.map +1 -1
- package/dist/cjs/src/utils/elements/Arc.js +3 -6
- package/dist/cjs/src/utils/elements/Arc.js.map +1 -1
- package/dist/cjs/src/utils/elements/Circle.js.map +1 -1
- package/dist/cjs/src/utils/elements/Ellipse.js +1 -1
- package/dist/cjs/src/utils/elements/Ellipse.js.map +1 -1
- package/dist/cjs/src/utils/elements/Line.js +1 -3
- package/dist/cjs/src/utils/elements/Line.js.map +1 -1
- package/dist/cjs/src/utils/elements/Segment.js +1 -2
- package/dist/cjs/src/utils/elements/Segment.js.map +1 -1
- package/dist/cjs/src/utils/intersections.js.map +1 -1
- package/dist/cjs/src/utils/maths.js.map +1 -1
- package/dist/cjs/src/utils/strings.js.map +1 -1
- package/dist/cjs/src/utils/unicode.js.map +1 -1
- package/dist/cjs/src/utils/validators.js.map +1 -1
- package/dist/esm/src/api/PDFDocument.js +3 -11
- package/dist/esm/src/api/PDFDocument.js.map +1 -1
- package/dist/esm/src/api/PDFEmbeddedFile.js.map +1 -1
- package/dist/esm/src/api/PDFEmbeddedPage.js.map +1 -1
- package/dist/esm/src/api/PDFFont.js +1 -1
- package/dist/esm/src/api/PDFFont.js.map +1 -1
- package/dist/esm/src/api/PDFJavaScript.js.map +1 -1
- package/dist/esm/src/api/PDFPage.js +16 -42
- package/dist/esm/src/api/PDFPage.js.map +1 -1
- package/dist/esm/src/api/colors.js.map +1 -1
- package/dist/esm/src/api/errors.js.map +1 -1
- package/dist/esm/src/api/form/PDFButton.js +3 -5
- package/dist/esm/src/api/form/PDFButton.js.map +1 -1
- package/dist/esm/src/api/form/PDFCheckBox.js +3 -5
- package/dist/esm/src/api/form/PDFCheckBox.js.map +1 -1
- package/dist/esm/src/api/form/PDFDropdown.js +2 -4
- package/dist/esm/src/api/form/PDFDropdown.js.map +1 -1
- package/dist/esm/src/api/form/PDFField.js +4 -10
- package/dist/esm/src/api/form/PDFField.js.map +1 -1
- package/dist/esm/src/api/form/PDFForm.js +2 -4
- package/dist/esm/src/api/form/PDFForm.js.map +1 -1
- package/dist/esm/src/api/form/PDFOptionList.js +2 -2
- package/dist/esm/src/api/form/PDFOptionList.js.map +1 -1
- package/dist/esm/src/api/form/PDFRadioGroup.js +2 -4
- package/dist/esm/src/api/form/PDFRadioGroup.js.map +1 -1
- package/dist/esm/src/api/form/PDFSignature.js +1 -3
- package/dist/esm/src/api/form/PDFSignature.js.map +1 -1
- package/dist/esm/src/api/form/PDFTextField.js +2 -2
- package/dist/esm/src/api/form/PDFTextField.js.map +1 -1
- package/dist/esm/src/api/form/appearances.js +1 -1
- package/dist/esm/src/api/form/appearances.js.map +1 -1
- package/dist/esm/src/api/operations.js.map +1 -1
- package/dist/esm/src/api/operators.js +2 -6
- package/dist/esm/src/api/operators.js.map +1 -1
- package/dist/esm/src/api/rotations.js.map +1 -1
- package/dist/esm/src/api/svg.js +26 -24
- package/dist/esm/src/api/svg.js.map +1 -1
- package/dist/esm/src/api/svgPath.js +2 -3
- package/dist/esm/src/api/svgPath.js.map +1 -1
- package/dist/esm/src/api/text/layout.js +1 -1
- package/dist/esm/src/api/text/layout.js.map +1 -1
- package/dist/esm/src/core/PDFContext.js.map +1 -1
- package/dist/esm/src/core/PDFObjectCopier.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroButton.js +1 -2
- package/dist/esm/src/core/acroform/PDFAcroButton.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroChoice.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroComboBox.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroField.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroForm.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroListBox.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroPushButton.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroSignature.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroTerminal.js.map +1 -1
- package/dist/esm/src/core/acroform/utils.js.map +1 -1
- package/dist/esm/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
- package/dist/esm/src/core/crypto.js +122 -179
- package/dist/esm/src/core/crypto.js.map +1 -1
- package/dist/esm/src/core/document/PDFCrossRefSection.js.map +1 -1
- package/dist/esm/src/core/document/PDFHeader.js.map +1 -1
- package/dist/esm/src/core/document/PDFTrailer.js.map +1 -1
- package/dist/esm/src/core/embedders/CMap.js +1 -1
- package/dist/esm/src/core/embedders/CMap.js.map +1 -1
- package/dist/esm/src/core/embedders/CustomFontEmbedder.js +2 -3
- package/dist/esm/src/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/FileEmbedder.js +3 -7
- package/dist/esm/src/core/embedders/FileEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/JpegEmbedder.js +1 -3
- package/dist/esm/src/core/embedders/JpegEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/PDFPageEmbedder.js +12 -8
- package/dist/esm/src/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/StandardFontEmbedder.js +1 -1
- package/dist/esm/src/core/embedders/StandardFontEmbedder.js.map +1 -1
- package/dist/esm/src/core/errors.js +1 -3
- package/dist/esm/src/core/errors.js.map +1 -1
- package/dist/esm/src/core/index.js +2 -2
- package/dist/esm/src/core/index.js.map +1 -1
- package/dist/esm/src/core/interactive/ViewerPreferences.js +1 -1
- package/dist/esm/src/core/interactive/ViewerPreferences.js.map +1 -1
- package/dist/esm/src/core/objects/PDFArray.js.map +1 -1
- package/dist/esm/src/core/objects/PDFDict.js.map +1 -1
- package/dist/esm/src/core/objects/PDFName.js +2 -4
- package/dist/esm/src/core/objects/PDFName.js.map +1 -1
- package/dist/esm/src/core/objects/PDFRawStream.js.map +1 -1
- package/dist/esm/src/core/objects/PDFRef.js.map +1 -1
- package/dist/esm/src/core/objects/PDFStream.js.map +1 -1
- package/dist/esm/src/core/operators/PDFOperator.js.map +1 -1
- package/dist/esm/src/core/parser/PDFObjectParser.js +1 -2
- package/dist/esm/src/core/parser/PDFObjectParser.js.map +1 -1
- package/dist/esm/src/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/dist/esm/src/core/parser/PDFParser.js +1 -2
- package/dist/esm/src/core/parser/PDFParser.js.map +1 -1
- package/dist/esm/src/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/dist/esm/src/core/streams/Ascii85Stream.js.map +1 -1
- package/dist/esm/src/core/streams/DecryptStream.js.map +1 -1
- package/dist/esm/src/core/streams/FlateStream.js.map +1 -1
- package/dist/esm/src/core/streams/LZWStream.js.map +1 -1
- package/dist/esm/src/core/streams/Stream.js.map +1 -1
- package/dist/esm/src/core/streams/decode.js +1 -1
- package/dist/esm/src/core/streams/decode.js.map +1 -1
- package/dist/esm/src/core/structures/PDFCatalog.js.map +1 -1
- package/dist/esm/src/core/structures/PDFCrossRefStream.js.map +1 -1
- package/dist/esm/src/core/structures/PDFFlateStream.js.map +1 -1
- package/dist/esm/src/core/structures/PDFObjectStream.js +1 -4
- package/dist/esm/src/core/structures/PDFObjectStream.js.map +1 -1
- package/dist/esm/src/core/structures/PDFPageLeaf.js +1 -6
- package/dist/esm/src/core/structures/PDFPageLeaf.js.map +1 -1
- package/dist/esm/src/core/structures/PDFPageTree.js +1 -1
- package/dist/esm/src/core/structures/PDFPageTree.js.map +1 -1
- package/dist/esm/src/core/syntax/Keywords.js +4 -30
- package/dist/esm/src/core/syntax/Keywords.js.map +1 -1
- package/dist/esm/src/core/writers/PDFStreamWriter.js.map +1 -1
- package/dist/esm/src/core/writers/PDFWriter.js.map +1 -1
- package/dist/esm/src/types/matrix.js.map +1 -1
- package/dist/esm/src/utils/arrays.js +2 -5
- package/dist/esm/src/utils/arrays.js.map +1 -1
- package/dist/esm/src/utils/base64.js.map +1 -1
- package/dist/esm/src/utils/elements/Arc.js +3 -6
- package/dist/esm/src/utils/elements/Arc.js.map +1 -1
- package/dist/esm/src/utils/elements/Circle.js +1 -1
- package/dist/esm/src/utils/elements/Circle.js.map +1 -1
- package/dist/esm/src/utils/elements/Ellipse.js +1 -1
- package/dist/esm/src/utils/elements/Ellipse.js.map +1 -1
- package/dist/esm/src/utils/elements/Line.js +1 -3
- package/dist/esm/src/utils/elements/Line.js.map +1 -1
- package/dist/esm/src/utils/elements/Segment.js +2 -3
- package/dist/esm/src/utils/elements/Segment.js.map +1 -1
- package/dist/esm/src/utils/intersections.js.map +1 -1
- package/dist/esm/src/utils/maths.js.map +1 -1
- package/dist/esm/src/utils/strings.js.map +1 -1
- package/dist/esm/src/utils/unicode.js.map +1 -1
- package/dist/esm/src/utils/validators.js.map +1 -1
- package/dist/node/src/api/PDFDocument.js +3 -11
- package/dist/node/src/api/PDFDocument.js.map +1 -1
- package/dist/node/src/api/PDFEmbeddedFile.js.map +1 -1
- package/dist/node/src/api/PDFEmbeddedPage.js.map +1 -1
- package/dist/node/src/api/PDFFont.js.map +1 -1
- package/dist/node/src/api/PDFJavaScript.js.map +1 -1
- package/dist/node/src/api/PDFPage.js +16 -42
- package/dist/node/src/api/PDFPage.js.map +1 -1
- package/dist/node/src/api/colors.js.map +1 -1
- package/dist/node/src/api/errors.js.map +1 -1
- package/dist/node/src/api/form/PDFButton.js +1 -3
- package/dist/node/src/api/form/PDFButton.js.map +1 -1
- package/dist/node/src/api/form/PDFCheckBox.js +1 -3
- package/dist/node/src/api/form/PDFCheckBox.js.map +1 -1
- package/dist/node/src/api/form/PDFDropdown.js +1 -3
- package/dist/node/src/api/form/PDFDropdown.js.map +1 -1
- package/dist/node/src/api/form/PDFField.js +4 -10
- package/dist/node/src/api/form/PDFField.js.map +1 -1
- package/dist/node/src/api/form/PDFForm.js +1 -3
- package/dist/node/src/api/form/PDFForm.js.map +1 -1
- package/dist/node/src/api/form/PDFOptionList.js.map +1 -1
- package/dist/node/src/api/form/PDFRadioGroup.js +1 -3
- package/dist/node/src/api/form/PDFRadioGroup.js.map +1 -1
- package/dist/node/src/api/form/PDFSignature.js +1 -3
- package/dist/node/src/api/form/PDFSignature.js.map +1 -1
- package/dist/node/src/api/form/PDFTextField.js.map +1 -1
- package/dist/node/src/api/form/appearances.js.map +1 -1
- package/dist/node/src/api/operations.js.map +1 -1
- package/dist/node/src/api/operators.js +1 -5
- package/dist/node/src/api/operators.js.map +1 -1
- package/dist/node/src/api/rotations.js.map +1 -1
- package/dist/node/src/api/svg.js +25 -23
- package/dist/node/src/api/svg.js.map +1 -1
- package/dist/node/src/api/svgPath.js +1 -2
- package/dist/node/src/api/svgPath.js.map +1 -1
- package/dist/node/src/api/text/layout.js.map +1 -1
- package/dist/node/src/core/PDFContext.js.map +1 -1
- package/dist/node/src/core/PDFObjectCopier.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroButton.js +1 -2
- package/dist/node/src/core/acroform/PDFAcroButton.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroChoice.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroComboBox.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroField.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroForm.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroListBox.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroPushButton.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroSignature.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroTerminal.js.map +1 -1
- package/dist/node/src/core/acroform/utils.js.map +1 -1
- package/dist/node/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
- package/dist/node/src/core/crypto.js +122 -179
- package/dist/node/src/core/crypto.js.map +1 -1
- package/dist/node/src/core/document/PDFCrossRefSection.js.map +1 -1
- package/dist/node/src/core/document/PDFHeader.js.map +1 -1
- package/dist/node/src/core/document/PDFTrailer.js.map +1 -1
- package/dist/node/src/core/embedders/CMap.js.map +1 -1
- package/dist/node/src/core/embedders/CustomFontEmbedder.js +1 -2
- package/dist/node/src/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/FileEmbedder.js +3 -7
- package/dist/node/src/core/embedders/FileEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/JpegEmbedder.js +1 -3
- package/dist/node/src/core/embedders/JpegEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/PDFPageEmbedder.js +11 -7
- package/dist/node/src/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/StandardFontEmbedder.js.map +1 -1
- package/dist/node/src/core/errors.js +1 -3
- package/dist/node/src/core/errors.js.map +1 -1
- package/dist/node/src/core/index.js.map +1 -1
- package/dist/node/src/core/interactive/ViewerPreferences.js.map +1 -1
- package/dist/node/src/core/objects/PDFArray.js.map +1 -1
- package/dist/node/src/core/objects/PDFDict.js.map +1 -1
- package/dist/node/src/core/objects/PDFName.js +1 -3
- package/dist/node/src/core/objects/PDFName.js.map +1 -1
- package/dist/node/src/core/objects/PDFRawStream.js.map +1 -1
- package/dist/node/src/core/objects/PDFRef.js.map +1 -1
- package/dist/node/src/core/objects/PDFStream.js.map +1 -1
- package/dist/node/src/core/operators/PDFOperator.js.map +1 -1
- package/dist/node/src/core/parser/PDFObjectParser.js +1 -2
- package/dist/node/src/core/parser/PDFObjectParser.js.map +1 -1
- package/dist/node/src/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/dist/node/src/core/parser/PDFParser.js +1 -2
- package/dist/node/src/core/parser/PDFParser.js.map +1 -1
- package/dist/node/src/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/dist/node/src/core/streams/Ascii85Stream.js.map +1 -1
- package/dist/node/src/core/streams/DecryptStream.js.map +1 -1
- package/dist/node/src/core/streams/FlateStream.js.map +1 -1
- package/dist/node/src/core/streams/LZWStream.js.map +1 -1
- package/dist/node/src/core/streams/Stream.js.map +1 -1
- package/dist/node/src/core/streams/decode.js +1 -1
- package/dist/node/src/core/streams/decode.js.map +1 -1
- package/dist/node/src/core/structures/PDFCatalog.js.map +1 -1
- package/dist/node/src/core/structures/PDFCrossRefStream.js.map +1 -1
- package/dist/node/src/core/structures/PDFFlateStream.js.map +1 -1
- package/dist/node/src/core/structures/PDFObjectStream.js +1 -4
- package/dist/node/src/core/structures/PDFObjectStream.js.map +1 -1
- package/dist/node/src/core/structures/PDFPageLeaf.js +1 -6
- package/dist/node/src/core/structures/PDFPageLeaf.js.map +1 -1
- package/dist/node/src/core/structures/PDFPageTree.js +1 -1
- package/dist/node/src/core/structures/PDFPageTree.js.map +1 -1
- package/dist/node/src/core/syntax/Keywords.js +4 -30
- package/dist/node/src/core/syntax/Keywords.js.map +1 -1
- package/dist/node/src/core/writers/PDFStreamWriter.js.map +1 -1
- package/dist/node/src/core/writers/PDFWriter.js.map +1 -1
- package/dist/node/src/types/matrix.js.map +1 -1
- package/dist/node/src/utils/arrays.js +2 -5
- package/dist/node/src/utils/arrays.js.map +1 -1
- package/dist/node/src/utils/base64.js.map +1 -1
- package/dist/node/src/utils/elements/Arc.js +3 -6
- package/dist/node/src/utils/elements/Arc.js.map +1 -1
- package/dist/node/src/utils/elements/Circle.js.map +1 -1
- package/dist/node/src/utils/elements/Ellipse.js +1 -1
- package/dist/node/src/utils/elements/Ellipse.js.map +1 -1
- package/dist/node/src/utils/elements/Line.js +1 -3
- package/dist/node/src/utils/elements/Line.js.map +1 -1
- package/dist/node/src/utils/elements/Segment.js +1 -2
- package/dist/node/src/utils/elements/Segment.js.map +1 -1
- package/dist/node/src/utils/intersections.js.map +1 -1
- package/dist/node/src/utils/maths.js.map +1 -1
- package/dist/node/src/utils/strings.js.map +1 -1
- package/dist/node/src/utils/unicode.js.map +1 -1
- package/dist/node/src/utils/validators.js.map +1 -1
- package/dist/types/src/api/form/PDFField.d.ts +1 -1
- package/dist/types/src/core/index.d.ts +2 -2
- package/dist/types/src/core/streams/decode.d.ts +1 -1
- package/dist/types/src/core/writers/PDFWriter.d.ts +1 -4
- package/dist/types/src/types/matrix.d.ts +1 -8
- package/package.json +1 -1
- package/src/api/PDFDocument.ts +11 -44
- package/src/api/PDFEmbeddedFile.ts +1 -4
- package/src/api/PDFEmbeddedPage.ts +1 -5
- package/src/api/PDFFont.ts +1 -6
- package/src/api/PDFJavaScript.ts +2 -9
- package/src/api/PDFPage.ts +26 -93
- package/src/api/PDFPageOptions.ts +4 -4
- package/src/api/colors.ts +1 -6
- package/src/api/errors.ts +1 -2
- package/src/api/form/PDFButton.ts +9 -34
- package/src/api/form/PDFCheckBox.ts +4 -19
- package/src/api/form/PDFDropdown.ts +6 -21
- package/src/api/form/PDFField.ts +11 -41
- package/src/api/form/PDFForm.ts +11 -29
- package/src/api/form/PDFOptionList.ts +5 -21
- package/src/api/form/PDFRadioGroup.ts +6 -22
- package/src/api/form/PDFSignature.ts +4 -13
- package/src/api/form/PDFTextField.ts +5 -20
- package/src/api/form/appearances.ts +33 -33
- package/src/api/operations.ts +23 -25
- package/src/api/operators.ts +11 -43
- package/src/api/rotations.ts +1 -4
- package/src/api/svg.ts +145 -195
- package/src/api/svgPath.ts +5 -32
- package/src/api/text/layout.ts +3 -18
- package/src/core/PDFContext.ts +10 -36
- package/src/core/PDFObjectCopier.ts +1 -2
- package/src/core/acroform/PDFAcroButton.ts +3 -13
- package/src/core/acroform/PDFAcroCheckBox.ts +1 -2
- package/src/core/acroform/PDFAcroChoice.ts +2 -9
- package/src/core/acroform/PDFAcroComboBox.ts +1 -2
- package/src/core/acroform/PDFAcroField.ts +1 -2
- package/src/core/acroform/PDFAcroForm.ts +2 -5
- package/src/core/acroform/PDFAcroListBox.ts +1 -2
- package/src/core/acroform/PDFAcroNonTerminal.ts +1 -2
- package/src/core/acroform/PDFAcroPushButton.ts +1 -2
- package/src/core/acroform/PDFAcroRadioButton.ts +1 -2
- package/src/core/acroform/PDFAcroSignature.ts +1 -2
- package/src/core/acroform/PDFAcroTerminal.ts +1 -2
- package/src/core/acroform/utils.ts +3 -9
- package/src/core/annotation/PDFWidgetAnnotation.ts +1 -2
- package/src/core/crypto.ts +143 -287
- package/src/core/document/PDFCrossRefSection.ts +3 -15
- package/src/core/document/PDFHeader.ts +1 -2
- package/src/core/document/PDFTrailer.ts +1 -2
- package/src/core/embedders/CMap.ts +1 -6
- package/src/core/embedders/CustomFontEmbedder.ts +4 -16
- package/src/core/embedders/CustomFontSubsetEmbedder.ts +2 -13
- package/src/core/embedders/FileEmbedder.ts +5 -23
- package/src/core/embedders/JpegEmbedder.ts +2 -11
- package/src/core/embedders/PDFPageEmbedder.ts +12 -14
- package/src/core/embedders/StandardFontEmbedder.ts +3 -12
- package/src/core/errors.ts +1 -3
- package/src/core/index.ts +2 -8
- package/src/core/interactive/ViewerPreferences.ts +4 -18
- package/src/core/objects/PDFArray.ts +2 -8
- package/src/core/objects/PDFDict.ts +3 -11
- package/src/core/objects/PDFName.ts +2 -9
- package/src/core/objects/PDFRawStream.ts +3 -10
- package/src/core/objects/PDFRef.ts +1 -5
- package/src/core/objects/PDFStream.ts +2 -8
- package/src/core/operators/PDFOperator.ts +2 -9
- package/src/core/parser/PDFObjectParser.ts +5 -14
- package/src/core/parser/PDFObjectStreamParser.ts +2 -4
- package/src/core/parser/PDFParser.ts +5 -21
- package/src/core/parser/PDFXRefStreamParser.ts +1 -2
- package/src/core/streams/Ascii85Stream.ts +1 -2
- package/src/core/streams/DecryptStream.ts +2 -9
- package/src/core/streams/FlateStream.ts +4 -14
- package/src/core/streams/LZWStream.ts +2 -9
- package/src/core/streams/Stream.ts +2 -8
- package/src/core/streams/decode.ts +2 -10
- package/src/core/structures/PDFCatalog.ts +2 -6
- package/src/core/structures/PDFCrossRefStream.ts +2 -10
- package/src/core/structures/PDFFlateStream.ts +1 -4
- package/src/core/structures/PDFObjectStream.ts +4 -14
- package/src/core/structures/PDFPageLeaf.ts +9 -28
- package/src/core/structures/PDFPageTree.ts +2 -5
- package/src/core/syntax/Keywords.ts +4 -30
- package/src/core/writers/PDFStreamWriter.ts +2 -11
- package/src/core/writers/PDFWriter.ts +2 -6
- package/src/types/fontkit.ts +3 -16
- package/src/types/index.ts +6 -14
- package/src/types/matrix.ts +1 -8
- package/src/utils/arrays.ts +3 -8
- package/src/utils/base64.ts +2 -4
- package/src/utils/elements/Arc.ts +5 -15
- package/src/utils/elements/Circle.ts +1 -9
- package/src/utils/elements/Ellipse.ts +6 -24
- package/src/utils/elements/Line.ts +1 -3
- package/src/utils/elements/Segment.ts +3 -14
- package/src/utils/intersections.ts +20 -65
- package/src/utils/maths.ts +10 -22
- package/src/utils/strings.ts +6 -16
- package/src/utils/unicode.ts +9 -22
- package/src/utils/validators.ts +9 -45
package/src/core/crypto.ts
CHANGED
|
@@ -77,24 +77,20 @@ class ARCFourCipher {
|
|
|
77
77
|
|
|
78
78
|
const calculateMD5 = (function calculateMD5Closure() {
|
|
79
79
|
const r = new Uint8Array([
|
|
80
|
-
7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
15, 21,
|
|
80
|
+
7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9,
|
|
81
|
+
14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21,
|
|
82
|
+
6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21,
|
|
84
83
|
]);
|
|
85
84
|
|
|
86
85
|
const k = new Int32Array([
|
|
87
|
-
-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606,
|
|
96
|
-
-1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649,
|
|
97
|
-
-145523070, -1120210379, 718787259, -343485551,
|
|
86
|
+
-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983,
|
|
87
|
+
1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329,
|
|
88
|
+
-165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848,
|
|
89
|
+
568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734,
|
|
90
|
+
-378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640,
|
|
91
|
+
681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651,
|
|
92
|
+
-198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799,
|
|
93
|
+
1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551,
|
|
98
94
|
]);
|
|
99
95
|
|
|
100
96
|
function hash(data: Uint8Array, offset: number, length: number) {
|
|
@@ -125,11 +121,7 @@ const calculateMD5 = (function calculateMD5Closure() {
|
|
|
125
121
|
const w = new Int32Array(16);
|
|
126
122
|
for (i = 0; i < paddedLength; ) {
|
|
127
123
|
for (j = 0; j < 16; ++j, i += 4) {
|
|
128
|
-
w[j] =
|
|
129
|
-
padded[i] |
|
|
130
|
-
(padded[i + 1] << 8) |
|
|
131
|
-
(padded[i + 2] << 16) |
|
|
132
|
-
(padded[i + 3] << 24);
|
|
124
|
+
w[j] = padded[i] | (padded[i + 1] << 8) | (padded[i + 2] << 16) | (padded[i + 3] << 24);
|
|
133
125
|
}
|
|
134
126
|
let a = h0,
|
|
135
127
|
b = h1,
|
|
@@ -296,17 +288,14 @@ const calculateSHA256 = (function calculateSHA256Closure() {
|
|
|
296
288
|
}
|
|
297
289
|
|
|
298
290
|
const k = [
|
|
299
|
-
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,
|
|
308
|
-
0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
|
|
309
|
-
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
|
|
291
|
+
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
|
|
292
|
+
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
|
|
293
|
+
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
|
|
294
|
+
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
|
|
295
|
+
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
|
|
296
|
+
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
|
|
297
|
+
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
|
|
298
|
+
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
|
|
310
299
|
];
|
|
311
300
|
|
|
312
301
|
function hash(data: Uint8Array, offset: number, length: number) {
|
|
@@ -343,21 +332,12 @@ const calculateSHA256 = (function calculateSHA256Closure() {
|
|
|
343
332
|
// for each 512 bit block
|
|
344
333
|
for (i = 0; i < paddedLength; ) {
|
|
345
334
|
for (j = 0; j < 16; ++j) {
|
|
346
|
-
w[j] =
|
|
347
|
-
(padded[i] << 24) |
|
|
348
|
-
(padded[i + 1] << 16) |
|
|
349
|
-
(padded[i + 2] << 8) |
|
|
350
|
-
padded[i + 3];
|
|
335
|
+
w[j] = (padded[i] << 24) | (padded[i + 1] << 16) | (padded[i + 2] << 8) | padded[i + 3];
|
|
351
336
|
i += 4;
|
|
352
337
|
}
|
|
353
338
|
|
|
354
339
|
for (j = 16; j < 64; ++j) {
|
|
355
|
-
w[j] =
|
|
356
|
-
(littleSigmaPrime(w[j - 2]) +
|
|
357
|
-
w[j - 7] +
|
|
358
|
-
littleSigma(w[j - 15]) +
|
|
359
|
-
w[j - 16]) |
|
|
360
|
-
0;
|
|
340
|
+
w[j] = (littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16]) | 0;
|
|
361
341
|
}
|
|
362
342
|
let a = h0,
|
|
363
343
|
b = h1,
|
|
@@ -514,12 +494,7 @@ const calculateSHA512 = (function calculateSHA512Closure() {
|
|
|
514
494
|
new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a),
|
|
515
495
|
new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];
|
|
516
496
|
|
|
517
|
-
function hash(
|
|
518
|
-
data: Uint8Array,
|
|
519
|
-
offset: number,
|
|
520
|
-
length: number,
|
|
521
|
-
mode384: boolean = false,
|
|
522
|
-
) {
|
|
497
|
+
function hash(data: Uint8Array, offset: number, length: number, mode384: boolean = false) {
|
|
523
498
|
// initial hash values
|
|
524
499
|
let h0, h1, h2, h3, h4, h5, h6, h7;
|
|
525
500
|
if (!mode384) {
|
|
@@ -595,15 +570,9 @@ const calculateSHA512 = (function calculateSHA512Closure() {
|
|
|
595
570
|
for (i = 0; i < paddedLength; ) {
|
|
596
571
|
for (j = 0; j < 16; ++j) {
|
|
597
572
|
w[j].high =
|
|
598
|
-
(padded[i] << 24) |
|
|
599
|
-
(padded[i + 1] << 16) |
|
|
600
|
-
(padded[i + 2] << 8) |
|
|
601
|
-
padded[i + 3];
|
|
573
|
+
(padded[i] << 24) | (padded[i + 1] << 16) | (padded[i + 2] << 8) | padded[i + 3];
|
|
602
574
|
w[j].low =
|
|
603
|
-
(padded[i + 4] << 24) |
|
|
604
|
-
(padded[i + 5] << 16) |
|
|
605
|
-
(padded[i + 6] << 8) |
|
|
606
|
-
padded[i + 7];
|
|
575
|
+
(padded[i + 4] << 24) | (padded[i + 5] << 16) | (padded[i + 6] << 8) | padded[i + 7];
|
|
607
576
|
i += 8;
|
|
608
577
|
}
|
|
609
578
|
for (j = 16; j < 80; ++j) {
|
|
@@ -718,98 +687,84 @@ class AESBaseCipher {
|
|
|
718
687
|
}
|
|
719
688
|
|
|
720
689
|
this._s = new Uint8Array([
|
|
721
|
-
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,
|
|
740
|
-
0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
|
|
741
|
-
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,
|
|
742
|
-
0xb0, 0x54, 0xbb, 0x16,
|
|
690
|
+
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab,
|
|
691
|
+
0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4,
|
|
692
|
+
0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71,
|
|
693
|
+
0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,
|
|
694
|
+
0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6,
|
|
695
|
+
0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb,
|
|
696
|
+
0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45,
|
|
697
|
+
0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,
|
|
698
|
+
0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44,
|
|
699
|
+
0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a,
|
|
700
|
+
0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49,
|
|
701
|
+
0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,
|
|
702
|
+
0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25,
|
|
703
|
+
0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e,
|
|
704
|
+
0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1,
|
|
705
|
+
0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
|
|
706
|
+
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb,
|
|
707
|
+
0x16,
|
|
743
708
|
]);
|
|
744
709
|
|
|
745
710
|
this._inv_s = new Uint8Array([
|
|
746
|
-
0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e,
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d,
|
|
765
|
-
0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,
|
|
766
|
-
0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63,
|
|
767
|
-
0x55, 0x21, 0x0c, 0x7d,
|
|
711
|
+
0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7,
|
|
712
|
+
0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde,
|
|
713
|
+
0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42,
|
|
714
|
+
0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49,
|
|
715
|
+
0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c,
|
|
716
|
+
0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15,
|
|
717
|
+
0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7,
|
|
718
|
+
0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,
|
|
719
|
+
0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc,
|
|
720
|
+
0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad,
|
|
721
|
+
0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d,
|
|
722
|
+
0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b,
|
|
723
|
+
0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8,
|
|
724
|
+
0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51,
|
|
725
|
+
0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0,
|
|
726
|
+
0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,
|
|
727
|
+
0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c,
|
|
728
|
+
0x7d,
|
|
768
729
|
]);
|
|
769
730
|
|
|
770
731
|
this._mix = new Uint32Array([
|
|
771
|
-
0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927,
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce,
|
|
808
|
-
0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67,
|
|
809
|
-
0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929,
|
|
810
|
-
0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713,
|
|
811
|
-
0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed,
|
|
812
|
-
0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f,
|
|
732
|
+
0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a,
|
|
733
|
+
0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f,
|
|
734
|
+
0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c,
|
|
735
|
+
0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5,
|
|
736
|
+
0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d,
|
|
737
|
+
0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28,
|
|
738
|
+
0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb,
|
|
739
|
+
0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa,
|
|
740
|
+
0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9,
|
|
741
|
+
0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1,
|
|
742
|
+
0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182,
|
|
743
|
+
0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b,
|
|
744
|
+
0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08,
|
|
745
|
+
0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86,
|
|
746
|
+
0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5,
|
|
747
|
+
0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4,
|
|
748
|
+
0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807,
|
|
749
|
+
0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742,
|
|
750
|
+
0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb,
|
|
751
|
+
0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2,
|
|
752
|
+
0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051,
|
|
753
|
+
0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14,
|
|
754
|
+
0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c,
|
|
755
|
+
0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd,
|
|
756
|
+
0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee,
|
|
757
|
+
0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b,
|
|
758
|
+
0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48,
|
|
759
|
+
0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c,
|
|
760
|
+
0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f,
|
|
761
|
+
0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba,
|
|
762
|
+
0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9,
|
|
763
|
+
0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8,
|
|
764
|
+
0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240,
|
|
765
|
+
0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05,
|
|
766
|
+
0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6,
|
|
767
|
+
0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f,
|
|
813
768
|
0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3,
|
|
814
769
|
]);
|
|
815
770
|
|
|
@@ -873,14 +828,7 @@ class AESBaseCipher {
|
|
|
873
828
|
const s1 = this._mix[state[j + 1]];
|
|
874
829
|
const s2 = this._mix[state[j + 2]];
|
|
875
830
|
const s3 = this._mix[state[j + 3]];
|
|
876
|
-
t =
|
|
877
|
-
s0 ^
|
|
878
|
-
(s1 >>> 8) ^
|
|
879
|
-
(s1 << 24) ^
|
|
880
|
-
(s2 >>> 16) ^
|
|
881
|
-
(s2 << 16) ^
|
|
882
|
-
(s3 >>> 24) ^
|
|
883
|
-
(s3 << 8);
|
|
831
|
+
t = s0 ^ (s1 >>> 8) ^ (s1 << 24) ^ (s2 >>> 16) ^ (s2 << 16) ^ (s3 >>> 24) ^ (s3 << 8);
|
|
884
832
|
state[j] = (t >>> 24) & 0xff;
|
|
885
833
|
state[j + 1] = (t >> 16) & 0xff;
|
|
886
834
|
state[j + 2] = (t >> 8) & 0xff;
|
|
@@ -1055,11 +1003,7 @@ class AESBaseCipher {
|
|
|
1055
1003
|
return output;
|
|
1056
1004
|
}
|
|
1057
1005
|
|
|
1058
|
-
decryptBlock(
|
|
1059
|
-
data: Uint8Array,
|
|
1060
|
-
finalize: boolean,
|
|
1061
|
-
iv?: Uint8Array,
|
|
1062
|
-
): Uint8Array {
|
|
1006
|
+
decryptBlock(data: Uint8Array, finalize: boolean, iv?: Uint8Array): Uint8Array {
|
|
1063
1007
|
const sourceLength = data.length;
|
|
1064
1008
|
const buffer = this.buffer;
|
|
1065
1009
|
let bufferLength = this.bufferPosition;
|
|
@@ -1068,11 +1012,7 @@ class AESBaseCipher {
|
|
|
1068
1012
|
if (iv) {
|
|
1069
1013
|
this.iv = iv;
|
|
1070
1014
|
} else {
|
|
1071
|
-
for (
|
|
1072
|
-
let i = 0;
|
|
1073
|
-
bufferLength < 16 && i < sourceLength;
|
|
1074
|
-
++i, ++bufferLength
|
|
1075
|
-
) {
|
|
1015
|
+
for (let i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {
|
|
1076
1016
|
buffer[bufferLength] = data[i];
|
|
1077
1017
|
}
|
|
1078
1018
|
if (bufferLength < 16) {
|
|
@@ -1144,28 +1084,24 @@ class AES128Cipher extends AESBaseCipher {
|
|
|
1144
1084
|
this._keySize = 160; // bits
|
|
1145
1085
|
|
|
1146
1086
|
this._rcon = new Uint8Array([
|
|
1147
|
-
0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,
|
|
1163
|
-
0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb,
|
|
1164
|
-
0x8d,
|
|
1165
|
-
0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,
|
|
1166
|
-
0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,
|
|
1167
|
-
0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,
|
|
1168
|
-
0x74, 0xe8, 0xcb, 0x8d,
|
|
1087
|
+
0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d,
|
|
1088
|
+
0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5,
|
|
1089
|
+
0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc,
|
|
1090
|
+
0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
|
|
1091
|
+
0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,
|
|
1092
|
+
0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f,
|
|
1093
|
+
0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02,
|
|
1094
|
+
0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e,
|
|
1095
|
+
0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72,
|
|
1096
|
+
0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,
|
|
1097
|
+
0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,
|
|
1098
|
+
0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d,
|
|
1099
|
+
0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94,
|
|
1100
|
+
0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10,
|
|
1101
|
+
0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6,
|
|
1102
|
+
0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,
|
|
1103
|
+
0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb,
|
|
1104
|
+
0x8d,
|
|
1169
1105
|
]);
|
|
1170
1106
|
|
|
1171
1107
|
this._key = this._expandKey(key);
|
|
@@ -1310,11 +1246,7 @@ class PDF17 {
|
|
|
1310
1246
|
return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));
|
|
1311
1247
|
}
|
|
1312
1248
|
|
|
1313
|
-
getUserKey(
|
|
1314
|
-
password: Uint8Array,
|
|
1315
|
-
userKeySalt: Uint8Array,
|
|
1316
|
-
userEncryption: Uint8Array,
|
|
1317
|
-
) {
|
|
1249
|
+
getUserKey(password: Uint8Array, userKeySalt: Uint8Array, userEncryption: Uint8Array) {
|
|
1318
1250
|
const hashData = new Uint8Array(password.length + 8);
|
|
1319
1251
|
hashData.set(password, 0);
|
|
1320
1252
|
hashData.set(userKeySalt, password.length);
|
|
@@ -1326,11 +1258,7 @@ class PDF17 {
|
|
|
1326
1258
|
}
|
|
1327
1259
|
|
|
1328
1260
|
class PDF20 {
|
|
1329
|
-
calculatePDF20Hash(
|
|
1330
|
-
password: Uint8Array,
|
|
1331
|
-
input: Uint8Array,
|
|
1332
|
-
userBytes: Uint8Array,
|
|
1333
|
-
) {
|
|
1261
|
+
calculatePDF20Hash(password: Uint8Array, input: Uint8Array, userBytes: Uint8Array) {
|
|
1334
1262
|
// This refers to Algorithm 2.B as defined in ISO 32000-2.
|
|
1335
1263
|
let k = calculateSHA256(input, 0, input.length).subarray(0, 32);
|
|
1336
1264
|
let e: Uint8Array = new Uint8Array([0]);
|
|
@@ -1398,11 +1326,7 @@ class PDF20 {
|
|
|
1398
1326
|
const hashData = new Uint8Array(password.length + 8);
|
|
1399
1327
|
hashData.set(password, 0);
|
|
1400
1328
|
hashData.set(userValidationSalt, password.length);
|
|
1401
|
-
const result = this.calculatePDF20Hash(
|
|
1402
|
-
password,
|
|
1403
|
-
hashData,
|
|
1404
|
-
new Uint8Array(),
|
|
1405
|
-
);
|
|
1329
|
+
const result = this.calculatePDF20Hash(password, hashData, new Uint8Array());
|
|
1406
1330
|
return isArrayEqual(result, userPassword);
|
|
1407
1331
|
}
|
|
1408
1332
|
|
|
@@ -1421,11 +1345,7 @@ class PDF20 {
|
|
|
1421
1345
|
return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));
|
|
1422
1346
|
}
|
|
1423
1347
|
|
|
1424
|
-
getUserKey(
|
|
1425
|
-
password: Uint8Array,
|
|
1426
|
-
userKeySalt: Uint8Array,
|
|
1427
|
-
userEncryption: Uint8Array,
|
|
1428
|
-
) {
|
|
1348
|
+
getUserKey(password: Uint8Array, userKeySalt: Uint8Array, userEncryption: Uint8Array) {
|
|
1429
1349
|
const hashData = new Uint8Array(password.length + 8);
|
|
1430
1350
|
hashData.set(password, 0);
|
|
1431
1351
|
hashData.set(userKeySalt, password.length);
|
|
@@ -1441,10 +1361,7 @@ class CipherTransform {
|
|
|
1441
1361
|
private StringCipherConstructor: () => Cipher;
|
|
1442
1362
|
private StreamCipherConstructor: () => Cipher;
|
|
1443
1363
|
|
|
1444
|
-
constructor(
|
|
1445
|
-
stringCipherConstructor: () => Cipher,
|
|
1446
|
-
streamCipherConstructor: () => Cipher,
|
|
1447
|
-
) {
|
|
1364
|
+
constructor(stringCipherConstructor: () => Cipher, streamCipherConstructor: () => Cipher) {
|
|
1448
1365
|
this.StringCipherConstructor = stringCipherConstructor;
|
|
1449
1366
|
this.StreamCipherConstructor = streamCipherConstructor;
|
|
1450
1367
|
}
|
|
@@ -1524,9 +1441,8 @@ class CipherTransformFactory {
|
|
|
1524
1441
|
eff!: PDFName;
|
|
1525
1442
|
|
|
1526
1443
|
private defaultPasswordBytes = new Uint8Array([
|
|
1527
|
-
0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56,
|
|
1528
|
-
|
|
1529
|
-
0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a,
|
|
1444
|
+
0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56, 0xff, 0xfa, 0x01, 0x08,
|
|
1445
|
+
0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80, 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a,
|
|
1530
1446
|
]);
|
|
1531
1447
|
private identityName = PDFName.of('Identity');
|
|
1532
1448
|
|
|
@@ -1558,9 +1474,7 @@ class CipherTransformFactory {
|
|
|
1558
1474
|
const streamCryptoName = dict.get(PDFName.of('StmF')) as PDFName;
|
|
1559
1475
|
if (cfDict instanceof PDFDict && streamCryptoName instanceof PDFName) {
|
|
1560
1476
|
cfDict.suppressEncryption = true;
|
|
1561
|
-
const handlerDict = cfDict.get(
|
|
1562
|
-
PDFName.of(streamCryptoName.asString()),
|
|
1563
|
-
) as PDFDict;
|
|
1477
|
+
const handlerDict = cfDict.get(PDFName.of(streamCryptoName.asString())) as PDFDict;
|
|
1564
1478
|
let keyLen: PDFNumber | null = null;
|
|
1565
1479
|
if (handlerDict) {
|
|
1566
1480
|
keyLen = handlerDict.get(PDFName.of('Length')) as PDFNumber;
|
|
@@ -1588,8 +1502,7 @@ class CipherTransformFactory {
|
|
|
1588
1502
|
// meaningful when V is 4 or 5
|
|
1589
1503
|
const encryptMetadata =
|
|
1590
1504
|
(algorithm === 4 || algorithm === 5) &&
|
|
1591
|
-
(dict.get(PDFName.of('EncryptMetadata')) as PDFBool)?.asBoolean() !==
|
|
1592
|
-
false;
|
|
1505
|
+
(dict.get(PDFName.of('EncryptMetadata')) as PDFBool)?.asBoolean() !== false;
|
|
1593
1506
|
this.encryptMetadata = encryptMetadata;
|
|
1594
1507
|
|
|
1595
1508
|
let passwordBytes: Uint8Array | undefined;
|
|
@@ -1598,10 +1511,7 @@ class CipherTransformFactory {
|
|
|
1598
1511
|
try {
|
|
1599
1512
|
password = unescape(encodeURIComponent(password));
|
|
1600
1513
|
} catch (ex) {
|
|
1601
|
-
console.warn(
|
|
1602
|
-
'CipherTransformFactory: ' +
|
|
1603
|
-
'Unable to convert UTF8 encoded password.',
|
|
1604
|
-
);
|
|
1514
|
+
console.warn('CipherTransformFactory: ' + 'Unable to convert UTF8 encoded password.');
|
|
1605
1515
|
}
|
|
1606
1516
|
}
|
|
1607
1517
|
passwordBytes = stringAsByteArray(password!);
|
|
@@ -1626,12 +1536,8 @@ class CipherTransformFactory {
|
|
|
1626
1536
|
const userValidationSalt = uPdfStr.subarray(32, 40);
|
|
1627
1537
|
const userKeySalt = uPdfStr.subarray(40, 48);
|
|
1628
1538
|
|
|
1629
|
-
const ownerEncryption = (
|
|
1630
|
-
|
|
1631
|
-
).asBytes();
|
|
1632
|
-
const userEncryption = (
|
|
1633
|
-
dict.get(PDFName.of('UE')) as PDFString
|
|
1634
|
-
).asBytes();
|
|
1539
|
+
const ownerEncryption = (dict.get(PDFName.of('OE')) as PDFString).asBytes();
|
|
1540
|
+
const userEncryption = (dict.get(PDFName.of('UE')) as PDFString).asBytes();
|
|
1635
1541
|
const perms = (dict.get(PDFName.of('Perms')) as PDFString).asBytes();
|
|
1636
1542
|
encryptionKey = this.createEncryptionKey20(
|
|
1637
1543
|
revision,
|
|
@@ -1686,10 +1592,8 @@ class CipherTransformFactory {
|
|
|
1686
1592
|
cf.suppressEncryption = true;
|
|
1687
1593
|
}
|
|
1688
1594
|
this.cf = cf;
|
|
1689
|
-
this.stmf =
|
|
1690
|
-
|
|
1691
|
-
this.strf =
|
|
1692
|
-
(dict.get(PDFName.of('StrF')) as PDFName) || this.identityName;
|
|
1595
|
+
this.stmf = (dict.get(PDFName.of('StmF')) as PDFName) || this.identityName;
|
|
1596
|
+
this.strf = (dict.get(PDFName.of('StrF')) as PDFName) || this.identityName;
|
|
1693
1597
|
this.eff = (dict.get(PDFName.of('EFF')) as PDFName) || this.stmf;
|
|
1694
1598
|
}
|
|
1695
1599
|
}
|
|
@@ -1697,29 +1601,12 @@ class CipherTransformFactory {
|
|
|
1697
1601
|
createCipherTransform(num: number, gen: number) {
|
|
1698
1602
|
if (this.algorithm === 4 || this.algorithm === 5) {
|
|
1699
1603
|
return new CipherTransform(
|
|
1700
|
-
this.buildCipherConstructor(
|
|
1701
|
-
|
|
1702
|
-
this.strf,
|
|
1703
|
-
num,
|
|
1704
|
-
gen,
|
|
1705
|
-
this.encryptionKey,
|
|
1706
|
-
),
|
|
1707
|
-
this.buildCipherConstructor(
|
|
1708
|
-
this.cf,
|
|
1709
|
-
this.stmf,
|
|
1710
|
-
num,
|
|
1711
|
-
gen,
|
|
1712
|
-
this.encryptionKey,
|
|
1713
|
-
),
|
|
1604
|
+
this.buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey),
|
|
1605
|
+
this.buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey),
|
|
1714
1606
|
);
|
|
1715
1607
|
}
|
|
1716
1608
|
// algorithms 1 and 2
|
|
1717
|
-
const key = this.buildObjectKey(
|
|
1718
|
-
num,
|
|
1719
|
-
gen,
|
|
1720
|
-
this.encryptionKey,
|
|
1721
|
-
/* isAes = */ false,
|
|
1722
|
-
);
|
|
1609
|
+
const key = this.buildObjectKey(num, gen, this.encryptionKey, /* isAes = */ false);
|
|
1723
1610
|
const cipherConstructor = function buildCipherCipherConstructor() {
|
|
1724
1611
|
return new ARCFourCipher(key);
|
|
1725
1612
|
};
|
|
@@ -1753,25 +1640,13 @@ class CipherTransformFactory {
|
|
|
1753
1640
|
pdfAlgorithm = new PDF17();
|
|
1754
1641
|
}
|
|
1755
1642
|
|
|
1756
|
-
if (
|
|
1757
|
-
pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)
|
|
1758
|
-
) {
|
|
1643
|
+
if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) {
|
|
1759
1644
|
return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);
|
|
1760
1645
|
} else if (
|
|
1761
1646
|
password.length &&
|
|
1762
|
-
pdfAlgorithm.checkOwnerPassword(
|
|
1763
|
-
password,
|
|
1764
|
-
ownerValidationSalt,
|
|
1765
|
-
uBytes,
|
|
1766
|
-
ownerPassword,
|
|
1767
|
-
)
|
|
1647
|
+
pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)
|
|
1768
1648
|
) {
|
|
1769
|
-
return pdfAlgorithm.getOwnerKey(
|
|
1770
|
-
password,
|
|
1771
|
-
ownerKeySalt,
|
|
1772
|
-
uBytes,
|
|
1773
|
-
ownerEncryption,
|
|
1774
|
-
);
|
|
1649
|
+
return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption);
|
|
1775
1650
|
}
|
|
1776
1651
|
|
|
1777
1652
|
return null;
|
|
@@ -1906,12 +1781,7 @@ class CipherTransformFactory {
|
|
|
1906
1781
|
return userPassword;
|
|
1907
1782
|
}
|
|
1908
1783
|
|
|
1909
|
-
buildObjectKey(
|
|
1910
|
-
num: number,
|
|
1911
|
-
gen: number,
|
|
1912
|
-
encryptionKey: Uint8Array,
|
|
1913
|
-
isAes: boolean = false,
|
|
1914
|
-
) {
|
|
1784
|
+
buildObjectKey(num: number, gen: number, encryptionKey: Uint8Array, isAes: boolean = false) {
|
|
1915
1785
|
const key = new Uint8Array(encryptionKey.length + 9);
|
|
1916
1786
|
const n = encryptionKey.length;
|
|
1917
1787
|
let i;
|
|
@@ -1933,19 +1803,11 @@ class CipherTransformFactory {
|
|
|
1933
1803
|
return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));
|
|
1934
1804
|
}
|
|
1935
1805
|
|
|
1936
|
-
buildCipherConstructor(
|
|
1937
|
-
cf: PDFDict,
|
|
1938
|
-
name: PDFName,
|
|
1939
|
-
num: number,
|
|
1940
|
-
gen: number,
|
|
1941
|
-
key: Uint8Array,
|
|
1942
|
-
) {
|
|
1806
|
+
buildCipherConstructor(cf: PDFDict, name: PDFName, num: number, gen: number, key: Uint8Array) {
|
|
1943
1807
|
if (!(name instanceof PDFName)) {
|
|
1944
1808
|
throw new Error('Invalid crypt filter name.');
|
|
1945
1809
|
}
|
|
1946
|
-
const cryptFilter = cf.get(
|
|
1947
|
-
PDFName.of(name.asString().replace('/', '')),
|
|
1948
|
-
) as PDFDict;
|
|
1810
|
+
const cryptFilter = cf.get(PDFName.of(name.asString().replace('/', ''))) as PDFDict;
|
|
1949
1811
|
let cfm;
|
|
1950
1812
|
if (cryptFilter !== null && cryptFilter !== undefined) {
|
|
1951
1813
|
cfm = cryptFilter.get(PDFName.of('CFM')) as PDFName;
|
|
@@ -1956,16 +1818,10 @@ class CipherTransformFactory {
|
|
|
1956
1818
|
};
|
|
1957
1819
|
}
|
|
1958
1820
|
if (cfm.asString() === '/V2') {
|
|
1959
|
-
return () =>
|
|
1960
|
-
new ARCFourCipher(
|
|
1961
|
-
this.buildObjectKey(num, gen, key, /* isAes = */ false),
|
|
1962
|
-
);
|
|
1821
|
+
return () => new ARCFourCipher(this.buildObjectKey(num, gen, key, /* isAes = */ false));
|
|
1963
1822
|
}
|
|
1964
1823
|
if (cfm.asString() === '/AESV2') {
|
|
1965
|
-
return () =>
|
|
1966
|
-
new AES128Cipher(
|
|
1967
|
-
this.buildObjectKey(num, gen, key, /* isAes = */ true),
|
|
1968
|
-
);
|
|
1824
|
+
return () => new AES128Cipher(this.buildObjectKey(num, gen, key, /* isAes = */ true));
|
|
1969
1825
|
}
|
|
1970
1826
|
if (cfm.asString() === '/AESV3') {
|
|
1971
1827
|
return () => new AES256Cipher(key);
|