Documentation
¶
Overview ¶
Package store provides the storage interfaces for storing the state of ongoing double ratchet sessions and keys.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IdentityKey ¶
type IdentityKey interface {
// Get the local client's identity key pair.
GetIdentityKeyPair() *identity.KeyPair
// Return the local client's registration ID.
//
// Clients should maintain a registration ID, a random number between 1 and 16380
// that's generated once at install time.
GetLocalRegistrationId() uint32
// Save a remote client's identity key in our identity store.
SaveIdentity(address *protocol.SignalAddress, identityKey *identity.Key)
// Verify a remote client's identity key.
//
// Determine whether a remote client's identity is trusted. Trust is based on
// 'trust on first use'. This means that an identity key is considered 'trusted'
// if there is no entry for the recipient in the local store, or if it matches the
// saved key for a recipient in the local store.
IsTrustedIdentity(address *protocol.SignalAddress, identityKey *identity.Key) bool
}
IdentityKey provides an interface to identity information.
type MessageKey ¶
type MessageKey interface {
// Load a local message key by id
LoadMessageKey(keyID uint32) *message.Keys
// Store a local message key
StoreMessageKey(keyID uint32, key *message.Keys)
// Check to see if the store contains a message key with id.
ContainsMessageKey(keyID uint32) bool
// Delete a message key from local storage.
RemoveMessageKey(keyID uint32)
}
MessageKey store is an interface describing the optional local storage of message keys.
type PreKey ¶
type PreKey interface {
// Load a local PreKeyRecord
LoadPreKey(preKeyID uint32) *record.PreKey
// Store a local PreKeyRecord
StorePreKey(preKeyID uint32, preKeyRecord *record.PreKey)
// Check to see if the store contains a PreKeyRecord
ContainsPreKey(preKeyID uint32) bool
// Delete a PreKeyRecord from local storage.
RemovePreKey(preKeyID uint32)
}
PreKey store is an interface describing the local storage of PreKeyRecords
type Session ¶
type Session interface {
LoadSession(address *protocol.SignalAddress) *record.Session
GetSubDeviceSessions(name string) []uint32
StoreSession(remoteAddress *protocol.SignalAddress, record *record.Session)
ContainsSession(remoteAddress *protocol.SignalAddress) bool
DeleteSession(remoteAddress *protocol.SignalAddress)
DeleteAllSessions()
}
Session store is an interface for the persistent storage of session state information for remote clients.
type SignalProtocol ¶
type SignalProtocol interface {
IdentityKey
PreKey
Session
SignedPreKey
store.SenderKey
}
SignalProtocol store is an interface that implements the methods for all stores needed in the Signal Protocol.
type SignedPreKey ¶
type SignedPreKey interface {
// LoadSignedPreKey loads a local SignedPreKeyRecord
LoadSignedPreKey(signedPreKeyID uint32) *record.SignedPreKey
// LoadSignedPreKeys loads all local SignedPreKeyRecords
LoadSignedPreKeys() []*record.SignedPreKey
// Store a local SignedPreKeyRecord
StoreSignedPreKey(signedPreKeyID uint32, record *record.SignedPreKey)
// Check to see if store contains the given record
ContainsSignedPreKey(signedPreKeyID uint32) bool
// Delete a SignedPreKeyRecord from local storage
RemoveSignedPreKey(signedPreKeyID uint32)
}
SignedPreKey store is an interface that describes how to persistently store signed PreKeys.