From a38d84c255b70214439539638253d95b4d6a47ca Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 2 Dec 2019 00:18:26 +0000 Subject: [PATCH] pubkeys: Introduce `pkgf' fallback groups This involves a new directive alias facility. Signed-off-by: Ian Jackson --- README.make-secnet-sites | 2 ++ pubkeys.fl.pl | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) 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); !} -- 2.30.2