aboutsummaryrefslogtreecommitdiff
path: root/internal/config/config_serverkey.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/config/config_serverkey.go')
-rw-r--r--internal/config/config_serverkey.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/internal/config/config_serverkey.go b/internal/config/config_serverkey.go
index cf1f537a..78dc1194 100644
--- a/internal/config/config_serverkey.go
+++ b/internal/config/config_serverkey.go
@@ -1,5 +1,7 @@
package config
+import "github.com/matrix-org/gomatrixserverlib"
+
type ServerKeyAPI struct {
Matrix *Global `yaml:"-"`
@@ -27,3 +29,22 @@ func (c *ServerKeyAPI) Verify(configErrs *ConfigErrors, isMonolith bool) {
checkNotEmpty(configErrs, "server_key_api.bind", string(c.Bind))
checkNotEmpty(configErrs, "server_key_api.database.connection_string", string(c.Database.ConnectionString))
}
+
+// KeyPerspectives are used to configure perspective key servers for
+// retrieving server keys.
+type KeyPerspectives []KeyPerspective
+
+type KeyPerspective struct {
+ // The server name of the perspective key server
+ ServerName gomatrixserverlib.ServerName `yaml:"server_name"`
+ // Server keys for the perspective user, used to verify the
+ // keys have been signed by the perspective server
+ Keys []KeyPerspectiveTrustKey `yaml:"keys"`
+}
+
+type KeyPerspectiveTrustKey struct {
+ // The key ID, e.g. ed25519:auto
+ KeyID gomatrixserverlib.KeyID `yaml:"key_id"`
+ // The public key in base64 unpadded format
+ PublicKey string `yaml:"public_key"`
+}