{"id":42815945,"url":"https://github.com/fedi-e2ee/pkd-formal","last_synced_at":"2026-02-22T04:02:55.046Z","repository":{"id":335417982,"uuid":"1141594558","full_name":"fedi-e2ee/pkd-formal","owner":"fedi-e2ee","description":"Formal Verification and Requirements Traceability for the Public Key Directory Specification","archived":false,"fork":false,"pushed_at":"2026-02-13T02:17:36.000Z","size":107,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-13T11:26:46.562Z","etag":null,"topics":["duvet","fediverse","formal-verification","key-transparency","proverif","public-key-directory"],"latest_commit_sha":null,"homepage":"https://publickey.directory","language":"Shell","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/fedi-e2ee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-01-25T04:11:41.000Z","updated_at":"2026-02-13T07:52:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fedi-e2ee/pkd-formal","commit_stats":null,"previous_names":["fedi-e2ee/pkd-formal"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/fedi-e2ee/pkd-formal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedi-e2ee%2Fpkd-formal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedi-e2ee%2Fpkd-formal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedi-e2ee%2Fpkd-formal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedi-e2ee%2Fpkd-formal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedi-e2ee","download_url":"https://codeload.github.com/fedi-e2ee/pkd-formal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedi-e2ee%2Fpkd-formal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29704420,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T03:17:42.375Z","status":"ssl_error","status_checked_at":"2026-02-22T03:17:31.622Z","response_time":110,"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":["duvet","fediverse","formal-verification","key-transparency","proverif","public-key-directory"],"created_at":"2026-01-30T06:26:39.251Z","updated_at":"2026-02-22T04:02:55.041Z","avatar_url":"https://github.com/fedi-e2ee.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Formal Methods and the Public Key Directory\n\n[![Verify Proofs and Traceability](https://github.com/fedi-e2ee/pkd-formal/actions/workflows/verify.yml/badge.svg)](https://github.com/fedi-e2ee/pkd-formal/actions/workflows/verify.yml)\n\nThis repository contains ProVerif models of the [Public Key Directory specification](https://github.com/fedi-e2ee/public-key-directory-specification)\nand uses [Duvet](https://github.com/awslabs/duvet) to ensure the specification requiremments are satisfied by \nthe known implementations. \n\nTo understand the motivation for this repository, please refer to:\n*[Software Assurance \u0026 That Warm and Fuzzy Feeling](https://soatok.blog/2026/01/15/software-assurance-that-warm-and-fuzzy-feeling/)*.\n\n## Running Proofs\n\n### Prerequisites\n\n[Install ProVerif](https://bblanche.gitlabpages.inria.fr/proverif/) to verify the proofs.\n\n[Install Duvet](https://github.com/awslabs/duvet) to trace the requirements from the implementations to the proofs.\n\n### Run the Proofs\n\n```shell\ncd proofs\nfor f in *.pv; do\n    echo \"Verifying $f...\"\n    proverif \"$f\" || exit 1\ndone\n```\n\n## Duvet Requirements Traceability\n\nAll proofs include duvet annotations linking to specification requirements. \nRun `duvet report` from the repository root to generate a traceability report.\n\n```shell\nduvet report\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedi-e2ee%2Fpkd-formal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedi-e2ee%2Fpkd-formal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedi-e2ee%2Fpkd-formal/lists"}