diff --git a/cmd/csaf_provider/actions.go b/cmd/csaf_provider/actions.go index 05a54b3..3ebcad0 100644 --- a/cmd/csaf_provider/actions.go +++ b/cmd/csaf_provider/actions.go @@ -309,8 +309,7 @@ func (c *controller) upload(r *http.Request) (interface{}, error) { warn("Publishers in provider metadata and CSAF do not match.") } - keyID, fingerprint := key.GetHexKeyID(), key.GetFingerprint() - pmd.SetPGP(fingerprint, c.cfg.GetOpenPGPURL(keyID)) + pmd.SetPGP(key.GetFingerprint(), c.cfg.GetOpenPGPURL(key)) return nil }, diff --git a/cmd/csaf_provider/config.go b/cmd/csaf_provider/config.go index a923721..5b047c6 100644 --- a/cmd/csaf_provider/config.go +++ b/cmd/csaf_provider/config.go @@ -24,7 +24,7 @@ const ( defaultConfigPath = "/usr/lib/casf/config.toml" defaultFolder = "/var/www/" defaultWeb = "/var/www/html" - defaultOpenPGPURL = "https://openpgp.circl.lu/pks/lookup?search=${KEY}&op=index" + defaultOpenPGPURL = "https://openpgp.circl.lu/pks/lookup?op=get&search=${FINGERPRINT}" ) type config struct { @@ -70,8 +70,13 @@ func (t *tlp) UnmarshalText(text []byte) error { return fmt.Errorf("invalid config TLP value: %v", string(text)) } -func (cfg *config) GetOpenPGPURL(key string) string { - return strings.ReplaceAll(cfg.OpenPGPURL, "${KEY}", "0x"+key) +func (cfg *config) GetOpenPGPURL(key *crypto.Key) string { + if key == nil { + return cfg.OpenPGPURL + } + return strings.NewReplacer( + "${FINGERPRINT}", "0x"+key.GetFingerprint(), + "${KEY_ID}", "0x"+key.GetHexKeyID()).Replace(cfg.OpenPGPURL) } func (cfg *config) modelTLPs() []csaf.TLPLabel { diff --git a/cmd/csaf_provider/create.go b/cmd/csaf_provider/create.go index 78e75e1..7507dfd 100644 --- a/cmd/csaf_provider/create.go +++ b/cmd/csaf_provider/create.go @@ -110,8 +110,7 @@ func createProviderMetadata(c *config, wellknownCSAF string) error { if err != nil { return err } - keyID, fingerprint := key.GetHexKeyID(), key.GetFingerprint() - pm.SetPGP(fingerprint, c.GetOpenPGPURL(keyID)) + pm.SetPGP(key.GetFingerprint(), c.GetOpenPGPURL(key)) return util.WriteToFile(path, pm) }