From 14565ec4a4cc0b106c67ba293bda3a684025dc6a Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Tue, 19 May 2020 17:49:49 +0100 Subject: [PATCH] Server key API (works for monolith but not for polylith yet) --- cmd/dendrite-demo-libp2p/main.go | 32 ++++---- cmd/dendrite-demo-libp2p/mdnslistener.go | 3 +- cmd/dendrite-monolith-server/main.go | 15 ++-- cmd/dendritejs/main.go | 8 +- common/basecomponent/base.go | 21 ++++- common/keydb/keyring.go | 74 ----------------- serverkeyapi/api/api.go | 30 +++++++ serverkeyapi/api/http.go | 38 +++++++++ serverkeyapi/internal/api.go | 38 +++++++++ serverkeyapi/serverkeyapi.go | 82 +++++++++++++++++++ .../storage}/cache/keydb.go | 0 .../storage}/interface.go | 2 +- .../keydb => serverkeyapi/storage}/keydb.go | 6 +- .../storage}/keydb_wasm.go | 6 +- .../storage}/postgres/keydb.go | 0 .../storage}/postgres/server_key_table.go | 0 .../storage}/sqlite3/keydb.go | 0 .../storage}/sqlite3/server_key_table.go | 0 18 files changed, 243 insertions(+), 112 deletions(-) delete mode 100644 common/keydb/keyring.go create mode 100644 serverkeyapi/api/api.go create mode 100644 serverkeyapi/api/http.go create mode 100644 serverkeyapi/internal/api.go create mode 100644 serverkeyapi/serverkeyapi.go rename {common/keydb => serverkeyapi/storage}/cache/keydb.go (100%) rename {common/keydb => serverkeyapi/storage}/interface.go (96%) rename {common/keydb => serverkeyapi/storage}/keydb.go (91%) rename {common/keydb => serverkeyapi/storage}/keydb_wasm.go (93%) rename {common/keydb => serverkeyapi/storage}/postgres/keydb.go (100%) rename {common/keydb => serverkeyapi/storage}/postgres/server_key_table.go (100%) rename {common/keydb => serverkeyapi/storage}/sqlite3/keydb.go (100%) rename {common/keydb => serverkeyapi/storage}/sqlite3/server_key_table.go (100%) diff --git a/cmd/dendrite-demo-libp2p/main.go b/cmd/dendrite-demo-libp2p/main.go index 0ff610a5b..fc0399071 100644 --- a/cmd/dendrite-demo-libp2p/main.go +++ b/cmd/dendrite-demo-libp2p/main.go @@ -34,7 +34,6 @@ import ( "github.com/matrix-org/dendrite/cmd/dendrite-demo-libp2p/storage" "github.com/matrix-org/dendrite/common" "github.com/matrix-org/dendrite/common/config" - "github.com/matrix-org/dendrite/common/keydb" "github.com/matrix-org/dendrite/common/transactions" "github.com/matrix-org/dendrite/eduserver" "github.com/matrix-org/dendrite/federationapi" @@ -42,6 +41,7 @@ import ( "github.com/matrix-org/dendrite/mediaapi" "github.com/matrix-org/dendrite/publicroomsapi" "github.com/matrix-org/dendrite/roomserver" + "github.com/matrix-org/dendrite/serverkeyapi" "github.com/matrix-org/dendrite/syncapi" "github.com/matrix-org/gomatrixserverlib" @@ -53,17 +53,8 @@ import ( func createKeyDB( base *P2PDendrite, -) keydb.Database { - db, err := keydb.NewDatabase( - string(base.Base.Cfg.Database.ServerKey), - base.Base.Cfg.DbProperties(), - base.Base.Cfg.Matrix.ServerName, - base.Base.Cfg.Matrix.PrivateKey.Public().(ed25519.PublicKey), - base.Base.Cfg.Matrix.KeyID, - ) - if err != nil { - logrus.WithError(err).Panicf("failed to connect to keys db") - } + db gomatrixserverlib.KeyDatabase, +) { mdns := mDNSListener{ host: base.LibP2P, keydb: db, @@ -78,7 +69,6 @@ func createKeyDB( panic(err) } serv.RegisterNotifee(&mdns) - return db } func createFederationClient( @@ -145,9 +135,15 @@ func main() { accountDB := base.Base.CreateAccountsDB() deviceDB := base.Base.CreateDeviceDB() - keyDB := createKeyDB(base) federation := createFederationClient(base) - keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives) + + serverKeyAPI := serverkeyapi.SetupServerKeyAPIComponent( + &base.Base, federation, + ) + keyRing := serverKeyAPI.KeyRing() + createKeyDB( + base, serverKeyAPI, + ) rsAPI := roomserver.SetupRoomServerComponent( &base.Base, keyRing, federation, @@ -159,17 +155,17 @@ func main() { &base.Base, accountDB, deviceDB, federation, rsAPI, transactions.New(), ) fsAPI := federationsender.SetupFederationSenderComponent( - &base.Base, federation, rsAPI, &keyRing, + &base.Base, federation, rsAPI, keyRing, ) rsAPI.SetFederationSenderAPI(fsAPI) clientapi.SetupClientAPIComponent( &base.Base, deviceDB, accountDB, - federation, &keyRing, rsAPI, + federation, keyRing, rsAPI, eduInputAPI, asAPI, transactions.New(), fsAPI, ) eduProducer := producers.NewEDUServerProducer(eduInputAPI) - federationapi.SetupFederationAPIComponent(&base.Base, accountDB, deviceDB, federation, &keyRing, rsAPI, asAPI, fsAPI, eduProducer) + federationapi.SetupFederationAPIComponent(&base.Base, accountDB, deviceDB, federation, keyRing, rsAPI, asAPI, fsAPI, eduProducer) mediaapi.SetupMediaAPIComponent(&base.Base, deviceDB) publicRoomsDB, err := storage.NewPublicRoomsServerDatabaseWithPubSub(string(base.Base.Cfg.Database.PublicRoomsAPI), base.LibP2PPubsub) if err != nil { diff --git a/cmd/dendrite-demo-libp2p/mdnslistener.go b/cmd/dendrite-demo-libp2p/mdnslistener.go index 3fefbec2c..01705cf39 100644 --- a/cmd/dendrite-demo-libp2p/mdnslistener.go +++ b/cmd/dendrite-demo-libp2p/mdnslistener.go @@ -21,12 +21,11 @@ import ( "github.com/libp2p/go-libp2p-core/host" "github.com/libp2p/go-libp2p-core/peer" - "github.com/matrix-org/dendrite/common/keydb" "github.com/matrix-org/gomatrixserverlib" ) type mDNSListener struct { - keydb keydb.Database + keydb gomatrixserverlib.KeyDatabase host host.Host } diff --git a/cmd/dendrite-monolith-server/main.go b/cmd/dendrite-monolith-server/main.go index 23959152e..b8bf324d0 100644 --- a/cmd/dendrite-monolith-server/main.go +++ b/cmd/dendrite-monolith-server/main.go @@ -23,7 +23,6 @@ import ( "github.com/matrix-org/dendrite/clientapi/producers" "github.com/matrix-org/dendrite/common" "github.com/matrix-org/dendrite/common/basecomponent" - "github.com/matrix-org/dendrite/common/keydb" "github.com/matrix-org/dendrite/common/transactions" "github.com/matrix-org/dendrite/eduserver" "github.com/matrix-org/dendrite/eduserver/cache" @@ -34,6 +33,7 @@ import ( "github.com/matrix-org/dendrite/publicroomsapi" "github.com/matrix-org/dendrite/publicroomsapi/storage" "github.com/matrix-org/dendrite/roomserver" + "github.com/matrix-org/dendrite/serverkeyapi" "github.com/matrix-org/dendrite/syncapi" "github.com/prometheus/client_golang/prometheus/promhttp" @@ -55,9 +55,12 @@ func main() { accountDB := base.CreateAccountsDB() deviceDB := base.CreateDeviceDB() - keyDB := base.CreateKeyDB() federation := base.CreateFederationClient() - keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives) + + serverKeyAPI := serverkeyapi.SetupServerKeyAPIComponent( + base, federation, + ) + keyRing := serverKeyAPI.KeyRing() rsAPI := roomserver.SetupRoomServerComponent( base, keyRing, federation, @@ -69,20 +72,20 @@ func main() { base, accountDB, deviceDB, federation, rsAPI, transactions.New(), ) fsAPI := federationsender.SetupFederationSenderComponent( - base, federation, rsAPI, &keyRing, + base, federation, rsAPI, keyRing, ) rsAPI.SetFederationSenderAPI(fsAPI) clientapi.SetupClientAPIComponent( base, deviceDB, accountDB, - federation, &keyRing, rsAPI, + federation, keyRing, rsAPI, eduInputAPI, asAPI, transactions.New(), fsAPI, ) keyserver.SetupKeyServerComponent( base, deviceDB, accountDB, ) eduProducer := producers.NewEDUServerProducer(eduInputAPI) - federationapi.SetupFederationAPIComponent(base, accountDB, deviceDB, federation, &keyRing, rsAPI, asAPI, fsAPI, eduProducer) + federationapi.SetupFederationAPIComponent(base, accountDB, deviceDB, federation, keyRing, rsAPI, asAPI, fsAPI, eduProducer) mediaapi.SetupMediaAPIComponent(base, deviceDB) publicRoomsDB, err := storage.NewPublicRoomsServerDatabase(string(base.Cfg.Database.PublicRoomsAPI), base.Cfg.DbProperties()) if err != nil { diff --git a/cmd/dendritejs/main.go b/cmd/dendritejs/main.go index 618ebbc60..75e14808f 100644 --- a/cmd/dendritejs/main.go +++ b/cmd/dendritejs/main.go @@ -37,6 +37,7 @@ import ( "github.com/matrix-org/dendrite/publicroomsapi" "github.com/matrix-org/dendrite/publicroomsapi/storage" "github.com/matrix-org/dendrite/roomserver" + "github.com/matrix-org/dendrite/serverkeyapi" "github.com/matrix-org/dendrite/syncapi" go_http_js_libp2p "github.com/matrix-org/go-http-js-libp2p" "github.com/matrix-org/gomatrixserverlib" @@ -192,13 +193,16 @@ func main() { accountDB := base.CreateAccountsDB() deviceDB := base.CreateDeviceDB() - keyDB := base.CreateKeyDB() federation := createFederationClient(cfg, node) + + serverKeyAPI := serverkeyapi.SetupServerKeyAPIComponent( + base, federation, + ) keyRing := gomatrixserverlib.KeyRing{ KeyFetchers: []gomatrixserverlib.KeyFetcher{ &libp2pKeyFetcher{}, }, - KeyDatabase: keyDB, + KeyDatabase: serverKeyAPI, } p2pPublicRoomProvider := NewLibP2PPublicRoomsProvider(node) diff --git a/common/basecomponent/base.go b/common/basecomponent/base.go index 234de5e72..314c85015 100644 --- a/common/basecomponent/base.go +++ b/common/basecomponent/base.go @@ -21,11 +21,7 @@ import ( "net/url" "time" - "golang.org/x/crypto/ed25519" - "github.com/matrix-org/dendrite/common/caching" - "github.com/matrix-org/dendrite/common/keydb" - "github.com/matrix-org/dendrite/common/keydb/cache" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/naffka" @@ -42,6 +38,7 @@ import ( eduServerAPI "github.com/matrix-org/dendrite/eduserver/api" federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" + serverKeyAPI "github.com/matrix-org/dendrite/serverkeyapi/api" "github.com/sirupsen/logrus" _ "net/http/pprof" @@ -153,6 +150,20 @@ func (b *BaseDendrite) CreateHTTPFederationSenderAPIs() federationSenderAPI.Fede return f } +// CreateHTTPFederationSenderAPIs returns FederationSenderInternalAPI for hitting +// the federation sender over HTTP +func (b *BaseDendrite) CreateHTTPServerKeyAPIs() serverKeyAPI.ServerKeyInternalAPI { + f, err := serverKeyAPI.NewServerKeyInternalAPIHTTP( + b.Cfg.FederationSenderURL(), + b.httpClient, + b.ImmutableCache, + ) + if err != nil { + logrus.WithError(err).Panic("NewServerKeyInternalAPIHTTP failed", b.httpClient) + } + return f +} + // CreateDeviceDB creates a new instance of the device database. Should only be // called once per component. func (b *BaseDendrite) CreateDeviceDB() devices.Database { @@ -177,6 +188,7 @@ func (b *BaseDendrite) CreateAccountsDB() accounts.Database { // CreateKeyDB creates a new instance of the key database. Should only be called // once per component. +/* func (b *BaseDendrite) CreateKeyDB() keydb.Database { db, err := keydb.NewDatabase( string(b.Cfg.Database.ServerKey), @@ -195,6 +207,7 @@ func (b *BaseDendrite) CreateKeyDB() keydb.Database { } return cachedDB } +*/ // CreateFederationClient creates a new federation client. Should only be called // once per component. diff --git a/common/keydb/keyring.go b/common/keydb/keyring.go deleted file mode 100644 index e9cc7903e..000000000 --- a/common/keydb/keyring.go +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2017 New Vector Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package keydb - -import ( - "encoding/base64" - - "github.com/matrix-org/dendrite/common/config" - "github.com/matrix-org/gomatrixserverlib" - "github.com/sirupsen/logrus" - "golang.org/x/crypto/ed25519" -) - -// CreateKeyRing creates and configures a KeyRing object. -// -// It creates the necessary key fetchers and collects them into a KeyRing -// backed by the given KeyDatabase. -func CreateKeyRing(client gomatrixserverlib.Client, - keyDB gomatrixserverlib.KeyDatabase, - cfg config.KeyPerspectives) gomatrixserverlib.KeyRing { - - fetchers := gomatrixserverlib.KeyRing{ - KeyFetchers: []gomatrixserverlib.KeyFetcher{ - &gomatrixserverlib.DirectKeyFetcher{ - Client: client, - }, - }, - KeyDatabase: keyDB, - } - - logrus.Info("Enabled direct key fetcher") - - var b64e = base64.StdEncoding.WithPadding(base64.NoPadding) - for _, ps := range cfg { - perspective := &gomatrixserverlib.PerspectiveKeyFetcher{ - PerspectiveServerName: ps.ServerName, - PerspectiveServerKeys: map[gomatrixserverlib.KeyID]ed25519.PublicKey{}, - Client: client, - } - - for _, key := range ps.Keys { - rawkey, err := b64e.DecodeString(key.PublicKey) - if err != nil { - logrus.WithError(err).WithFields(logrus.Fields{ - "server_name": ps.ServerName, - "public_key": key.PublicKey, - }).Warn("Couldn't parse perspective key") - continue - } - perspective.PerspectiveServerKeys[key.KeyID] = rawkey - } - - fetchers.KeyFetchers = append(fetchers.KeyFetchers, perspective) - - logrus.WithFields(logrus.Fields{ - "server_name": ps.ServerName, - "num_public_keys": len(ps.Keys), - }).Info("Enabled perspective key fetcher") - } - - return fetchers -} diff --git a/serverkeyapi/api/api.go b/serverkeyapi/api/api.go new file mode 100644 index 000000000..539b1c9b3 --- /dev/null +++ b/serverkeyapi/api/api.go @@ -0,0 +1,30 @@ +package api + +import ( + "errors" + "net/http" + + "github.com/matrix-org/dendrite/common/caching" + "github.com/matrix-org/gomatrixserverlib" +) + +type ServerKeyInternalAPI interface { + gomatrixserverlib.KeyDatabase +} + +// NewRoomserverInputAPIHTTP creates a RoomserverInputAPI implemented by talking to a HTTP POST API. +// If httpClient is nil an error is returned +func NewServerKeyInternalAPIHTTP( + serverKeyAPIURL string, + httpClient *http.Client, + immutableCache caching.ImmutableCache, +) (ServerKeyInternalAPI, error) { + if httpClient == nil { + return nil, errors.New("NewRoomserverInternalAPIHTTP: httpClient is ") + } + return &httpServerKeyInternalAPI{ + serverKeyAPIURL: serverKeyAPIURL, + httpClient: httpClient, + immutableCache: immutableCache, + }, nil +} diff --git a/serverkeyapi/api/http.go b/serverkeyapi/api/http.go new file mode 100644 index 000000000..41189c686 --- /dev/null +++ b/serverkeyapi/api/http.go @@ -0,0 +1,38 @@ +package api + +import ( + "context" + "net/http" + + "github.com/matrix-org/dendrite/common/caching" + "github.com/matrix-org/gomatrixserverlib" +) + +type httpServerKeyInternalAPI struct { + ServerKeyInternalAPI + + serverKeyAPIURL string + httpClient *http.Client + immutableCache caching.ImmutableCache +} + +func (s *httpServerKeyInternalAPI) KeyRing() *gomatrixserverlib.KeyRing { + return &gomatrixserverlib.KeyRing{ + KeyDatabase: s, + KeyFetchers: []gomatrixserverlib.KeyFetcher{s}, + } +} + +func (s *httpServerKeyInternalAPI) StoreKeys( + ctx context.Context, + results map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, +) error { + return nil +} + +func (s *httpServerKeyInternalAPI) FetchKeys( + ctx context.Context, + requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp, +) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) { + return nil, nil +} diff --git a/serverkeyapi/internal/api.go b/serverkeyapi/internal/api.go new file mode 100644 index 000000000..4a0f4e3e8 --- /dev/null +++ b/serverkeyapi/internal/api.go @@ -0,0 +1,38 @@ +package internal + +import ( + "context" + + "github.com/matrix-org/dendrite/common/caching" + "github.com/matrix-org/dendrite/common/config" + "github.com/matrix-org/dendrite/serverkeyapi/storage" + "github.com/matrix-org/gomatrixserverlib" +) + +type ServerKeyAPI struct { + gomatrixserverlib.KeyDatabase + + DB storage.Database + Cfg *config.Dendrite + ImmutableCache caching.ImmutableCache + OurKeyRing gomatrixserverlib.KeyRing + FedClient *gomatrixserverlib.FederationClient +} + +func (s *ServerKeyAPI) KeyRing() *gomatrixserverlib.KeyRing { + return &s.OurKeyRing +} + +func (s *ServerKeyAPI) StoreKeys( + ctx context.Context, + results map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, +) error { + return s.DB.StoreKeys(ctx, results) +} + +func (s *ServerKeyAPI) FetchKeys( + ctx context.Context, + requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp, +) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) { + return s.DB.FetchKeys(ctx, requests) +} diff --git a/serverkeyapi/serverkeyapi.go b/serverkeyapi/serverkeyapi.go new file mode 100644 index 000000000..81e8ce47b --- /dev/null +++ b/serverkeyapi/serverkeyapi.go @@ -0,0 +1,82 @@ +package serverkeyapi + +import ( + "crypto/ed25519" + "encoding/base64" + + "github.com/matrix-org/dendrite/common/basecomponent" + "github.com/matrix-org/dendrite/serverkeyapi/internal" + "github.com/matrix-org/dendrite/serverkeyapi/storage" + "github.com/matrix-org/gomatrixserverlib" + "github.com/sirupsen/logrus" +) + +func SetupServerKeyAPIComponent( + base *basecomponent.BaseDendrite, + fedClient *gomatrixserverlib.FederationClient, +) *internal.ServerKeyAPI { + serverKeyDB, err := storage.NewDatabase( + string(base.Cfg.Database.ServerKey), + base.Cfg.DbProperties(), + base.Cfg.Matrix.ServerName, + base.Cfg.Matrix.PrivateKey.Public().(ed25519.PublicKey), + base.Cfg.Matrix.KeyID, + ) + if err != nil { + logrus.WithError(err).Panicf("failed to connect to room server db") + } + + internalAPI := internal.ServerKeyAPI{ + DB: serverKeyDB, + Cfg: base.Cfg, + ImmutableCache: base.ImmutableCache, + FedClient: fedClient, + OurKeyRing: gomatrixserverlib.KeyRing{ + KeyFetchers: []gomatrixserverlib.KeyFetcher{ + &gomatrixserverlib.DirectKeyFetcher{ + Client: fedClient.Client, + }, + }, + KeyDatabase: serverKeyDB, + }, + } + + var b64e = base64.StdEncoding.WithPadding(base64.NoPadding) + for _, ps := range base.Cfg.Matrix.KeyPerspectives { + perspective := &gomatrixserverlib.PerspectiveKeyFetcher{ + PerspectiveServerName: ps.ServerName, + PerspectiveServerKeys: map[gomatrixserverlib.KeyID]ed25519.PublicKey{}, + Client: fedClient.Client, + } + + for _, key := range ps.Keys { + rawkey, err := b64e.DecodeString(key.PublicKey) + if err != nil { + logrus.WithError(err).WithFields(logrus.Fields{ + "server_name": ps.ServerName, + "public_key": key.PublicKey, + }).Warn("Couldn't parse perspective key") + continue + } + perspective.PerspectiveServerKeys[key.KeyID] = rawkey + } + + internalAPI.OurKeyRing.KeyFetchers = append( + internalAPI.OurKeyRing.KeyFetchers, + perspective, + ) + + logrus.WithFields(logrus.Fields{ + "server_name": ps.ServerName, + "num_public_keys": len(ps.Keys), + }).Info("Enabled perspective key fetcher") + } + + /* + if base.EnableHTTPAPIs { + internalAPI.SetupHTTP(http.DefaultServeMux) + } + */ + + return &internalAPI +} diff --git a/common/keydb/cache/keydb.go b/serverkeyapi/storage/cache/keydb.go similarity index 100% rename from common/keydb/cache/keydb.go rename to serverkeyapi/storage/cache/keydb.go diff --git a/common/keydb/interface.go b/serverkeyapi/storage/interface.go similarity index 96% rename from common/keydb/interface.go rename to serverkeyapi/storage/interface.go index c9a20fdd9..3a67ac55a 100644 --- a/common/keydb/interface.go +++ b/serverkeyapi/storage/interface.go @@ -1,4 +1,4 @@ -package keydb +package storage import ( "context" diff --git a/common/keydb/keydb.go b/serverkeyapi/storage/keydb.go similarity index 91% rename from common/keydb/keydb.go rename to serverkeyapi/storage/keydb.go index 397d7849c..f4babac17 100644 --- a/common/keydb/keydb.go +++ b/serverkeyapi/storage/keydb.go @@ -14,7 +14,7 @@ // +build !wasm -package keydb +package storage import ( "net/url" @@ -22,8 +22,8 @@ import ( "golang.org/x/crypto/ed25519" "github.com/matrix-org/dendrite/common" - "github.com/matrix-org/dendrite/common/keydb/postgres" - "github.com/matrix-org/dendrite/common/keydb/sqlite3" + "github.com/matrix-org/dendrite/serverkeyapi/storage/postgres" + "github.com/matrix-org/dendrite/serverkeyapi/storage/sqlite3" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/common/keydb/keydb_wasm.go b/serverkeyapi/storage/keydb_wasm.go similarity index 93% rename from common/keydb/keydb_wasm.go rename to serverkeyapi/storage/keydb_wasm.go index 38e595820..e642db804 100644 --- a/common/keydb/keydb_wasm.go +++ b/serverkeyapi/storage/keydb_wasm.go @@ -12,7 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -package keydb +// +build wasm + +package storage import ( "fmt" @@ -21,7 +23,7 @@ import ( "golang.org/x/crypto/ed25519" "github.com/matrix-org/dendrite/common" - "github.com/matrix-org/dendrite/common/keydb/sqlite3" + "github.com/matrix-org/dendrite/serverkeyapi/storage/sqlite3" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/common/keydb/postgres/keydb.go b/serverkeyapi/storage/postgres/keydb.go similarity index 100% rename from common/keydb/postgres/keydb.go rename to serverkeyapi/storage/postgres/keydb.go diff --git a/common/keydb/postgres/server_key_table.go b/serverkeyapi/storage/postgres/server_key_table.go similarity index 100% rename from common/keydb/postgres/server_key_table.go rename to serverkeyapi/storage/postgres/server_key_table.go diff --git a/common/keydb/sqlite3/keydb.go b/serverkeyapi/storage/sqlite3/keydb.go similarity index 100% rename from common/keydb/sqlite3/keydb.go rename to serverkeyapi/storage/sqlite3/keydb.go diff --git a/common/keydb/sqlite3/server_key_table.go b/serverkeyapi/storage/sqlite3/server_key_table.go similarity index 100% rename from common/keydb/sqlite3/server_key_table.go rename to serverkeyapi/storage/sqlite3/server_key_table.go