pdf-simple-sign
===============
:compact-option:

'pdf-simple-sign' is a simple PDF signer intended for documents produced by
the Cairo library.  As such, it currently comes with some restrictions:

 * the document may not have any forms or signatures already, as they will be
   overwitten
 * the document may not employ cross-reference streams, or must constitute
   a hybrid-reference file at least
 * the document may not be newer than PDF 1.6 already, or it will get downgraded
   to that version
 * the signature may take at most 4 kilobytes as a compile-time limit,
   which should be enough space even for one intermediate certificate

The signature is attached to the first page and has no appearance.

I don't aim to extend the functionality any further.  The project is fairly
self-contained and it should be easy to grasp and change to suit to your needs.

Building
--------
Build dependencies: Meson, a C++11 compiler, pkg-config +
Runtime dependencies: libcrypto (OpenSSL 1.1 API)

 $ git clone https://git.janouch.name/p/pdf-simple-sign.git
 $ cd pdf-simple-sign
 $ meson builddir
 $ cd builddir
 $ ninja

In addition to the C++ version, also included is a native Go port:

 $ go get janouch.name/pdf-simple-sign/cmd/pdf-simple-sign

Usage
-----

 $ ./pdf-simple-sign document.pdf document.signed.pdf KeyAndCerts.p12 password

Contributing and Support
------------------------
Use https://git.janouch.name/p/pdf-simple-sign to report bugs, request features,
or submit pull requests.  `git send-email` is tolerated.  If you want to discuss
the project, feel free to join me at ircs://irc.janouch.name, channel #dev.

Bitcoin donations are accepted at: 12r5uEWEgcHC46xd64tt3hHt9EUvYYDHe9

License
-------
This software is released under the terms of the 0BSD license, the text of which
is included within the package along with the list of authors.
