58 lines
1.7 KiB
Go
58 lines
1.7 KiB
Go
package api
|
|
|
|
import (
|
|
"context"
|
|
|
|
commonHTTP "github.com/matrix-org/dendrite/internal/http"
|
|
"github.com/matrix-org/gomatrixserverlib"
|
|
|
|
"github.com/opentracing/opentracing-go"
|
|
)
|
|
|
|
const (
|
|
// ServerKeyInputPublicKeyPath is the HTTP path for the InputPublicKeys API.
|
|
ServerKeyInputPublicKeyPath = "/serverkeyapi/inputPublicKey"
|
|
|
|
// ServerKeyQueryPublicKeyPath is the HTTP path for the QueryPublicKeys API.
|
|
ServerKeyQueryPublicKeyPath = "/serverkeyapi/queryPublicKey"
|
|
)
|
|
|
|
type InputPublicKeysRequest struct {
|
|
Keys map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult `json:"keys"`
|
|
}
|
|
|
|
type InputPublicKeysResponse struct {
|
|
}
|
|
|
|
func (h *httpServerKeyInternalAPI) InputPublicKeys(
|
|
ctx context.Context,
|
|
request *InputPublicKeysRequest,
|
|
response *InputPublicKeysResponse,
|
|
) error {
|
|
span, ctx := opentracing.StartSpanFromContext(ctx, "InputPublicKey")
|
|
defer span.Finish()
|
|
|
|
apiURL := h.serverKeyAPIURL + ServerKeyInputPublicKeyPath
|
|
return commonHTTP.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
|
|
}
|
|
|
|
type QueryPublicKeysRequest struct {
|
|
Requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp `json:"requests"`
|
|
}
|
|
|
|
type QueryPublicKeysResponse struct {
|
|
Results map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult `json:"results"`
|
|
}
|
|
|
|
func (h *httpServerKeyInternalAPI) QueryPublicKeys(
|
|
ctx context.Context,
|
|
request *QueryPublicKeysRequest,
|
|
response *QueryPublicKeysResponse,
|
|
) error {
|
|
span, ctx := opentracing.StartSpanFromContext(ctx, "QueryPublicKey")
|
|
defer span.Finish()
|
|
|
|
apiURL := h.serverKeyAPIURL + ServerKeyQueryPublicKeyPath
|
|
return commonHTTP.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
|
|
}
|