diff options
Diffstat (limited to 'vendor/go.mau.fi/whatsmeow/store/sqlstore')
-rw-r--r-- | vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go | 15 | ||||
-rw-r--r-- | vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go | 12 |
2 files changed, 19 insertions, 8 deletions
diff --git a/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go b/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go index 7f8c6c8f..4fbcec34 100644 --- a/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go +++ b/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go @@ -7,7 +7,6 @@ package sqlstore import ( - "crypto/rand" "database/sql" "errors" "fmt" @@ -18,6 +17,7 @@ import ( "go.mau.fi/whatsmeow/types" "go.mau.fi/whatsmeow/util/keys" waLog "go.mau.fi/whatsmeow/util/log" + "go.mau.fi/whatsmeow/util/randbytes" ) // Container is a wrapper for a SQL database that can contain multiple whatsmeow sessions. @@ -65,7 +65,12 @@ func New(dialect, address string, log waLog.Logger) (*Container, error) { // if err != nil { // panic(err) // } -// container, err := sqlstore.NewWithDB(db, "sqlite3", nil) +// container := sqlstore.NewWithDB(db, "sqlite3", nil) +// +// This method does not call Upgrade automatically like New does, so you must call it yourself: +// +// container := sqlstore.NewWithDB(...) +// err := container.Upgrade() func NewWithDB(db *sql.DB, dialect string, log waLog.Logger) *Container { if log == nil { log = waLog.Noop @@ -205,11 +210,7 @@ func (c *Container) NewDevice() *store.Device { NoiseKey: keys.NewKeyPair(), IdentityKey: keys.NewKeyPair(), RegistrationID: mathRand.Uint32(), - AdvSecretKey: make([]byte, 32), - } - _, err := rand.Read(device.AdvSecretKey) - if err != nil { - panic(err) + AdvSecretKey: randbytes.Make(32), } device.SignedPreKey = device.IdentityKey.CreateSignedPreKey(1) return device diff --git a/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go b/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go index f9f5a287..a6acdfc0 100644 --- a/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go +++ b/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go @@ -284,7 +284,8 @@ const ( SET key_data=excluded.key_data, timestamp=excluded.timestamp, fingerprint=excluded.fingerprint WHERE excluded.timestamp > whatsmeow_app_state_sync_keys.timestamp ` - getAppStateSyncKeyQuery = `SELECT key_data, timestamp, fingerprint FROM whatsmeow_app_state_sync_keys WHERE jid=$1 AND key_id=$2` + getAppStateSyncKeyQuery = `SELECT key_data, timestamp, fingerprint FROM whatsmeow_app_state_sync_keys WHERE jid=$1 AND key_id=$2` + getLatestAppStateSyncKeyIDQuery = `SELECT key_id FROM whatsmeow_app_state_sync_keys WHERE jid=$1 ORDER BY timestamp DESC LIMIT 1` ) func (s *SQLStore) PutAppStateSyncKey(id []byte, key store.AppStateSyncKey) error { @@ -301,6 +302,15 @@ func (s *SQLStore) GetAppStateSyncKey(id []byte) (*store.AppStateSyncKey, error) return &key, err } +func (s *SQLStore) GetLatestAppStateSyncKeyID() ([]byte, error) { + var keyID []byte + err := s.db.QueryRow(getLatestAppStateSyncKeyIDQuery, s.JID).Scan(&keyID) + if errors.Is(err, sql.ErrNoRows) { + return nil, nil + } + return keyID, err +} + const ( putAppStateVersionQuery = ` INSERT INTO whatsmeow_app_state_version (jid, name, version, hash) VALUES ($1, $2, $3, $4) |