{{! Vanilla HTML template for the CGI op=index / op=vindex response. Mirrors keyindex.c::key_index_legacy() byte-for-byte except for the ?search=0x… URL parameter: this template emits the full fingerprint (40 hex chars for SHA-1, 64 for SHA-256) so that links survive a future keyid-collision attack. The legacy printf path still emits the 16-hex keyid; the displayed text in this template also keeps the 16-hex keyid for visual consistency with the legacy output. Sig rows keep the signer keyid (16 hex) in their ?search=0x… URL, because OpenPGP only embeds an 8-byte issuer keyid in v4 sig packets — the full fingerprint of the signer is not always known. Edit with care: t/all-100-template-engine.t expects this layout. }}
{{^keys}}
❌ Key not found.{{/keys}}{{#keys}}
Type   bits/keyID    Date       User ID
pub  {{bits_padded}}{{algo_char}}/0x{{keyid_hex16}} {{date_str}} {{#has_primary_uid}}{{primary_uid}}{{#revoked}} *** REVOKED ***{{/revoked}}
{{#opts.skshash}}      Key hash = {{skshash_hex}}
{{/opts.skshash}}{{#opts.fingerprint}}      Key fingerprint ={{fingerprint_formatted}}
{{/opts.fingerprint}}{{#opts.verbose}}{{#primary_sigs}}{{kind}}         {{#signer_uid_known}}0x{{keyid_hex16}}             {{signer_uid}}{{/signer_uid_known}}{{^signer_uid_known}}0x{{keyid_hex16}}             [User id not found]{{/signer_uid_known}}
{{/primary_sigs}}{{/opts.verbose}}{{/has_primary_uid}}{{^has_primary_uid}}{{#revoked}}*** REVOKED ***{{/revoked}}
{{#opts.fingerprint}}      Key fingerprint ={{fingerprint_formatted}}
{{/opts.fingerprint}}{{/has_primary_uid}}{{#other_uids}}                                {{#is_uat}}[photo id]{{/is_uat}}{{^is_uat}}{{text}}{{/is_uat}}
{{#opts.verbose}}{{#sigs}}{{kind}}         {{#signer_uid_known}}0x{{keyid_hex16}}             {{signer_uid}}{{/signer_uid_known}}{{^signer_uid_known}}0x{{keyid_hex16}}             [User id not found]{{/signer_uid_known}}
{{/sigs}}{{/opts.verbose}}{{/other_uids}}{{#opts.verbose}}{{#subkeys}}sub  {{bits_padded}}{{algo_char}}/0x{{subkeyid_hex16}} {{date_str}}
{{#sigs}}{{kind}}         {{#signer_uid_known}}0x{{keyid_hex16}}             {{signer_uid}}{{/signer_uid_known}}{{^signer_uid_known}}0x{{keyid_hex16}}             [User id not found]{{/signer_uid_known}}
{{/sigs}}{{/subkeys}}{{/opts.verbose}}{{/keys}}