This is a digital and visible signature tool for signing PDFs. In light of recent events at OSI, wanted to show how easy it would be to implement an OPEN SOURCE solution
Find a file
2025-05-29 21:19:16 +02:00
encrypt_send a edit 2025-03-26 21:53:09 -04:00
sampleoutput added sample output 2025-03-26 20:46:13 -04:00
2025-05-29 14-09-37.mkv Upload files to "/" 2025-05-29 21:06:17 +02:00
openSighn-1.0.0-2.py name 2025-03-26 20:35:38 -04:00
PrivacySafe.pdf Upload files to "/" 2025-05-29 21:03:52 +02:00
README.md readme update 2025-03-26 20:29:49 -04:00
sample.pdf first post 2025-03-26 20:26:53 -04:00
signed_document.pdf Upload files to "/" 2025-05-29 21:19:16 +02:00

author: marcia wilbur gnu@asu.edu license: GPLv3 date: March 26, 2025 lang: python

openSighn - Digital Signature Tool

OpenSighn is an on-prem, open-source digital signing tool for PDF documents. It digitally signs PDFs with RSA encryption and adds a visible signature page.

Features

  • RSA-based digital signature (SHA-256)

  • GUI for signing and verifying PDFs

  • Adds a visible signature page

  • Tamper detection and verification

  • Works offline (on-prem)

Installation

  1. Install Dependencies
  sudo apt update
  sudo apt install python3 python3-pip
  pip install rsa PyPDF2 reportlab
  1. Run the Application
  python3 openSighn_gui.py

Mini How-to

  1. Generate RSA Keys

    1. Click "Generate Keys"
    2. This creates public_key.pem and private_key.pem (only needed once).
  2. Sign a PDF

    1. Click "Browse" to select a PDF file.

    2. Enter your name.

    3. Click "Sign Document"

    A signed PDF (signed_document.pdf) is created with a signature page.

  3. Verify a Signed PDF

    1. Click "Verify Signature"

    2. Select the signed PDF (signed_document.pdf).

    If valid, a message will confirm the signature.

  4. Exit

    Click "Exit" to close the app.

How It Works

Digital Signing Process

  • Computes a SHA-256 hash of the PDF.

  • Signs the hash using the RSA private key.

  • Saves the signed hash in signature.sig.

  • Merges a signature page into the PDF.

Verification Process

  • Recomputes the hash of the selected PDF.

  • Uses the RSA public key to validate the signature.

  • If hashes match, the signature is valid.

Security

  • Uses 2048-bit RSA keys

  • Tamper-proof verification: If the document is altered, the signature check fails

License

This project is licensed under the GNU General Public License v3.0 (GPLv3). You are free to use, modify, and distribute this software under the terms of the GPLv3 license.

For details, see the GNU GPLv3 License.