mirror of
https://github.com/mautrix/whatsapp.git
synced 2025-03-14 14:15:38 +00:00
client: generate curve25519 key for push
This commit is contained in:
parent
5b1effcd51
commit
7319d429d7
2 changed files with 9 additions and 5 deletions
|
@ -25,13 +25,13 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
"go.mau.fi/util/random"
|
||||
"go.mau.fi/whatsmeow"
|
||||
waBinary "go.mau.fi/whatsmeow/binary"
|
||||
"go.mau.fi/whatsmeow/proto/waHistorySync"
|
||||
"go.mau.fi/whatsmeow/proto/waWa6"
|
||||
"go.mau.fi/whatsmeow/store"
|
||||
"go.mau.fi/whatsmeow/types"
|
||||
"go.mau.fi/whatsmeow/util/keys"
|
||||
waLog "go.mau.fi/whatsmeow/util/log"
|
||||
"golang.org/x/sync/semaphore"
|
||||
"maunium.net/go/mautrix/bridge/status"
|
||||
|
@ -150,14 +150,17 @@ func (wa *WhatsAppClient) RegisterPushNotifications(ctx context.Context, pushTyp
|
|||
}
|
||||
case bridgev2.PushTypeAPNs:
|
||||
meta := wa.UserLogin.Metadata.(*waid.UserLoginMetadata)
|
||||
if meta.APNSEncKey == nil {
|
||||
meta.APNSEncKey = random.Bytes(32)
|
||||
if meta.APNSEncPubKey == nil {
|
||||
k := keys.NewKeyPair()
|
||||
meta.APNSEncPubKey = k.Pub[:]
|
||||
meta.APNSEncPrivKey = k.Priv[:]
|
||||
err := wa.UserLogin.Save(ctx)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to save push enc key: %w", err)
|
||||
}
|
||||
}
|
||||
pc = &whatsmeow.APNsPushConfig{Token: token, MsgIDEncKey: meta.APNSEncKey}
|
||||
// TODO figure out if the key is supposed to be aes or curve25519
|
||||
pc = &whatsmeow.APNsPushConfig{Token: token, MsgIDEncKey: meta.APNSEncPubKey}
|
||||
default:
|
||||
return fmt.Errorf("unsupported push type %s", pushType)
|
||||
}
|
||||
|
|
|
@ -33,7 +33,8 @@ type UserLoginMetadata struct {
|
|||
PhoneLastPinged jsontime.Unix `json:"phone_last_pinged"`
|
||||
Timezone string `json:"timezone"`
|
||||
PushKeys *PushKeys `json:"push_keys,omitempty"`
|
||||
APNSEncKey []byte `json:"apns_enc_key,omitempty"`
|
||||
APNSEncPubKey []byte `json:"apns_enc_pubkey,omitempty"`
|
||||
APNSEncPrivKey []byte `json:"apns_enc_privkey,omitempty"`
|
||||
|
||||
HistorySyncPortalsNeedCreating bool `json:"history_sync_portals_need_creating,omitempty"`
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue