From: Ian Jackson Date: Mon, 2 Dec 2019 00:18:26 +0000 (+0000) Subject: pubkeys: Introduce `pkgf' fallback groups X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=929a2071fe9eb844d680bf7a8bffbd36e678fb00;p=secnet.git pubkeys: Introduce `pkgf' fallback groups This involves a new directive alias facility. Signed-off-by: Ian Jackson --- diff --git a/README.make-secnet-sites b/README.make-secnet-sites index 4fd594e..579b9a5 100644 --- a/README.make-secnet-sites +++ b/README.make-secnet-sites @@ -203,7 +203,9 @@ INPUT SYNTAX Not yet suported in make-secnet-sites. pkg GROUPIDHEX + pkgf GROUPIDHEX Specifies the key group id for subsequent keys. + pkgf indicates a fallback group. May be repeated (with different id values). If not specified, 00000000. Not yet suported in make-secnet-sites. diff --git a/pubkeys.fl.pl b/pubkeys.fl.pl index da22a25..9b6bb9b 100755 --- a/pubkeys.fl.pl +++ b/pubkeys.fl.pl @@ -73,10 +73,15 @@ sub inst ($) { while () { s#\{!2(\w+)\}# '{'.(2 * ($subst{$1}//die "$1 ?")).'}' #ge; - if (m/^!KEYWORD ([-0-9a-z]+)(\s*\{.*\})?$/) { + if (m/^!(KEYWORD|KWALIAS) ([-0-9a-z]+)(\s*\{.*\})?$/) { my $kwt=$2; - die if $kw; - $kw = $1; + if ($1 eq 'KEYWORD') { + die if $kw; + $kw = $kwt; + } else { + die if @next_kw; + die unless $kw; + } my $xact = $3 // ''; $kwid = $kw; $kwid =~ y/-/_/; $in_s = "HK_${kwid}"; @@ -193,6 +198,7 @@ static struct pubkeyset_context c[1]; %% !KEYWORD pkg { c->fallback_skip=0; } +!KWALIAS pkgf { c->fallback_skip=!!c->building->nkeys; } !ARG id [0-9a-f]{!2GRPIDSZ} { HEX2BIN_ARRAY(c->grpid); !}