Skip to content
/ pdfid Public

A tool to mark and identify PDFs, based on podofo

License

GPL-2.0 and 2 other licenses found

Licenses found

GPL-2.0
COPYING
Unknown
COPYING.LIB
Unknown
COPYING.exception
Notifications You must be signed in to change notification settings

multun/pdfid

Repository files navigation

pdfid logo

pdfid is a tool for hiding small amounts of data in pdf files. It uses a modified version of PoDoFo.

It was designed to enable identifying publishers of confidential data.

Pros

  • the size of the output file does not depend on the hidden data.
  • no destructive transformation is performed. the document should display in the exact same way.
  • uses very simple steganography.

Cons

  • each pdf file only has a limited hidden storage space.
  • when reading, there's no way to know how much of the hidden storage space of the pdf is actually used. The -r option just reads all of it.
  • parsing and re-writting a PDF file destroys all hidden data.

Usage

sh$ pdfid capacity document.pdf
291
sh$ du -b hidden-data.txt
4	hidden-data.txt
sh$ pdfid write document.pdf document-for-bob.pdf hidden-data.txt
sh$ pdfid read document-for-bob.pdf | head -c 4 > recovered-data.txt
sh$ diff recovered-data.txt hidden-data.txt
sh$ echo $?
0

Build instructions

The build process is a bit awkward, as pdfid is an in-tree patch of a library.

The package depends on all packages needed by PoDoFo, plus libgmp-dev.

 cmake
 libboost-dev
 libcppunit-dev
 libfontconfig1-dev
 libfreetype6-dev
 libidn11-dev
 libjpeg-dev
 liblua5.1-0-dev
 libssl-dev
 libtiff-dev
 libunistring-dev
 zlib1g-dev
 libgmp-dev
mkdir build
cd build

# prepare the out of tree build.
# the library must be staticaly linked against pdfid, as the shared
# library would conflict with the unpatched version of PoDoFo.
cmake -DPODOFO_BUILD_SHARED=OFF \
      -DPODOFO_BUILD_STATIC=ON \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release ..

# only build what's required.
# the `all` target build all tests and tools
make pdfid

# run the correct subset of `make install`
DESTDIR="${DESTDIR:?missing DESTDIR}" cmake -DCOMPONENT=pdfid -P ./cmake_install.cmake

About

A tool to mark and identify PDFs, based on podofo

Resources

License

GPL-2.0 and 2 other licenses found

Licenses found

GPL-2.0
COPYING
Unknown
COPYING.LIB
Unknown
COPYING.exception

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published