Documentation
¶
Index ¶
- func IsAlreadyExistsError(err error) bool
- type AlreadyExistsError
- type Config
- type IdentityStore
- type IdentityUpdate
- type IdentityUpdateKind
- type IdentityUpdateList
- type MlsStore
- type Store
- func (s *Store) CreateOrUpdateInstallation(ctx context.Context, installationId []byte, keyPackage []byte) error
- func (s *Store) FetchKeyPackages(ctx context.Context, installationIds [][]byte) ([]queries.FetchKeyPackagesRow, error)
- func (s *Store) GetInboxIds(ctx context.Context, req *identity.GetInboxIdsRequest) (*identity.GetInboxIdsResponse, error)
- func (s *Store) GetInboxLogs(ctx context.Context, batched_req *identity.GetIdentityUpdatesRequest) (*identity.GetIdentityUpdatesResponse, error)
- func (s *Store) InsertCommitLog(ctx context.Context, groupId []byte, encrypted_entry []byte) (queries.CommitLog, error)
- func (s *Store) InsertGroupMessage(ctx context.Context, groupId []byte, data []byte) (*queries.GroupMessage, error)
- func (s *Store) InsertWelcomeMessage(ctx context.Context, installationId []byte, data []byte, hpkePublicKey []byte, ...) (*queries.WelcomeMessage, error)
- func (s *Store) PublishIdentityUpdate(ctx context.Context, req *identity.PublishIdentityUpdateRequest, ...) (*identity.PublishIdentityUpdateResponse, error)
- func (s *Store) QueryCommitLog(ctx context.Context, req *mlsv1.QueryCommitLogRequest) (*mlsv1.QueryCommitLogResponse, error)
- func (s *Store) QueryGroupMessagesV1(ctx context.Context, req *mlsv1.QueryGroupMessagesRequest) (*mlsv1.QueryGroupMessagesResponse, error)
- func (s *Store) QueryWelcomeMessagesV1(ctx context.Context, req *mlsv1.QueryWelcomeMessagesRequest) (*mlsv1.QueryWelcomeMessagesResponse, error)
- func (s *Store) RunInRepeatableReadTx(ctx context.Context, numRetries int, ...) error
- func (s *Store) RunInTx(ctx context.Context, opts *sql.TxOptions, ...) error
- type StoreOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsAlreadyExistsError ¶
Types ¶
type AlreadyExistsError ¶
type AlreadyExistsError struct {
Err error
}
func NewAlreadyExistsError ¶
func NewAlreadyExistsError(err error) *AlreadyExistsError
func (*AlreadyExistsError) Error ¶
func (e *AlreadyExistsError) Error() string
type IdentityStore ¶
type IdentityStore interface {
PublishIdentityUpdate(
ctx context.Context,
req *identity.PublishIdentityUpdateRequest,
validationService mlsvalidate.MLSValidationService,
) (*identity.PublishIdentityUpdateResponse, error)
GetInboxLogs(
ctx context.Context,
req *identity.GetIdentityUpdatesRequest,
) (*identity.GetIdentityUpdatesResponse, error)
GetInboxIds(
ctx context.Context,
req *identity.GetInboxIdsRequest,
) (*identity.GetInboxIdsResponse, error)
}
type IdentityUpdate ¶
type IdentityUpdate struct {
Kind IdentityUpdateKind
InstallationKey []byte
CredentialIdentity []byte
TimestampNs uint64
}
type IdentityUpdateKind ¶
type IdentityUpdateKind int
const ( Create IdentityUpdateKind = iota Revoke )
type IdentityUpdateList ¶
type IdentityUpdateList []IdentityUpdate
Add the required methods to make a valid sort.Sort interface
func (IdentityUpdateList) Len ¶
func (a IdentityUpdateList) Len() int
func (IdentityUpdateList) Less ¶
func (a IdentityUpdateList) Less(i, j int) bool
func (IdentityUpdateList) Swap ¶
func (a IdentityUpdateList) Swap(i, j int)
type MlsStore ¶
type MlsStore interface {
IdentityStore
CreateOrUpdateInstallation(ctx context.Context, installationId []byte, keyPackage []byte) error
FetchKeyPackages(
ctx context.Context,
installationIds [][]byte,
) ([]queries.FetchKeyPackagesRow, error)
InsertGroupMessage(
ctx context.Context,
groupId []byte,
data []byte,
) (*queries.GroupMessage, error)
InsertWelcomeMessage(
ctx context.Context,
installationId []byte,
data []byte,
hpkePublicKey []byte,
algorithm types.WrapperAlgorithm,
welcomeMetadata []byte,
) (*queries.WelcomeMessage, error)
QueryGroupMessagesV1(
ctx context.Context,
query *mlsv1.QueryGroupMessagesRequest,
) (*mlsv1.QueryGroupMessagesResponse, error)
QueryWelcomeMessagesV1(
ctx context.Context,
query *mlsv1.QueryWelcomeMessagesRequest,
) (*mlsv1.QueryWelcomeMessagesResponse, error)
QueryCommitLog(
ctx context.Context,
query *mlsv1.QueryCommitLogRequest,
) (*mlsv1.QueryCommitLogResponse, error)
InsertCommitLog(
ctx context.Context,
groupId []byte,
encrypted_entry []byte,
) (queries.CommitLog, error)
}
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
func (*Store) CreateOrUpdateInstallation ¶
func (s *Store) CreateOrUpdateInstallation( ctx context.Context, installationId []byte, keyPackage []byte, ) error
Creates the installation and last resort key package
func (*Store) FetchKeyPackages ¶
func (*Store) GetInboxIds ¶
func (s *Store) GetInboxIds( ctx context.Context, req *identity.GetInboxIdsRequest, ) (*identity.GetInboxIdsResponse, error)
func (*Store) GetInboxLogs ¶
func (s *Store) GetInboxLogs( ctx context.Context, batched_req *identity.GetIdentityUpdatesRequest, ) (*identity.GetIdentityUpdatesResponse, error)
func (*Store) InsertCommitLog ¶ added in v1.0.1
func (*Store) InsertGroupMessage ¶
func (*Store) InsertWelcomeMessage ¶
func (*Store) PublishIdentityUpdate ¶
func (s *Store) PublishIdentityUpdate( ctx context.Context, req *identity.PublishIdentityUpdateRequest, validationService mlsvalidate.MLSValidationService, ) (*identity.PublishIdentityUpdateResponse, error)
func (*Store) QueryCommitLog ¶ added in v1.0.1
func (s *Store) QueryCommitLog( ctx context.Context, req *mlsv1.QueryCommitLogRequest, ) (*mlsv1.QueryCommitLogResponse, error)
func (*Store) QueryGroupMessagesV1 ¶
func (s *Store) QueryGroupMessagesV1( ctx context.Context, req *mlsv1.QueryGroupMessagesRequest, ) (*mlsv1.QueryGroupMessagesResponse, error)
func (*Store) QueryWelcomeMessagesV1 ¶
func (s *Store) QueryWelcomeMessagesV1( ctx context.Context, req *mlsv1.QueryWelcomeMessagesRequest, ) (*mlsv1.QueryWelcomeMessagesResponse, error)
func (*Store) RunInRepeatableReadTx ¶
type StoreOptions ¶
type StoreOptions struct {
DbConnectionString string `long:"db-connection-string" description:"Connection string for MLS DB"`
ReadTimeout time.Duration `long:"read-timeout" description:"Timeout for reading from the database" default:"10s"`
WriteTimeout time.Duration `long:"write-timeout" description:"Timeout for writing to the database" default:"10s"`
MaxOpenConns int `long:"max-open-conns" description:"Maximum number of open connections" default:"80"`
}
Click to show internal directories.
Click to hide internal directories.