{"id":29195472,"url":"https://github.com/tibolpol/sealgood","last_synced_at":"2026-04-28T15:35:43.267Z","repository":{"id":301632758,"uuid":"1005454936","full_name":"tibolpol/sealgood","owner":"tibolpol","description":"100% DIY Document Authenticator","archived":false,"fork":false,"pushed_at":"2025-08-07T13:20:11.000Z","size":291,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-08-07T15:19:49.747Z","etag":null,"topics":["bash-script","data-integrity","digital-signature","diy-tool","document-signing","document-verification","non-repudiation","openssl","pdf-signature","timestamping","tsa"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tibolpol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-06-20T08:56:10.000Z","updated_at":"2025-08-07T13:20:14.000Z","dependencies_parsed_at":"2025-06-27T22:33:12.200Z","dependency_job_id":"96406bfe-f92d-4b1f-aec3-ba0838334cca","html_url":"https://github.com/tibolpol/sealgood","commit_stats":null,"previous_names":["tibolpol/sealgood"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tibolpol/sealgood","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tibolpol%2Fsealgood","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tibolpol%2Fsealgood/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tibolpol%2Fsealgood/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tibolpol%2Fsealgood/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tibolpol","download_url":"https://codeload.github.com/tibolpol/sealgood/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tibolpol%2Fsealgood/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32387910,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bash-script","data-integrity","digital-signature","diy-tool","document-signing","document-verification","non-repudiation","openssl","pdf-signature","timestamping","tsa"],"created_at":"2025-07-02T05:04:31.691Z","updated_at":"2026-04-28T15:35:38.259Z","avatar_url":"https://github.com/tibolpol.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SealGood - Signature et horodatage de documents\n\nSealGood est un script Bash permettant de signer et d'horodater des documents\n(PDF, XML, HTML, etc.) de manière non intrusive en utilisant OpenSSL et des\nservices TSA (Time Stamp Authority).\n\n## Fonctionnalités principales\n\n-  **Signature numérique** avec clés Ed25519 protégées par mot de passe\n- ⏱ **Horodatage** via le service gratuit FreeTSA\n-  **Préservation** du format original des documents\n-  **Vérification** complète des signatures et horodatages\n-  **Transparence** - Toutes les étapes sont reproductibles manuellement\n-  **Traitement par lot** des fichiers\n\n## Cas d'utilisation\n\n- Preuve d'intégrité et d'antériorité de documents\n- Signature électronique simple et vérifiable\n- Archivage de documents avec preuve temporelle\n\n## Prérequis\n\n- Bash 4+\n- OpenSSL\n- Awk\n- Base64\n- cURL (pour l'horodatage)\n\n## Installation\n\n1. Copiez le script dans un fichier nommé `sealgood`\n2. Rendez-le exécutable :\n   ```bash\n   chmod +x sealgood\n\n# SealGood - *The 100% DIY Document Authenticator*  \n\n\u003e **No servers. No subscriptions. No bullshit.**  \n\u003e Just cryptographic truth in filenames and files.  \n\n### Philosophy  \n- 🔥 **Single-file script** (~ 900 lines of Bash)  \n- 🧱 **Zero dependencies** (just `openssl` and your OS)  \n\n### How It Stays Pure  \n1. Rejects PKI complexity  \n2. Never phones home  \n3. Your keys = your property (generated locally, managed as you like)\n\n\n### Help ###\n\n```\nSealGood - Signature et horodatage de documents via OpenSSL + TSA\n\nUtilisation: sealgood help genkey { clean inject date sign verify }\n\nCOMMANDES:\n  genkey    Génère une nouvelle paire de clés ed25519 protégée par mot de passe\n  help      Affiche cette aide\n  clean     Extrait le contenu original sans les balises SEALGOOD\n  inject    Injecte le payload SealGood dans un fichier PDF, HTML ou PEM\n  date      Horodate un document via un tiers de confiance (TSA)\n  sign      Signe un document avec votre clé privée\n  verify    Vérifie la signature et l'horodatage d'un document\n\n  Les commandes se composent en pipeline implicitement ordonné:\n\n  clean | inject | date | sign | verify\n  - lit les données sur stdin\n  - commente la progression sur stderr\n  - écrit les données sur stdout\n  - ne modifie JAMAIS directement aucun fichier\n\n  Quand l'entrée est une liste de fichiers, celle-ci est énumérée\n  et chaque élément est traité dans le pipeline de transformation.\n  Le résultat est archivé au format tar+gzip avec des empreintes\n  cryptographiques intégrées aux noms de fichiers signés/horodatés\n  enumerate\n   \\\n     +-- clean | inject | date | sign | verify\n\n  inject          respecte le payload SealGood déjà présent;\n  date sign       opèrent implicitement inject;\n  date sign       respectent une signature/horodatage déjà présente;\n  enumerate sign  ne demande qu'une fois la passphrase de la clé privée.\n\nExemples:\n  sealgood sign date \u003c contract.pdf \u003e contract_sealgood.pdf\n  sealgood verify    \u003c contract_sealgood.pdf\n  ls contract*.pdf | sealgood sign date \u003e contracts.tgz\n\nFichiers utilisés:\n  $HOME/.ssh/ed25519_private_*.pem  : clés privées signataires\n  $HOME/.ssh/ed25519_public_*.pem   : clés publiques associées\n  $HOME/.ssh/id_rsa.pub             : déclaration d'identité du signataire\n  https://freetsa.org/files/cacert.pem : certificat racine TSA\n\nServlet ouverte :\n  ssh -o SendEnv=LANGUAGE sealgood@perso.tlp.name {clean inject date verify}\n\nVoir aussi : https://github.com/tibolpol/sealgood\n\nCopyright (c) 2025 Thibault Le Paul (@tibolpol)\nLicence MIT - https://opensource.org/license/mit/\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftibolpol%2Fsealgood","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftibolpol%2Fsealgood","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftibolpol%2Fsealgood/lists"}