Process self-signing key too

This commit is contained in:
Neil Alexander 2021-08-04 10:21:13 +01:00
parent 184b9c21f6
commit 8215384d23
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944

View file

@ -137,7 +137,7 @@ func (a *KeyInternalAPI) PerformUploadDeviceKeys(ctx context.Context, req *api.P
case *gomatrixserverlib.CrossSigningKey:
if err := sanityCheckKey(*k, req.UserID, gomatrixserverlib.CrossSigningKeyPurposeMaster); err != nil {
res.Error = &api.KeyError{
Err: "User-signing key sanity check failed: " + err.Error(),
Err: "Master key sanity check failed: " + err.Error(),
}
return
}
@ -147,6 +147,20 @@ func (a *KeyInternalAPI) PerformUploadDeviceKeys(ctx context.Context, req *api.P
}
return
}
switch k := keys.SelfSigningKeys[req.UserID].CrossSigningBody.(type) {
case *gomatrixserverlib.CrossSigningKey:
if err := sanityCheckKey(*k, req.UserID, gomatrixserverlib.CrossSigningKeyPurposeSelfSigning); err != nil {
res.Error = &api.KeyError{
Err: "Self-signing key sanity check failed: " + err.Error(),
}
return
}
default:
res.Error = &api.KeyError{
Err: "Unexpected type for self-signing key retrieved from federation",
}
return
}
}
// If we still don't have a master key at this point then there's nothing else