From ce4d0a9789546bfd6c4178a8f2d60d8c65a4bbf7 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Mon, 25 Apr 2022 17:36:33 +0100 Subject: [PATCH] Try that again --- keyserver/internal/cross_signing.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/keyserver/internal/cross_signing.go b/keyserver/internal/cross_signing.go index d5e2c2153..869e6c9ec 100644 --- a/keyserver/internal/cross_signing.go +++ b/keyserver/internal/cross_signing.go @@ -363,7 +363,8 @@ func (a *KeyInternalAPI) processSelfSignatures( switch sig := signature.CrossSigningBody.(type) { case *gomatrixserverlib.CrossSigningKey: for keyID := range sig.Keys { - if gomatrixserverlib.KeyID(strings.SplitN(string(keyID), ":", 1)[1]) == keyID { + split := strings.SplitN(string(keyID), ":", 2) + if len(split) > 1 && gomatrixserverlib.KeyID(split[1]) == keyID { targetKeyID = keyID // contains the ed25519: or other scheme break } @@ -380,7 +381,8 @@ func (a *KeyInternalAPI) processSelfSignatures( case *gomatrixserverlib.DeviceKeys: for keyID := range sig.Keys { - if gomatrixserverlib.KeyID(strings.SplitN(string(keyID), ":", 1)[1]) == keyID { + split := strings.SplitN(string(keyID), ":", 2) + if len(split) > 1 && gomatrixserverlib.KeyID(split[1]) == keyID { targetKeyID = keyID // contains the ed25519: or other scheme break }