diff --git a/database/cryptostore.go b/database/cryptostore.go index 7e04bc3..d92eb88 100644 --- a/database/cryptostore.go +++ b/database/cryptostore.go @@ -355,6 +355,22 @@ func (store *SQLCryptoStore) GetDevices(userID id.UserID) (map[id.DeviceID]*cryp return data, nil } +func (store *SQLCryptoStore) GetDevice(userID id.UserID, deviceID id.DeviceID) (*crypto.DeviceIdentity, error) { + var identity crypto.DeviceIdentity + err := store.db.QueryRow(` + SELECT identity_key, signing_key, trust, deleted, name + FROM crypto_device WHERE user_id=$1 AND device_id=$2`, + userID, deviceID, + ).Scan(&identity.IdentityKey, &identity.SigningKey, &identity.Trust, &identity.Deleted, &identity.Name) + if err != nil { + if err == sql.ErrNoRows { + return nil, nil + } + return nil, err + } + return &identity, nil +} + func (store *SQLCryptoStore) PutDevices(userID id.UserID, devices map[id.DeviceID]*crypto.DeviceIdentity) error { tx, err := store.db.Begin() if err != nil { diff --git a/go.mod b/go.mod index 2c0a985..639b01d 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( gopkg.in/yaml.v2 v2.2.8 maunium.net/go/mauflag v1.0.0 maunium.net/go/maulogger/v2 v2.1.1 - maunium.net/go/mautrix v0.4.5 + maunium.net/go/mautrix v0.4.7 ) replace github.com/Rhymen/go-whatsapp => github.com/tulir/go-whatsapp v0.2.8 diff --git a/go.sum b/go.sum index 679280e..62574cf 100644 --- a/go.sum +++ b/go.sum @@ -100,3 +100,5 @@ maunium.net/go/mautrix v0.4.4 h1:C5yYDzUdRtJj/9Vot5YBPQUsWmn19sTySew7f4ACLhM= maunium.net/go/mautrix v0.4.4/go.mod h1:8Y+NqmROJyWYvvP4yPfX9tLM59VCfgE/kcQ0SeX68ho= maunium.net/go/mautrix v0.4.5 h1:cQhlPURW0TGjlqEoac+4+J/aS5/Rg8x1b+fiFZZz6LI= maunium.net/go/mautrix v0.4.5/go.mod h1:8Y+NqmROJyWYvvP4yPfX9tLM59VCfgE/kcQ0SeX68ho= +maunium.net/go/mautrix v0.4.7 h1:jpclbeGcuiHPIWZFZhQJoxgZKP9f+9OLBPtcDNMFV/o= +maunium.net/go/mautrix v0.4.7/go.mod h1:8Y+NqmROJyWYvvP4yPfX9tLM59VCfgE/kcQ0SeX68ho=