{"id":16994786,"url":"https://github.com/znerol/ansible-role-wkd","last_synced_at":"2026-05-09T10:55:00.471Z","repository":{"id":136255486,"uuid":"172794302","full_name":"znerol/ansible-role-wkd","owner":"znerol","description":"OpenPGP Web Key Directory generation","archived":false,"fork":false,"pushed_at":"2019-03-01T18:36:51.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-27T06:28:23.240Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/znerol.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}},"created_at":"2019-02-26T21:35:38.000Z","updated_at":"2019-03-01T18:36:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"af865a85-b4e1-490d-bcdc-b7e4e1414c8c","html_url":"https://github.com/znerol/ansible-role-wkd","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znerol%2Fansible-role-wkd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znerol%2Fansible-role-wkd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znerol%2Fansible-role-wkd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/znerol%2Fansible-role-wkd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/znerol","download_url":"https://codeload.github.com/znerol/ansible-role-wkd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244913005,"owners_count":20530769,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-14T03:46:37.632Z","updated_at":"2026-05-09T10:55:00.385Z","avatar_url":"https://github.com/znerol.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Ansible Role: WKD\n=================\n\n[![Build Status](https://travis-ci.org/znerol/ansible-role-wkd.svg?branch=master)](https://travis-ci.org/znerol/ansible-role-wkd)\n\nProvides Jinja2 filter plugins to hash PGP user ids in the form required by the\n[Web Key Directory][1] [draft standard][2].\n\n* `wkd_hash()`: Returns the WKD hash given a PGP user id string.\n* `wkd_host(wkd_method=[\"advanced\",\"direct\"])`: Returns the domain-part derived\n  from given PGP user id string. If `wkd_method` is set to `advanced` the\n  `openpgpkey` sub-domain is prepended (see section *Key Discovery* in\n  [draft standard][2]).\n* `wkd_dir(wkd_method=[\"advanced\",\"direct\"])`: Returns the directory path\n  derived from the given PGP user id string (see section *Key Discovery* in\n  [draft standard][2]).\n* `wkd_url(wkd_method=[\"advanced\",\"direct\"])`: Returns the WKD URL derived from\n  the given PGP user id string (see section *Key Discovery* in\n  [draft standard][2]).\n\n\nNote that this role essentially contains pure Python implementation of the WKD\nhash algorithm. It does not depend on GnuPG command line/library, nor does it\nprovide modules / tasks capable of manipulating PGP key files. The following\nprojects/roles provide higher level abstractions:\n\n* [znerol.wkd\\_gpg](https://galaxy.ansible.com/znerol/wkd_gpg): Export GPG keys\n  into a WKD directory structure.\n\nRequirements\n------------\n\nNone\n\nRole Variables\n--------------\n\nNone\n\nDependencies\n------------\n\nNone\n\nExample Playbook\n----------------\n\nUsage of `wkd_hash` filter:\n\n    - hosts: localhost\n      tasks:\n        - import_role:\n            name: znerol.wkd\n\n        - loop:\n            - \"Joe.Doe@Example.ORG\"\n            - \"joe.doe@Example.com\"\n            - \"test-wkd@example.org\"\n            - \"me@example.com\"\n            - \"äëöüï@example.org\"\n            - \"foo@example.com\"\n          debug:\n            msg: \"WKD hash for {{ item }} is {{ item | wkd_hash() }}\"\n\nSee [test/test.yml](tests/test.yml) for sample input/output.\n\nLicense\n-------\n\nGPLv3\n\n[1]: https://wiki.gnupg.org/WKD\n[2]: https://tools.ietf.org/html/draft-koch-openpgp-webkey-service\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznerol%2Fansible-role-wkd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fznerol%2Fansible-role-wkd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznerol%2Fansible-role-wkd/lists"}