updated deps
This commit is contained in:
19
vendor/maunium.net/go/mautrix/crypto/decryptmegolm.go
generated
vendored
19
vendor/maunium.net/go/mautrix/crypto/decryptmegolm.go
generated
vendored
@@ -10,6 +10,7 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"maunium.net/go/mautrix/event"
|
||||
"maunium.net/go/mautrix/id"
|
||||
@@ -38,7 +39,14 @@ func (mach *OlmMachine) DecryptMegolmEvent(evt *event.Event) (*event.Event, erro
|
||||
} else if content.Algorithm != id.AlgorithmMegolmV1 {
|
||||
return nil, UnsupportedAlgorithm
|
||||
}
|
||||
sess, err := mach.CryptoStore.GetGroupSession(evt.RoomID, content.SenderKey, content.SessionID)
|
||||
encryptionRoomID := evt.RoomID
|
||||
// Allow the server to move encrypted events between rooms if both the real room and target room are on a non-federatable .local domain.
|
||||
// The message index checks to prevent replay attacks still apply and aren't based on the room ID,
|
||||
// so the event ID and timestamp must remain the same when the event is moved to a different room.
|
||||
if origRoomID, ok := evt.Content.Raw["com.beeper.original_room_id"].(string); ok && strings.HasSuffix(origRoomID, ".local") && strings.HasSuffix(evt.RoomID.String(), ".local") {
|
||||
encryptionRoomID = id.RoomID(origRoomID)
|
||||
}
|
||||
sess, err := mach.CryptoStore.GetGroupSession(encryptionRoomID, content.SenderKey, content.SessionID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to get group session: %w", err)
|
||||
} else if sess == nil {
|
||||
@@ -93,13 +101,13 @@ func (mach *OlmMachine) DecryptMegolmEvent(evt *event.Event) (*event.Event, erro
|
||||
err = json.Unmarshal(plaintext, &megolmEvt)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to parse megolm payload: %w", err)
|
||||
} else if megolmEvt.RoomID != evt.RoomID {
|
||||
} else if megolmEvt.RoomID != encryptionRoomID {
|
||||
return nil, WrongRoom
|
||||
}
|
||||
megolmEvt.Type.Class = evt.Type.Class
|
||||
err = megolmEvt.Content.ParseRaw(megolmEvt.Type)
|
||||
if err != nil {
|
||||
if event.IsUnsupportedContentType(err) {
|
||||
if errors.Is(err, event.ErrUnsupportedContentType) {
|
||||
mach.Log.Warn("Unsupported event type %s in encrypted event %s", megolmEvt.Type.Repr(), evt.ID)
|
||||
} else {
|
||||
return nil, fmt.Errorf("failed to parse content of megolm payload event: %w", err)
|
||||
@@ -113,8 +121,9 @@ func (mach *OlmMachine) DecryptMegolmEvent(evt *event.Event) (*event.Event, erro
|
||||
} else {
|
||||
mach.Log.Trace("Not overriding relation data in %s, as encrypted payload already has it", evt.ID)
|
||||
}
|
||||
} else {
|
||||
mach.Log.Warn("Encrypted event %s has relation data, but content type %T (%s) doesn't support it", evt.ID, megolmEvt.Content.Parsed, megolmEvt.Type.String())
|
||||
}
|
||||
if _, hasRelation := megolmEvt.Content.Raw["m.relates_to"]; !hasRelation {
|
||||
megolmEvt.Content.Raw["m.relates_to"] = evt.Content.Raw["m.relates_to"]
|
||||
}
|
||||
}
|
||||
megolmEvt.Type.Class = evt.Type.Class
|
||||
|
||||
2
vendor/maunium.net/go/mautrix/crypto/decryptolm.go
generated
vendored
2
vendor/maunium.net/go/mautrix/crypto/decryptolm.go
generated
vendored
@@ -94,7 +94,7 @@ func (mach *OlmMachine) decryptAndParseOlmCiphertext(sender id.UserID, senderKey
|
||||
}
|
||||
|
||||
err = olmEvt.Content.ParseRaw(olmEvt.Type)
|
||||
if err != nil && !event.IsUnsupportedContentType(err) {
|
||||
if err != nil && !errors.Is(err, event.ErrUnsupportedContentType) {
|
||||
return nil, fmt.Errorf("failed to parse content of olm payload event: %w", err)
|
||||
}
|
||||
|
||||
|
||||
4
vendor/maunium.net/go/mautrix/crypto/sql_store.go
generated
vendored
4
vendor/maunium.net/go/mautrix/crypto/sql_store.go
generated
vendored
@@ -55,10 +55,6 @@ func NewSQLCryptoStore(db *dbutil.Database, log dbutil.DatabaseLogger, accountID
|
||||
}
|
||||
}
|
||||
|
||||
func (store *SQLCryptoStore) Upgrade() error {
|
||||
return store.DB.Upgrade()
|
||||
}
|
||||
|
||||
// Flush does nothing for this implementation as data is already persisted in the database.
|
||||
func (store *SQLCryptoStore) Flush() error {
|
||||
return nil
|
||||
|
||||
12
vendor/maunium.net/go/mautrix/crypto/sql_store_upgrade/upgrade.go
generated
vendored
12
vendor/maunium.net/go/mautrix/crypto/sql_store_upgrade/upgrade.go
generated
vendored
@@ -7,7 +7,6 @@
|
||||
package sql_store_upgrade
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"embed"
|
||||
"fmt"
|
||||
|
||||
@@ -27,14 +26,3 @@ func init() {
|
||||
})
|
||||
Table.RegisterFS(fs)
|
||||
}
|
||||
|
||||
// Upgrade upgrades the database from the current to the latest version available.
|
||||
func Upgrade(sqlDB *sql.DB, dialect string) error {
|
||||
db, err := dbutil.NewWithDB(sqlDB, dialect)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
db.VersionTable = VersionTableName
|
||||
db.UpgradeTable = Table
|
||||
return db.Upgrade()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user