Storing device keys part 1

This commit is contained in:
Neil Alexander 2021-07-29 09:48:09 +01:00
parent ad05e3de6e
commit 93bf1ffc10
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
7 changed files with 78 additions and 8 deletions

View file

@ -75,8 +75,23 @@ func (a *KeyInternalAPI) PerformUploadDeviceKeys(ctx context.Context, req *api.P
}
}
res.Error = &api.KeyError{
Err: "Not supported yet",
// TODO: check signatures
keysToStore := api.CrossSigningKeyMap{}
for _, keyData := range req.MasterKey.Keys { // iterates once, see sanityCheckKey
keysToStore[gomatrixserverlib.CrossSigningKeyPurposeMaster] = keyData
}
for _, keyData := range req.SelfSigningKey.Keys { // iterates once, see sanityCheckKey
keysToStore[gomatrixserverlib.CrossSigningKeyPurposeSelfSigning] = keyData
}
for _, keyData := range req.UserSigningKey.Keys { // iterates once, see sanityCheckKey
keysToStore[gomatrixserverlib.CrossSigningKeyPurposeUserSigning] = keyData
}
if err := a.DB.StoreCrossSigningKeysForUser(ctx, req.UserID, keysToStore, req.StreamID); err != nil {
res.Error = &api.KeyError{
Err: fmt.Sprintf("a.DB.StoreCrossSigningKeysForUser: %s", err),
}
}
}