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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

421db1c · Nov 12, 2019

History

10 Commits
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 12, 2019
Nov 6, 2019
Nov 12, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 12, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019
Nov 6, 2019

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