From e94b989f37eae32b86d447fc36cbb60ab71d5100 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Mon, 25 Apr 2022 17:25:27 +0100 Subject: [PATCH] Find the complete key ID when uploading signatures --- keyserver/internal/cross_signing.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/keyserver/internal/cross_signing.go b/keyserver/internal/cross_signing.go index 2281f4bbf..d5e2c2153 100644 --- a/keyserver/internal/cross_signing.go +++ b/keyserver/internal/cross_signing.go @@ -362,6 +362,12 @@ func (a *KeyInternalAPI) processSelfSignatures( for targetKeyID, signature := range forTargetUserID { switch sig := signature.CrossSigningBody.(type) { case *gomatrixserverlib.CrossSigningKey: + for keyID := range sig.Keys { + if gomatrixserverlib.KeyID(strings.SplitN(string(keyID), ":", 1)[1]) == keyID { + targetKeyID = keyID // contains the ed25519: or other scheme + break + } + } for originUserID, forOriginUserID := range sig.Signatures { for originKeyID, originSig := range forOriginUserID { if err := a.DB.StoreCrossSigningSigsForTarget( @@ -373,6 +379,12 @@ func (a *KeyInternalAPI) processSelfSignatures( } case *gomatrixserverlib.DeviceKeys: + for keyID := range sig.Keys { + if gomatrixserverlib.KeyID(strings.SplitN(string(keyID), ":", 1)[1]) == keyID { + targetKeyID = keyID // contains the ed25519: or other scheme + break + } + } for originUserID, forOriginUserID := range sig.Signatures { for originKeyID, originSig := range forOriginUserID { if err := a.DB.StoreCrossSigningSigsForTarget(