mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-29 01:33:10 -06:00
Fixes
This commit is contained in:
parent
0edb4457c0
commit
6cdaefca74
|
|
@ -256,6 +256,8 @@ type QuerySignaturesResponse struct {
|
||||||
MasterKeys map[string]gomatrixserverlib.CrossSigningKey
|
MasterKeys map[string]gomatrixserverlib.CrossSigningKey
|
||||||
// A map of target user ID -> cross-signing self-signing key
|
// A map of target user ID -> cross-signing self-signing key
|
||||||
SelfSigningKeys map[string]gomatrixserverlib.CrossSigningKey
|
SelfSigningKeys map[string]gomatrixserverlib.CrossSigningKey
|
||||||
|
// A map of target user ID -> cross-signing user-signing key
|
||||||
|
UserSigningKeys map[string]gomatrixserverlib.CrossSigningKey
|
||||||
// The request error, if any
|
// The request error, if any
|
||||||
Error *KeyError
|
Error *KeyError
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -230,7 +230,8 @@ func (a *KeyInternalAPI) PerformUploadDeviceKeys(ctx context.Context, req *api.P
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
for sigKeyID, sigBytes := range forSigUserID {
|
for sigKeyID, sigBytes := range forSigUserID {
|
||||||
if err := a.DB.StoreCrossSigningSigsForTarget(ctx, sigUserID, targetKeyID, sigUserID, sigKeyID, sigBytes); err != nil {
|
// origin origin target target
|
||||||
|
if err := a.DB.StoreCrossSigningSigsForTarget(ctx, sigUserID, sigKeyID, req.UserID, targetKeyID, sigBytes); err != nil {
|
||||||
res.Error = &api.KeyError{
|
res.Error = &api.KeyError{
|
||||||
Err: fmt.Sprintf("a.DB.StoreCrossSigningSigsForTarget: %s", err),
|
Err: fmt.Sprintf("a.DB.StoreCrossSigningSigsForTarget: %s", err),
|
||||||
}
|
}
|
||||||
|
|
@ -434,7 +435,7 @@ func (a *KeyInternalAPI) crossSigningKeysFromDatabase(
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
sigs, err := a.DB.CrossSigningSigsForTarget(ctx, userID, keyID)
|
sigMap, err := a.DB.CrossSigningSigsForTarget(ctx, userID, keyID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.WithError(err).Errorf("Failed to get cross-signing signatures for user %q key %q", userID, keyID)
|
logrus.WithError(err).Errorf("Failed to get cross-signing signatures for user %q key %q", userID, keyID)
|
||||||
continue
|
continue
|
||||||
|
|
@ -450,7 +451,7 @@ func (a *KeyInternalAPI) crossSigningKeysFromDatabase(
|
||||||
key.Signatures[originUserID][originKeyID] = signature
|
key.Signatures[originUserID][originKeyID] = signature
|
||||||
}
|
}
|
||||||
|
|
||||||
for originUserID, forOrigin := range sigs {
|
for originUserID, forOrigin := range sigMap {
|
||||||
for originKeyID, signature := range forOrigin {
|
for originKeyID, signature := range forOrigin {
|
||||||
switch {
|
switch {
|
||||||
case req.UserID != "" && originUserID == req.UserID:
|
case req.UserID != "" && originUserID == req.UserID:
|
||||||
|
|
@ -498,11 +499,18 @@ func (a *KeyInternalAPI) QuerySignatures(ctx context.Context, req *api.QuerySign
|
||||||
res.MasterKeys = map[string]gomatrixserverlib.CrossSigningKey{}
|
res.MasterKeys = map[string]gomatrixserverlib.CrossSigningKey{}
|
||||||
}
|
}
|
||||||
res.MasterKeys[targetUserID] = targetKey
|
res.MasterKeys[targetUserID] = targetKey
|
||||||
|
|
||||||
case gomatrixserverlib.CrossSigningKeyPurposeSelfSigning:
|
case gomatrixserverlib.CrossSigningKeyPurposeSelfSigning:
|
||||||
if res.SelfSigningKeys == nil {
|
if res.SelfSigningKeys == nil {
|
||||||
res.SelfSigningKeys = map[string]gomatrixserverlib.CrossSigningKey{}
|
res.SelfSigningKeys = map[string]gomatrixserverlib.CrossSigningKey{}
|
||||||
}
|
}
|
||||||
res.SelfSigningKeys[targetUserID] = targetKey
|
res.SelfSigningKeys[targetUserID] = targetKey
|
||||||
|
|
||||||
|
case gomatrixserverlib.CrossSigningKeyPurposeUserSigning:
|
||||||
|
if res.UserSigningKeys == nil {
|
||||||
|
res.UserSigningKeys = map[string]gomatrixserverlib.CrossSigningKey{}
|
||||||
|
}
|
||||||
|
res.UserSigningKeys[targetUserID] = targetKey
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue