- Python 100%
| encrypt_send | ||
| sampleoutput | ||
| 2025-05-29 14-09-37.mkv | ||
| openSighn-1.0.0-2.py | ||
| PrivacySafe.pdf | ||
| README.md | ||
| sample.pdf | ||
| signed_document.pdf | ||
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
- Install Dependencies
sudo apt update
sudo apt install python3 python3-pip
pip install rsa PyPDF2 reportlab
- Run the Application
python3 openSighn_gui.py
Mini How-to
-
Generate RSA Keys
- Click "Generate Keys"
- This creates public_key.pem and private_key.pem (only needed once).
-
Sign a PDF
-
Click "Browse" to select a PDF file.
-
Enter your name.
-
Click "Sign Document"
A signed PDF (signed_document.pdf) is created with a signature page.
-
-
Verify a Signed PDF
-
Click "Verify Signature"
-
Select the signed PDF (signed_document.pdf).
If valid, a message will confirm the signature.
-
-
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.