VOA(5) File Formats Manual VOA(5) (NAME) voa - VOA (DESCRIPTION) YAML OS () context () (VOA[1]) . OS VOA ( "arch.yaml" "arch" "debian:13.yaml" "debian:13" - VOA ). (regular file) . (Directories and precedence) [2] . voa VOA "/usr/share/voa/" "/usr/local/share/voa/" "/run/voa/" "/etc/voa/" . voa "voa/" "$XDG_CONFIG_DIRS" "voa/" "$XDG_CONFIG_HOME" ( XDG[3] ). . ( "/etc/voa/example.yaml" "/usr/share/voa/example.yaml" "~/.config/voa/example.yaml" "/etc/voa/example.yaml" ). voa (drop-in) . OS voa (override) ( "/etc/voa/example.yaml.d/99-custom-repo.yaml" "example" OS "/usr/share/voa/example.yaml" ). . voa /dev/null ( "/etc/voa/example.yaml -> /dev/null" "/usr/share/voa/example.yaml" ). (Merging of built-in defaults, OS and context-level settings) OS context voa . OS OS . context - - OS . : - - : null OS . ! OS . (FILE FORMAT) YAML . voa . <> (default_technology_settings object) VOA . : voa "contexts" ! <> (openpgp object) OpenPGP . OpenPGP[4] OpenPGP[5] . . <> (num_data_signatures number) OpenPGP OpenPGP . ( : 1). <> (verification_method object) OpenPGP OpenPGP . . <> (plain verification method object) "plain" OpenPGP . OpenPGP . OpenPGP OpenPGP[6] / OpenPGP[7] . OpenPGP context . <> (identity_domain_matches set) . OpenPGP context OpenPGP User ID . ( ) OpenPGP context ( ). <> (fingerprint_matches set) OpenPGP . : ( "num_data_signatures") ! OpenPGP context OpenPGP . ( ) OpenPGP context ( ). <> (trust_anchor verification method object) "trust anchor" OpenPGP . (certified) OpenPGP . OpenPGP OpenPGP User ID . OpenPGP OpenPGP . <> (required_certifications number) OpenPGP[8] . ( : 3). <> (artifact_verifier_identity_domain_matches set) . OpenPGP context OpenPGP User ID OpenPGP . ( ) OpenPGP OpenPGP User ID OpenPGP . <> (trust_anchor_fingerprint_matches set) OpenPGP . : ( "required_certifications") ! OpenPGP context OpenPGP . ( ) OpenPGP context . <> (web_of_trust verification method object) (Web of Trust)[9] OpenPGP (Berblom algorithm)[10] . . OpenPGP . "Web of Trust" . OpenPGP OpenPGP User ID . OpenPGP OpenPGP . <> (flow_amount number) "Web of Trust" . OpenPGP . ( : 120). <> (partial_amount number) "Web of Trust". OpenPGP . 1 120 ( : 40). <> (roots set of objects) "Web of Trust". OpenPGP . : o "fingerprint": OpenPGP. o "amount": . 1 120 ( : 120). : . OpenPGP VOA context OpenPGP "fingerprint" . OpenPGP VOA context 120 . <> (artifact_verifier_identity_domain_matches set) . OpenPGP context OpenPGP User ID ( "flow_amount"). OpenPGP OpenPGP User ID ( "flow_amount") . <> (contexts list of objects) context OS ( ) . : voa "default_technology_settings" ! <> (purpose string) (purpose) VOA OS . VOA . <> (context string) (context) VOA OS . VOA . <> (technology_settings object) "purpose" "context" OS ( ). OS . "default_technology_settings" . (EXAMPLES) (Defaults) . default_technology_settings: openpgp: num_data_signatures: 1 verification_method: trust_anchor: required_certifications: 3 artifact_verifier_identity_domain_matches: trust_anchor_fingerprint_matches: "trust anchor" OpenPGP . OpenPGP . <> OpenPGP (OpenPGP plain verification method) "plain" OpenPGP . default_technology_settings: openpgp: num_data_signatures: 1 verification_method: plain: identity_domain_matches: - example.org - sub.example.org fingerprint_matches: - d3b0f7c0b825ecbb0f0d7398072947e7b1537b6f - e242ed3bffccdf271b7fbaf34ed72d089537b42f - f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 "/usr/share/voa/example.yaml" OS "example" : . OpenPGP context : o OpenPGP User ID "example.org" "sub.example.org" . o OpenPGP "d3b0f7c0b825ecbb0f0d7398072947e7b1537b6f" "e242ed3bffccdf271b7fbaf34ed72d089537b42f" "f1d2d2f924e986ac86fdf7b36c94bcdf32beec15" . <> OpenPGP (OpenPGP basic trust anchor verification method) "trust anchor" OpenPGP . default_technology_settings: openpgp: num_data_signatures: 1 verification_method: trust_anchor: required_certifications: 3 artifact_verifier_identity_domain_matches: - example.org - sub.example.org trust_anchor_fingerprint_matches: - d3b0f7c0b825ecbb0f0d7398072947e7b1537b6f - e242ed3bffccdf271b7fbaf34ed72d089537b42f - f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 "/usr/share/voa/example.yaml" OS "example" : . . OpenPGP User ID OpenPGP context "example.org" "sub.example.org" . OpenPGP OpenPGP context "d3b0f7c0b825ecbb0f0d7398072947e7b1537b6f" "e242ed3bffccdf271b7fbaf34ed72d089537b42f" "f1d2d2f924e986ac86fdf7b36c94bcdf32beec15" . <> OpenPGP (OpenPGP Web of Trust verification method) "Web of Trust" OpenPGP . default_technology_settings: openpgp: num_data_signatures: 1 verification_method: web_of_trust: flow_amount: 120 partial_amount: 40 roots: - fingerprint: d3b0f7c0b825ecbb0f0d7398072947e7b1537b6f amount: 120 - fingerprint: e242ed3bffccdf271b7fbaf34ed72d089537b42f amount: 120 - fingerprint: f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 amount: 120 artifact_verifier_identity_domain_matches: - example.org - sub.example.org "/usr/share/voa/example.yaml" OS "example" : . "Web of Trust" 40 . OpenPGP context 120 . OpenPGP OpenPGP context "d3b0f7c0b825ecbb0f0d7398072947e7b1537b6f" "e242ed3bffccdf271b7fbaf34ed72d089537b42f" "f1d2d2f924e986ac86fdf7b36c94bcdf32beec15" . 120 . (OS-level and context-level) OS context "trust anchor" OpenPGP . "/usr/share/voa/example.yaml" OS "example" . default_technology_settings: openpgp: num_data_signatures: 2 verification_method: trust_anchor: artifact_verifier_identity_domain_matches: - example.org trust_anchor_fingerprint_matches: - 6132b58967cf1ebc05062492c17145e5ee9f82a8 - 6eadeac2dade6347e87c0d24fd455feffa7069f0 - b787a81c32997fd39a5f4c0188363902d3586e7b - d3b0f7c0b825ecbb0f0d7398072947e7b1537b6f - e242ed3bffccdf271b7fbaf34ed72d089537b42f contexts: - purpose: package context: default technology_settings: openpgp: verification_method: trust_anchor: required_certifications: 4 artifact_verifier_identity_domain_matches: - packages.example.org - purpose: image context: installation-medium technology_settings: openpgp: num_data_signatures: 1 verification_method: trust_anchor: artifact_verifier_identity_domain_matches: - install.example.org voa OS OS context . OS context . "trust_anchor_fingerprint_matches" OS context . context OS . "num_data_signatures" OS 2 (contexts) 1 . "required_certifications" OS 3 ( ) 4 . (Drop-ins for context-level overrides) context "default_technology_settings" . "plain" OpenPGP . "/etc/voa/example.yaml.d/90-my-repo.yaml" OS "example" . contexts: - purpose: package context: my-repo technology_settings: openpgp: num_data_signatures: 1 verification_method: plain: identity_domain_matches: - other.org fingerprint_matches: - bea43e7033e19327183416f23fe2ee1b64c25f4a (OS-level and context-level) "my-repo" . OS "example" : o . o : o OpenPGP OpenPGP "bea43e7033e19327183416f23fe2ee1b64c25f4a" . o OpenPGP OpenPGP User ID "other.org" . (SEE ALSO) voa(1) (NOTES) 1. VOA 2. Configuration Files Specification 3. XDG Base Directory Specification 4. OpenPGP signature 5. OpenPGP certificate 6. OpenPGP User ID 7. OpenPGP fingerprint 8. OpenPGP third-party certifications 9. Web of Trust 10. Berblom algorithm VOA(5)