diff --git a/clientapi/routing/keys.go b/clientapi/routing/keys.go index 8b8fcc27..f7cd8a26 100644 --- a/clientapi/routing/keys.go +++ b/clientapi/routing/keys.go @@ -112,15 +112,22 @@ func QueryKeys(req *http.Request, keyAPI api.KeyInternalAPI) util.JSONResponse { Timeout: r.GetTimeout(), // TODO: Token? }, &queryRes) + res := map[string]interface{}{ + "device_keys": queryRes.DeviceKeys, + "failures": queryRes.Failures, + } + if k := queryRes.MasterKeys; k != nil { + res["master_keys"] = k + } + if k := queryRes.SelfSigningKeys; k != nil { + res["self_signing_keys"] = k + } + if k := queryRes.UserSigningKeys; k != nil { + res["user_signing_keys"] = k + } return util.JSONResponse{ Code: 200, - JSON: map[string]interface{}{ - "device_keys": queryRes.DeviceKeys, - "master_keys": queryRes.MasterKeys, - "self_signing_keys": queryRes.SelfSigningKeys, - "user_signing_keys": queryRes.UserSigningKeys, - "failures": queryRes.Failures, - }, + JSON: res, } } diff --git a/federationapi/routing/keys.go b/federationapi/routing/keys.go index bba3272b..8a4ab7c6 100644 --- a/federationapi/routing/keys.go +++ b/federationapi/routing/keys.go @@ -72,8 +72,8 @@ func QueryDeviceKeys( Code: 200, JSON: struct { DeviceKeys interface{} `json:"device_keys"` - MasterKeys interface{} `json:"master_keys"` - SelfSigningKeys interface{} `json:"self_signing_keys"` + MasterKeys interface{} `json:"master_keys,omitempty"` + SelfSigningKeys interface{} `json:"self_signing_keys,omitempty"` }{ queryRes.DeviceKeys, queryRes.MasterKeys,