@@ -10,9 +10,6 @@ import (
1010 "context"
1111 "database/sql"
1212 "fmt"
13- "time"
14-
15- "github.com/element-hq/dendrite/userapi/storage/postgres/deltas"
1613
1714 "github.com/element-hq/dendrite/internal"
1815 "github.com/element-hq/dendrite/internal/sqlutil"
@@ -32,29 +29,23 @@ CREATE TABLE IF NOT EXISTS keyserver_cross_signing_keys (
3229`
3330
3431const selectCrossSigningKeysForUserSQL = "" +
35- "SELECT key_type, key_data, updatable_without_uia_before_ms FROM keyserver_cross_signing_keys" +
32+ "SELECT key_type, key_data FROM keyserver_cross_signing_keys" +
3633 " WHERE user_id = $1"
3734
3835const selectCrossSigningKeysForUserAndKeyTypeSQL = "" +
39- "SELECT key_type, key_data, updatable_without_uia_before_ms FROM keyserver_cross_signing_keys" +
36+ "SELECT key_type, key_data FROM keyserver_cross_signing_keys" +
4037 " WHERE user_id = $1 AND key_type = $2"
4138
4239const upsertCrossSigningKeysForUserSQL = "" +
43- "INSERT INTO keyserver_cross_signing_keys (user_id, key_type, key_data, updatable_without_uia_before_ms )" +
40+ "INSERT INTO keyserver_cross_signing_keys (user_id, key_type, key_data)" +
4441 " VALUES($1, $2, $3, $4)" +
4542 " ON CONFLICT (user_id, key_type) DO UPDATE SET key_data = $3"
4643
47- const updateMasterCrossSigningKeyAllowReplacementWithoutUiaSQL = "" +
48- "UPDATE keyserver_cross_signing_keys" +
49- " SET updatable_without_uia_before_ms = $1" +
50- " WHERE user_id = $2 AND key_type = $3"
51-
5244type crossSigningKeysStatements struct {
53- db * sql.DB
54- selectCrossSigningKeysForUserStmt * sql.Stmt
55- selectCrossSigningKeysForUserAndKeyTypeStmt * sql.Stmt
56- upsertCrossSigningKeysForUserStmt * sql.Stmt
57- updateMasterCrossSigningKeyAllowReplacementWithoutUiaStmt * sql.Stmt
45+ db * sql.DB
46+ selectCrossSigningKeysForUserStmt * sql.Stmt
47+ selectCrossSigningKeysForUserAndKeyTypeStmt * sql.Stmt
48+ upsertCrossSigningKeysForUserStmt * sql.Stmt
5849}
5950
6051func NewPostgresCrossSigningKeysTable (db * sql.DB ) (tables.CrossSigningKeys , error ) {
@@ -66,12 +57,6 @@ func NewPostgresCrossSigningKeysTable(db *sql.DB) (tables.CrossSigningKeys, erro
6657 return nil , err
6758 }
6859 m := sqlutil .NewMigrator (db )
69- m .AddMigrations (
70- sqlutil.Migration {
71- Version : "userapi: add x-signing updatable_without_uia_before_ms" ,
72- Up : deltas .UpAddXSigningUpdatableWithoutUIABeforeMs ,
73- },
74- )
7560 err = m .Up (context .Background ())
7661 if err != nil {
7762 return nil , err
@@ -80,7 +65,6 @@ func NewPostgresCrossSigningKeysTable(db *sql.DB) (tables.CrossSigningKeys, erro
8065 {& s .selectCrossSigningKeysForUserStmt , selectCrossSigningKeysForUserSQL },
8166 {& s .selectCrossSigningKeysForUserAndKeyTypeStmt , selectCrossSigningKeysForUserAndKeyTypeSQL },
8267 {& s .upsertCrossSigningKeysForUserStmt , upsertCrossSigningKeysForUserSQL },
83- {& s .updateMasterCrossSigningKeyAllowReplacementWithoutUiaStmt , updateMasterCrossSigningKeyAllowReplacementWithoutUiaSQL },
8468 }.Prepare (db )
8569}
8670
@@ -96,18 +80,14 @@ func (s *crossSigningKeysStatements) SelectCrossSigningKeysForUser(
9680 for rows .Next () {
9781 var keyTypeInt int16
9882 var keyData spec.Base64Bytes
99- var updatableWithoutUIABeforeMs * int64
100- if err = rows .Scan (& keyTypeInt , & keyData , & updatableWithoutUIABeforeMs ); err != nil {
83+ if err = rows .Scan (& keyTypeInt , & keyData ); err != nil {
10184 return nil , err
10285 }
10386 keyType , ok := types .KeyTypeIntToPurpose [keyTypeInt ]
10487 if ! ok {
10588 return nil , fmt .Errorf ("unknown key purpose int %d" , keyTypeInt )
10689 }
107- r [keyType ] = types.CrossSigningKey {
108- UpdatableWithoutUIABeforeMs : updatableWithoutUIABeforeMs ,
109- KeyData : keyData ,
110- }
90+ r [keyType ] = keyData
11191 }
11292 err = rows .Err ()
11393 return
@@ -129,45 +109,28 @@ func (s *crossSigningKeysStatements) SelectCrossSigningKeysForUserAndKeyType(
129109 for rows .Next () {
130110 var keyTypeInt int16
131111 var keyData spec.Base64Bytes
132- var updatableWithoutUIABeforeMs * int64
133- if err = rows .Scan (& keyTypeInt , & keyData , & updatableWithoutUIABeforeMs ); err != nil {
112+ if err = rows .Scan (& keyTypeInt , & keyData ); err != nil {
134113 return nil , err
135114 }
136115 keyType , ok := types .KeyTypeIntToPurpose [keyTypeInt ]
137116 if ! ok {
138117 return nil , fmt .Errorf ("unknown key purpose int %d" , keyTypeInt )
139118 }
140- r [keyType ] = types.CrossSigningKey {
141- UpdatableWithoutUIABeforeMs : updatableWithoutUIABeforeMs ,
142- KeyData : keyData ,
143- }
119+ r [keyType ] = keyData
144120 }
145121 err = rows .Err ()
146122 return
147123}
148124
149125func (s * crossSigningKeysStatements ) UpsertCrossSigningKeysForUser (
150- ctx context.Context , txn * sql.Tx , userID string , keyType fclient.CrossSigningKeyPurpose , keyData spec.Base64Bytes , updatableWithoutUIABeforeMs * int64 ,
126+ ctx context.Context , txn * sql.Tx , userID string , keyType fclient.CrossSigningKeyPurpose , keyData spec.Base64Bytes ,
151127) error {
152128 keyTypeInt , ok := types .KeyTypePurposeToInt [keyType ]
153129 if ! ok {
154130 return fmt .Errorf ("unknown key purpose %q" , keyType )
155131 }
156- if _ , err := sqlutil .TxStmt (txn , s .upsertCrossSigningKeysForUserStmt ).ExecContext (ctx , userID , keyTypeInt , keyData , updatableWithoutUIABeforeMs ); err != nil {
132+ if _ , err := sqlutil .TxStmt (txn , s .upsertCrossSigningKeysForUserStmt ).ExecContext (ctx , userID , keyTypeInt , keyData ); err != nil {
157133 return fmt .Errorf ("s.upsertCrossSigningKeysForUserStmt: %w" , err )
158134 }
159135 return nil
160136}
161-
162- func (s * crossSigningKeysStatements ) UpdateMasterCrossSigningKeyAllowReplacementWithoutUIA (ctx context.Context , txn * sql.Tx , userID string , duration time.Duration ) (int64 , error ) {
163- keyTypeInt := types .KeyTypePurposeToInt [fclient .CrossSigningKeyPurposeMaster ]
164- ts := time .Now ().Add (duration ).UnixMilli ()
165- result , err := sqlutil .TxStmt (txn , s .updateMasterCrossSigningKeyAllowReplacementWithoutUiaStmt ).ExecContext (ctx , ts , userID , keyTypeInt )
166- if err != nil {
167- return - 1 , err
168- }
169- if n , _ := result .RowsAffected (); n == 0 {
170- return - 1 , sql .ErrNoRows
171- }
172- return ts , nil
173- }
0 commit comments