| name | waliduj-podpis-pdf-pl |
| description | Sprawdza podpis elektroniczny w PRZYCHODZĄCYM PDF - czy plik zmieniono po podpisaniu, kto go podpisał, kiedy, czy jest znacznik czasu i czy podpis obejmuje cały dokument. Działa lokalnie na pyHanko, bez sieci i bez wysyłania pliku gdziekolwiek (RODO-safe, tajemnica zawodowa). Wyłącznie odczyt - NIE podpisuje niczego. Używaj gdy - "sprawdź podpis", "zweryfikuj podpis elektroniczny", "czy ten PDF jest podpisany", "czy dokument zmieniono po podpisaniu", "kto podpisał ten PDF", "walidacja eIDAS", "PAdES", "czy podpis jest ważny", "dostałem podpisany PDF", "weryfikacja podpisu kwalifikowanego", "czy pismo z sądu ma podpis", sprawdzenie podpisu na umowie, wyroku, decyzji administracyjnej lub piśmie procesowym otrzymanym od drugiej strony. |
| license | MIT |
| attribution | [{"source":"MatthiasValvekens/pyHanko","url":"https://github.com/MatthiasValvekens/pyHanko","license":"MIT","relationship":"dependency","note":"Biblioteka walidacji PAdES wolana lokalnie. Skill ja opakowuje i tlumaczy wynik na werdykt laczony - nie wywodzi sie z jej kodu.\n"}] |
| allowed-tools | ["Bash","Read"] |
| data-residency | local |
| requires-human-approval | false |
| pii-egress | none |
| metadata | {"author":"Wiesław Mazur / MateMatic","version":"0.1.0","cost":"zero LLM (walidacja kryptograficzna)","companion_skills":"doc-intel-contract-pl, opendataloader-pdf"} |
Walidacja podpisu elektronicznego w PDF
Po co to jest
Kancelaria dostaje podpisane PDF-y - wyroki, decyzje, umowy, pisma od drugiej
strony - i zwykle ufa im na słowo albo na zielony pasek w czytniku. Ten skill
sprawdza plik mechanicznie, w całości na maszynie kancelarii: dokument nie jest
nigdzie wysyłany, narzędzie nie odpytuje żadnego serwera i działa bez internetu.
Ma to znaczenie, bo sprawdzany plik zwykle jest objęty tajemnicą zawodową.
Najczęstszy realny problem nie brzmi „czy podpis jest fałszywy", tylko „czy
ktoś dopisał coś po podpisaniu". PDF pozwala dołączyć kolejną wersję na końcu
pliku - podpis pozostaje kryptograficznie nienaruszony, a dokument już nie jest
tym, co podpisano. Skill to wykrywa.
Granica
Ten skill nie podpisuje. Złożenie podpisu to akt nieodwracalny i skuteczny
na zewnątrz - zostaje człowiekowi. Narzędzie jest wyłącznie odczytowe.
Kolejność w pipeline OCR: jeśli dokument idzie potem do skanowania lub OCR
(drabinka PDF, silnik vlm-html z [[doc-intel-contract-pl]]), walidację podpisu
rób NAJPIERW, na oryginale. Przygotowanie skanu spłaszcza PDF przed renderem,
żeby pola formularza nie zniknęły z obrazu - i przy okazji NISZCZY podpis
kryptograficznie. Po spłaszczeniu nie ma już czego walidować.
Jak używać
Instalacja w izolowanym środowisku. Windows:
python -m venv .venv && .venv/Scripts/python.exe -m pip install pyHanko
Linux i macOS:
python3 -m venv .venv && .venv/bin/python -m pip install pyHanko
Uruchamiaj interpreterem z tego środowiska, nie systemowym - inaczej dostaniesz
ModuleNotFoundError. Windows:
.venv/Scripts/python.exe waliduj_podpis.py <plik.pdf>
Linux i macOS:
.venv/bin/python waliduj_podpis.py <plik.pdf>
Tryb maszynowy: dołóż --json (wynik zawiera werdykt_ogolny, podpisy,
zakres_sprawdzenia).
Kody wyjścia, identyczne w obu trybach: 0 podpis ważny w zakresie sprawdzonym,
1 brak podpisu albo werdykt inny niż ważny (w tym dokument zmieniony po
podpisaniu), 2 błąd odczytu pliku. Kod wynika z werdyktu, nie z tego, czy
udało się cokolwiek odczytać - nadaje się więc do kontroli automatycznej.
Co skill rozstrzyga
- czy dokument w ogóle zawiera podpis i ile ich jest,
- czy treść podpisana jest nienaruszona,