pdf-simple-sign

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 would be overwritten

  • the document may not employ cross-reference streams, or must constitute a hybrid-reference file at least

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

I dont 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

If the signature doesnt fit within the default reservation of 4 kibibytes, you might need to adjust it using the -r option, or throw out any unnecessary intermediate certificates.

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.

Description
Simple PDF signer (C++, Go), plus Lua-based PDF generator
Readme 392 KiB
2020-09-06 05:18:03 +02:00
Languages
C++ 51.4%
Go 37.6%
Lua 6.5%
Meson 2.3%
Shell 2.2%