{"id":51188044,"url":"https://github.com/shurshick/pdf-signer","last_synced_at":"2026-06-27T12:03:15.754Z","repository":{"id":361601024,"uuid":"1211253204","full_name":"shurshick/pdf-signer","owner":"shurshick","description":"Desktop PDF signing and visual stamp tool for RPM-based Linux with CryptoPro CSP","archived":false,"fork":false,"pushed_at":"2026-06-23T18:22:09.000Z","size":13753,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-23T18:24:43.406Z","etag":null,"topics":["cryptopro","electronic-signature","fyne","golang","linux","pdf","rpm"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shurshick.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-15T07:58:31.000Z","updated_at":"2026-06-23T18:21:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shurshick/pdf-signer","commit_stats":null,"previous_names":["shurshick/pdf-signer"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/shurshick/pdf-signer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shurshick%2Fpdf-signer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shurshick%2Fpdf-signer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shurshick%2Fpdf-signer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shurshick%2Fpdf-signer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shurshick","download_url":"https://codeload.github.com/shurshick/pdf-signer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shurshick%2Fpdf-signer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34852286,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-27T02:00:06.362Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptopro","electronic-signature","fyne","golang","linux","pdf","rpm"],"created_at":"2026-06-27T12:03:15.189Z","updated_at":"2026-06-27T12:03:15.741Z","avatar_url":"https://github.com/shurshick.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PDF Signer на русском\n\nНастольная утилита для выбора PDF-файлов, чтения данных сертификата из\nCryptoPro, создания видимого штампа электронной подписи, добавления этого\nштампа в PDF и создания цифровой подписи — встроенной в PDF или открепленной\n`.sig` файлом.\n\nПриложение написано на Go с использованием Fyne и рассчитано на рабочие станции\nLinux x86_64 с установленным CryptoPro CSP.\n\n## Возможности\n\n- выбор одного или нескольких PDF-файлов;\n- выбор действующего сертификата из хранилища CryptoPro (`uMy`);\n- видимый штамп подписи на всех страницах PDF;\n- отпечаток сертификата на штампе;\n- **встроенная PDF-подпись** — CAdES-BES подпись встраивается внутрь PDF;\n- **открепленная `.sig` подпись** — подпись сохраняется отдельным файлом;\n- **режим «оба»** — одновременно встроенная подпись и открепленный `.sig` файл;\n- **редактор штампа** — настройка шаблона, позиции, размера, шрифта, полей;\n- **проверка подписи** — верификация `.sig` файлов и встроенных подписей;\n- **диагностика CryptoPro** — проверка certmgr, csptest, сертификатов;\n- **дружественные сообщения об ошибках** — понятные описание вместо сырых исключений;\n- **логирование** — запись действий в файл с санитизацией секретов;\n- **настройки** — сохранение профиля штампа, экспорт/импорт настроек JSON;\n- **автоматическое размещение штампа** — избегает перекрытия текста на странице;\n- **логотип в штампе** — PNG/JPG логотип в углу штампа;\n- сохранение результата в указанную папку или рядом с исходным PDF;\n- окно «О приложении» с версией, копирайтом, ссылкой на проект и проверкой обновлений;\n- пакетное подписание нескольких файлов за один запуск;\n- автоматический русский или английский интерфейс по языку системы;\n- сборка RPM и DEB через GitHub Actions.\n\n## Режимы подписания\n\n| Режим | Описание |\n|---|---|\n| **Встроенная PDF-подпись** | CAdES-BES подпись встраивается внутрь PDF-документа через `csptest`. |\n| **Открепленный `.sig`** | Подпись сохраняется отдельным `.sig` файлом рядом с PDF. |\n| **Оба** | Создается и встроенная подпись в PDF, и отдельный `.sig` файл. |\n\n## Диагностика\n\nОкно диагностики проверяет:\n- наличие `certmgr` и `csptest` по стандартным путям;\n- наличие сертификатов в хранилище `uMy`;\n- количество сертификатов с закрытыми ключами;\n- готовность к подписанию.\n\n## Редактор штампа\n\nТри встроенных профиля:\n- **Минимальный** — 70×25 мм, основные поля;\n- **Стандартный** — 90×35 мм, все основные поля;\n- **Подробный** — 120×45 мм, все поля включая ИНН, СНИЛС, отпечаток.\n\nВозможности:\n- настройка шаблона, страниц, позиции, размера;\n- управление видимостью полей (владелец, издатель, дата, причина, серийный номер);\n- шрифт и непрозрачность;\n- автоматическое размещение штампа (избегает текста);\n- логотип в штампе (PNG/JPG, масштаб 100–300%);\n- загрузка и сохранение профилей в JSON.\n\n## Проверка подписи\n\n- проверка `.sig` файлов (поиск соответствующего PDF);\n- проверка встроенных подписей в PDF через `csptest -sfsign -verify`;\n- подробный отчёт с уровнем VALID/WARNING/INVALID;\n- экспорт отчёта в TXT.\n\n## Требования для запуска\n\n- Linux x86_64 с графическим окружением\n- установленный CryptoPro CSP\n- `certmgr` по пути `/opt/cprocsp/bin/amd64/certmgr`\n- `csptest` по пути `/opt/cprocsp/bin/amd64/csptest`\n- `pdfcpu`, доступный через `PATH`\n\n## Сборка\n\n```bash\ngo mod download\nCGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o pdfsigner .\n```\n\n## Сборка RPM\n\n```bash\nchmod +x build-rpm.sh\n./build-rpm.sh\n```\n\n## Сборка DEB\n\n```bash\nchmod +x build-deb.sh\n./build-deb.sh\n```\n\n## Тесты\n\n```bash\ngo test ./...\n```\n\n## Лицензия\n\nAGPL-3.0-or-later.\n\n---\n\n# PDF Signer\n\nDesktop utility for selecting PDF files, reading certificate metadata from\nCryptoPro, generating a visual electronic-signature stamp, placing it into PDF,\nand creating a digital signature — either embedded in the PDF or as a detached\n`.sig` file.\n\nThe application is written in Go with Fyne and targets Linux x86_64\nworkstations with CryptoPro CSP installed.\n\n## Features\n\n- select one or more PDF files;\n- select a currently valid certificate from the CryptoPro `uMy` store;\n- visible signature stamp on every page;\n- certificate thumbprint on the stamp;\n- **embedded PDF signature** — CAdES-BES signature embedded inside the PDF;\n- **detached `.sig` signature** — signature saved as a separate `.sig` file;\n- **both mode** — embedded signature plus a separate `.sig` file;\n- **stamp editor** — configure template, position, size, font, fields;\n- **signature verification** — verify `.sig` files and embedded signatures;\n- **CryptoPro diagnostics** — check certmgr, csptest, certificate store;\n- **friendly error messages** — human-readable error descriptions;\n- **application logging** — timestamped file logging with secret sanitization;\n- **settings persistence** — stamp profile saved, JSON export/import;\n- **smart stamp placement** — avoids overlapping text on PDF pages;\n- **logo support** — PNG/JPG logo in stamp corner;\n- save outputs to selected folder or next to source PDF;\n- About dialog with version, copyright, project link, and update check;\n- batch-sign multiple PDFs in one run;\n- Russian or English UI from system language;\n- RPM and DEB packages via GitHub Actions.\n\n## Signing Modes\n\n| Mode | Description |\n|---|---|\n| **Embedded PDF signature** | CAdES-BES signature embedded inside the PDF via `csptest`. |\n| **Detached `.sig`** | Signature saved as a separate `.sig` file alongside the PDF. |\n| **Both** | Both an embedded signature and a separate `.sig` file. |\n\n## Runtime Requirements\n\n- Linux x86_64 desktop environment\n- CryptoPro CSP\n- `certmgr` at `/opt/cprocsp/bin/amd64/certmgr`\n- `csptest` at `/opt/cprocsp/bin/amd64/csptest`\n- `pdfcpu` available in `PATH`\n\n## Build\n\n```bash\ngo mod download\nCGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o pdfsigner .\n```\n\n## Tests\n\n```bash\ngo test ./...\n```\n\n## License\n\nAGPL-3.0-or-later.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshurshick%2Fpdf-signer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshurshick%2Fpdf-signer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshurshick%2Fpdf-signer/lists"}