Jay Berkenbilt
4a1cce0a47
Reimplement name and number tree object helpers
...
Create a computationally and memory efficient implementation of name
and number trees that does binary searches as intended by the data
structure rather than loading into a map, which can use a great deal
of memory and can be very slow.
2021-01-24 03:22:51 -05:00
Jay Berkenbilt
39bfa01307
Implement user-provided stream filters
...
Refactor QPDF_Stream to use stream filter classes to handle supported
stream filters as well.
2020-12-28 12:58:19 -05:00
Jay Berkenbilt
77198d5310
Delegate random number generation to crypto provider ( fixes #418 )
2020-04-06 11:23:02 -04:00
Dean Scarff
0f2507234f
Add OpenSSL/BoringSSL crypto provider
...
Fixes qpdf/qpdf#417
2020-04-06 09:01:55 -04:00
Jay Berkenbilt
88bedb41fe
Implement gnutls crypto provider ( fixes #218 )
...
Thanks to Zdenek Dohnal <zdohnal@redhat.com> for contributing the code
used for the gnutls crypto provider.
2019-11-09 09:53:38 -05:00
Jay Berkenbilt
cc14523440
Update autoconf to support crypto selection
2019-11-09 08:18:02 -05:00
Jay Berkenbilt
c03ced09c0
Isolate source files used for native crypto
2019-11-09 08:18:02 -05:00
Jay Berkenbilt
c8cda4f965
AES_PDF: switch to pluggable crypto
2019-11-09 08:18:02 -05:00
Jay Berkenbilt
bb427bd117
SHA2: switch to pluggable crypto
2019-11-09 08:18:02 -05:00
Jay Berkenbilt
4287fcc002
RC4: switch to pluggable crypto
2019-11-09 08:18:02 -05:00
Jay Berkenbilt
ce8f9b6608
MD5: switch to pluggable crypto
2019-11-09 08:18:02 -05:00
Jay Berkenbilt
2de41856a0
QPDFCryptoProvider: initial implementation
2019-11-09 08:18:02 -05:00
Jay Berkenbilt
e83f3308fb
SparseOHArray
2019-08-17 23:02:41 -04:00
Jay Berkenbilt
daeb5a85b6
Transformation matrix
2018-12-31 18:23:47 -05:00
Jay Berkenbilt
d5d179f441
Add document and object helpers for outlines (bookmarks)
2018-12-21 19:11:57 -05:00
Jay Berkenbilt
651179b5da
Add simple JSON serializer
2018-12-21 18:34:56 -05:00
Jay Berkenbilt
0776c00129
Add QPDFNameTreeObjectHelper
2018-12-21 18:34:56 -05:00
Jay Berkenbilt
6ef9e31233
Add QPDFPageLabelDocumentHelper
2018-12-18 16:59:24 -05:00
Jay Berkenbilt
f38df27aa3
Add QPDFNumberTreeObjectHelper
2018-12-18 16:46:10 -05:00
Jay Berkenbilt
b4bdc42b4f
New exception class QPDFSystemError ( fixes #221 )
2018-08-13 20:01:51 -04:00
Jay Berkenbilt
4ccc8b1a44
Add ClosedFileInputSource
...
ClosedFileInputSource is an input source that keeps the file closed
when not reading it.
2018-06-22 12:52:45 -04:00
Jay Berkenbilt
0b05111db8
Implement helper class for interactive forms
2018-06-21 15:57:13 -04:00
Jay Berkenbilt
2e7ee23bf6
Add QPDFPageDocumentHelper and QPDFPageObjectHelper
...
This is the beginning of higher-level API support using helper
classes. The goal is to be able to add more helpers without continuing
to pollute QPDF's and QPDFObjectHandle's public interfaces.
2018-06-21 15:57:13 -04:00
Jay Berkenbilt
9910104442
Implement TokenFilter and refactor Pl_QPDFTokenizer
...
Implement a TokenFilter class and refactor Pl_QPDFTokenizer to use a
TokenFilter class called ContentNormalizer. Pl_QPDFTokenizer is now a
general filter that passes data through a TokenFilter.
2018-02-18 21:05:46 -05:00
Jay Berkenbilt
53971d50be
Add Pl_TIFFPredictor
2018-01-13 19:49:42 -05:00
Jay Berkenbilt
ae90d2c485
Implement Pl_DCT pipeline
...
Additional testing is added in later commits to be supported by
additional changes in the library.
2017-08-21 17:44:02 -04:00
Jay Berkenbilt
2d2f619665
Implement Pl_RunLength pipeline
2017-08-19 14:50:55 -04:00
Jay Berkenbilt
e7d0019bf4
Generate libqpdf.map from autoconf
...
Rather than checking consistency of libqpdf.map, generate it.
2017-08-11 04:56:22 -04:00
Jay Berkenbilt
6247aaa57c
Fix libqpdf.map and prevent future breakage
...
The build now checks to make sure libqpdf.map has the right library
version number in it.
2017-08-10 21:53:19 -04:00
Jay Berkenbilt
9a96e233b0
Remove PCRE
2017-08-10 21:30:32 -04:00
Jay Berkenbilt
1f4a67912c
Bump library soname
...
Also update maintainer documentation on binary compatibility testing.
2015-11-10 12:42:37 -05:00
Jay Berkenbilt
b029555909
Bump soname minor revision for ABI additions
2015-10-31 18:56:43 -04:00
Jay Berkenbilt
94e55394ed
Prepare 5.1.3 release
2015-05-24 17:26:49 -04:00
Jay Berkenbilt
4071db59aa
Prepare 5.1.2 release
2014-06-07 17:16:52 -04:00
Jay Berkenbilt
247d70efee
Prepare 5.1.1 release
2014-01-14 15:45:35 -05:00
Jay Berkenbilt
0b6127558d
Prepare 5.1.0 release
2013-12-17 15:26:07 -05:00
Jay Berkenbilt
5e3bad2f86
Refactor random data generation
...
Add new RandomDataProvider object and implement existing random number
generation in terms of that. This enables end users to supply their
own random data providers.
2013-12-14 15:17:35 -05:00
Jay Berkenbilt
e1bd72b46c
Prepare for 5.0.1 release
2013-10-18 13:51:30 -04:00
Jay Berkenbilt
66e63b8667
Prepare 5.0.0 release
2013-07-10 12:29:13 -04:00
Jay Berkenbilt
f31e526d67
Prepare 4.2.0 release
2013-07-07 19:43:16 -04:00
Jay Berkenbilt
d88231e01e
Promote QPDF::ObjGen to top-level object QPDFObjGen
2013-06-14 14:58:08 -04:00
Jay Berkenbilt
f02c5f5e12
Final preparation for 4.1.0 release
2013-04-14 15:03:51 -04:00
Jay Berkenbilt
bfda717749
Cosmetic changes to be closer to Adobe terminology
...
Change object type Keyword to Operator, and place the order of the
object types in object_type_e in the same order as they are mentioned
in the PDF specification.
Note that this change only breaks backward compatibility with code
that has not yet been released.
2013-01-23 09:38:05 -05:00
Jay Berkenbilt
1d88955fa6
Added new QPDFObjectHandle types Keyword and InlineImage
...
These object types are to facilitate content stream parsing.
2013-01-20 15:35:39 -05:00
Jay Berkenbilt
8708fd373d
Prepare 4.0.1 release
2013-01-17 09:51:04 -05:00
Jay Berkenbilt
0ea70e5dae
Update shared library major version to 10
...
The upcoming 3.1 release contains non-compatible API changes, though
they only affect parts of the interface that are extremely unlikely to
have been used outside of qpdf itself. The methods and data types
affected were used for communication between QPDFWriter and QPDF and
would have had no real use in end user code.
2012-12-31 10:32:32 -05:00
Jay Berkenbilt
0873e42300
SHA2 pipeline with support for 256, 384, and 512 bits
...
Implemented pipeline around sph sha calls using standard test vectors
for full-byte values. Did not test or support partial byte values.
2012-12-31 05:36:51 -05:00
Jay Berkenbilt
c9da66a018
Incorporate sha2 code from sphlib 3.0
...
Changes from upstream are limited to change #include paths so that I
can place header files and included "c" files in a subdirectory. I
didn't keep the unit tests from sphlib but instead verified them by
running them manually. I will implement the same tests using the
Pl_SHA2 pipeline except that sphlib's sha2 implementation supports
partial bytes, which I will not exercise in qpdf or our tests.
2012-12-31 05:36:51 -05:00
Jay Berkenbilt
7f84239cad
Find PDF header anywhere in the first 1024 bytes
2012-12-25 14:43:37 -05:00
Jay Berkenbilt
7e4a079674
Update libtool data for API changes
2012-09-06 15:31:35 -04:00