Implement MSC3938

This commit is contained in:
Till Faelligen 2024-12-22 19:26:56 +01:00
parent add73ec866
commit 2561da6c72
No known key found for this signature in database
GPG key ID: 3DF82D8AB9211D4E
8 changed files with 25 additions and 78 deletions

View file

@ -46,14 +46,14 @@ func (a *FederationInternalAPI) fetchServerKeysFromCache(
// We got a request for _all_ server keys, return them.
if len(req.KeyIDToCriteria) == 0 {
serverKeysResponses, _ := a.db.GetNotaryKeys(ctx, req.ServerName, []gomatrixserverlib.KeyID{})
serverKeysResponses, _ := a.db.GetNotaryKeys(ctx, req.ServerName)
if len(serverKeysResponses) == 0 {
return nil, fmt.Errorf("failed to find server key response for server %s", req.ServerName)
}
return serverKeysResponses, nil
}
for keyID, criteria := range req.KeyIDToCriteria {
serverKeysResponses, _ := a.db.GetNotaryKeys(ctx, req.ServerName, []gomatrixserverlib.KeyID{keyID})
serverKeysResponses, _ := a.db.GetNotaryKeys(ctx, req.ServerName)
if len(serverKeysResponses) == 0 {
return nil, fmt.Errorf("failed to find server key response for key ID %s", keyID)
}
@ -90,7 +90,7 @@ func (a *FederationInternalAPI) QueryServerKeys(
if err != nil {
// try to load as much as we can from the cache in a best effort basis
util.GetLogger(ctx).WithField("server", req.ServerName).WithError(err).Warn("notary: failed to ask server for keys, returning best effort keys")
serverKeysResponses, dbErr := a.db.GetNotaryKeys(ctx, req.ServerName, req.KeyIDs())
serverKeysResponses, dbErr := a.db.GetNotaryKeys(ctx, req.ServerName)
if dbErr != nil {
return fmt.Errorf("notary: server returned %s, and db returned %s", err, dbErr)
}