Documentation ¶
Overview ¶
Package store contains interfaces for storing data needed for WhatsApp multidevice.
Index ¶
- Variables
- func SetOSInfo(name string, version [3]uint32)
- func SetWAVersion(version WAVersionContainer)
- type AppStateMutationMAC
- type AppStateStore
- type AppStateSyncKey
- type AppStateSyncKeyStore
- type ChatSettingsStore
- type ContactEntry
- type ContactStore
- type Device
- func (device *Device) ContainsPreKey(preKeyID uint32) bool
- func (device *Device) ContainsSession(remoteAddress *protocol.SignalAddress) bool
- func (device *Device) ContainsSignedPreKey(signedPreKeyID uint32) bool
- func (device *Device) Delete() error
- func (device *Device) DeleteAllSessions()
- func (device *Device) DeleteSession(remoteAddress *protocol.SignalAddress)
- func (device *Device) GetClientPayload() *waProto.ClientPayload
- func (device *Device) GetIdentityKeyPair() *identity.KeyPair
- func (device *Device) GetLocalRegistrationId() uint32
- func (device *Device) GetSubDeviceSessions(name string) []uint32
- func (device *Device) IsTrustedIdentity(address *protocol.SignalAddress, identityKey *identity.Key) bool
- func (device *Device) LoadPreKey(id uint32) *record.PreKey
- func (device *Device) LoadSenderKey(senderKeyName *protocol.SenderKeyName) *groupRecord.SenderKey
- func (device *Device) LoadSession(address *protocol.SignalAddress) *record.Session
- func (device *Device) LoadSignedPreKey(signedPreKeyID uint32) *record.SignedPreKey
- func (device *Device) LoadSignedPreKeys() []*record.SignedPreKey
- func (device *Device) RemovePreKey(id uint32)
- func (device *Device) RemoveSignedPreKey(signedPreKeyID uint32)
- func (device *Device) Save() error
- func (device *Device) SaveIdentity(address *protocol.SignalAddress, identityKey *identity.Key)
- func (device *Device) StorePreKey(preKeyID uint32, preKeyRecord *record.PreKey)
- func (device *Device) StoreSenderKey(senderKeyName *protocol.SenderKeyName, keyRecord *groupRecord.SenderKey)
- func (device *Device) StoreSession(address *protocol.SignalAddress, record *record.Session)
- func (device *Device) StoreSignedPreKey(signedPreKeyID uint32, record *record.SignedPreKey)
- type DeviceContainer
- type IdentityStore
- type MessageSecretInsert
- type MsgSecretStore
- type PreKeyStore
- type PrivacyToken
- type PrivacyTokenStore
- type SenderKeyStore
- type SessionStore
- type WAVersionContainer
Constants ¶
This section is empty.
Variables ¶
var BaseClientPayload = &waProto.ClientPayload{ UserAgent: &waProto.ClientPayload_UserAgent{ Platform: waProto.ClientPayload_UserAgent_WEB.Enum(), ReleaseChannel: waProto.ClientPayload_UserAgent_RELEASE.Enum(), AppVersion: waVersion.ProtoAppVersion(), Mcc: proto.String("000"), Mnc: proto.String("000"), OsVersion: proto.String("0.1.0"), Manufacturer: proto.String(""), Device: proto.String("Desktop"), OsBuildNumber: proto.String("0.1.0"), LocaleLanguageIso6391: proto.String("en"), LocaleCountryIso31661Alpha2: proto.String("en"), }, WebInfo: &waProto.ClientPayload_WebInfo{ WebSubPlatform: waProto.ClientPayload_WebInfo_WEB_BROWSER.Enum(), }, ConnectType: waProto.ClientPayload_WIFI_UNKNOWN.Enum(), ConnectReason: waProto.ClientPayload_USER_ACTIVATED.Enum(), }
var DeviceProps = &waProto.DeviceProps{ Os: proto.String("whatsappprotocol"), Version: &waProto.DeviceProps_AppVersion{ Primary: proto.Uint32(0), Secondary: proto.Uint32(1), Tertiary: proto.Uint32(0), }, PlatformType: waProto.DeviceProps_UNKNOWN.Enum(), RequireFullSync: proto.Bool(false), }
var SignalProtobufSerializer = serialize.NewProtoBufSerializer()
Functions ¶
func SetWAVersion ¶
func SetWAVersion(version WAVersionContainer)
SetWAVersion sets the current WhatsApp web client version.
In general, you should keep the library up-to-date instead of using this, as there may be code changes that are necessary too (like protobuf schema changes).
Types ¶
type AppStateMutationMAC ¶
type AppStateStore ¶
type AppStateStore interface { PutAppStateVersion(name string, version uint64, hash [128]byte) error GetAppStateVersion(name string) (uint64, [128]byte, error) DeleteAppStateVersion(name string) error PutAppStateMutationMACs(name string, version uint64, mutations []AppStateMutationMAC) error DeleteAppStateMutationMACs(name string, indexMACs [][]byte) error GetAppStateMutationMAC(name string, indexMAC []byte) (valueMAC []byte, err error) }
type AppStateSyncKey ¶
type AppStateSyncKeyStore ¶
type AppStateSyncKeyStore interface { PutAppStateSyncKey(id []byte, key AppStateSyncKey) error GetAppStateSyncKey(id []byte) (*AppStateSyncKey, error) GetLatestAppStateSyncKeyID() ([]byte, error) }
type ChatSettingsStore ¶
type ContactStore ¶
type ContactStore interface { PutPushName(user types.JID, pushName string) (bool, string, error) PutBusinessName(user types.JID, businessName string) (bool, string, error) PutContactName(user types.JID, fullName, firstName string) error PutAllContactNames(contacts []ContactEntry) error GetContact(user types.JID) (types.ContactInfo, error) GetAllContacts() (map[types.JID]types.ContactInfo, error) }
type Device ¶
type Device struct { Log waLog.Logger NoiseKey *keys.KeyPair IdentityKey *keys.KeyPair SignedPreKey *keys.PreKey RegistrationID uint32 AdvSecretKey []byte ID *types.JID Account *waProto.ADVSignedDeviceIdentity Platform string BusinessName string PushName string Initialized bool Identities IdentityStore Sessions SessionStore PreKeys PreKeyStore SenderKeys SenderKeyStore AppStateKeys AppStateSyncKeyStore AppState AppStateStore Contacts ContactStore ChatSettings ChatSettingsStore MsgSecrets MsgSecretStore PrivacyTokens PrivacyTokenStore Container DeviceContainer Mobile bool MobileInfo []byte ClientPayload *waProto.ClientPayload DatabaseErrorHandler func(device *Device, action string, attemptIndex int, err error) (retry bool) }
func (*Device) ContainsPreKey ¶
func (*Device) ContainsSession ¶
func (device *Device) ContainsSession(remoteAddress *protocol.SignalAddress) bool
func (*Device) ContainsSignedPreKey ¶
func (*Device) DeleteAllSessions ¶
func (device *Device) DeleteAllSessions()
func (*Device) DeleteSession ¶
func (device *Device) DeleteSession(remoteAddress *protocol.SignalAddress)
func (*Device) GetClientPayload ¶
func (device *Device) GetClientPayload() *waProto.ClientPayload
func (*Device) GetIdentityKeyPair ¶
func (*Device) GetLocalRegistrationId ¶
func (*Device) GetSubDeviceSessions ¶
func (*Device) IsTrustedIdentity ¶
func (*Device) LoadSenderKey ¶
func (device *Device) LoadSenderKey(senderKeyName *protocol.SenderKeyName) *groupRecord.SenderKey
func (*Device) LoadSession ¶
func (device *Device) LoadSession(address *protocol.SignalAddress) *record.Session
func (*Device) LoadSignedPreKey ¶
func (device *Device) LoadSignedPreKey(signedPreKeyID uint32) *record.SignedPreKey
func (*Device) LoadSignedPreKeys ¶
func (device *Device) LoadSignedPreKeys() []*record.SignedPreKey
func (*Device) RemovePreKey ¶
func (*Device) RemoveSignedPreKey ¶
func (*Device) SaveIdentity ¶
func (device *Device) SaveIdentity(address *protocol.SignalAddress, identityKey *identity.Key)
func (*Device) StorePreKey ¶
func (*Device) StoreSenderKey ¶
func (device *Device) StoreSenderKey(senderKeyName *protocol.SenderKeyName, keyRecord *groupRecord.SenderKey)
func (*Device) StoreSession ¶
func (device *Device) StoreSession(address *protocol.SignalAddress, record *record.Session)
func (*Device) StoreSignedPreKey ¶
func (device *Device) StoreSignedPreKey(signedPreKeyID uint32, record *record.SignedPreKey)
type DeviceContainer ¶
type IdentityStore ¶
type MessageSecretInsert ¶
type MsgSecretStore ¶
type PreKeyStore ¶
type PrivacyTokenStore ¶
type PrivacyTokenStore interface { PutPrivacyTokens(tokens ...PrivacyToken) error GetPrivacyToken(user types.JID) (*PrivacyToken, error) }
type SenderKeyStore ¶
type SessionStore ¶
type WAVersionContainer ¶
type WAVersionContainer [3]uint32
WAVersionContainer is a container for a WhatsApp web version number.
func GetWAVersion ¶
func GetWAVersion() WAVersionContainer
GetWAVersion gets the current WhatsApp web client version.
func ParseVersion ¶
func ParseVersion(version string) (parsed WAVersionContainer, err error)
ParseVersion parses a version string (three dot-separated numbers) into a WAVersionContainer.
func (WAVersionContainer) Hash ¶
func (vc WAVersionContainer) Hash() [16]byte
Hash returns the md5 hash of the String representation of this version.
func (WAVersionContainer) IsZero ¶
func (vc WAVersionContainer) IsZero() bool
IsZero returns true if the version is zero.
func (WAVersionContainer) LessThan ¶
func (vc WAVersionContainer) LessThan(other WAVersionContainer) bool
func (WAVersionContainer) ProtoAppVersion ¶
func (vc WAVersionContainer) ProtoAppVersion() *waProto.ClientPayload_UserAgent_AppVersion
func (WAVersionContainer) String ¶
func (vc WAVersionContainer) String() string
String returns the version number as a dot-separated string.