Documentation ¶
Overview ¶
Package bertyprotocol is a reverse proxy.
It translates gRPC into RESTful JSON APIs.
Package bertyprotocol contains code for integrating the Berty protocol in your project.
See https://berty.tech/protocol for more information.
Index ¶
- Constants
- Variables
- func ActivateGroupContext(ctx context.Context, gc *GroupContext, contact crypto.PubKey) error
- func ConnectAll(t *testing.T, m libp2p_mocknet.Mocknet)
- func ConnectInLine(t *testing.T, m libp2p_mocknet.Mocknet)
- func CreatePeersWithGroupTest(ctx context.Context, t testing.TB, pathBase string, memberCount int, ...) ([]*mockedPeer, crypto.PrivKey, func())
- func DefaultOrbitDBOptions(g *protocoltypes.Group, options *orbitdb.CreateDBOptions, ...) (*orbitdb.CreateDBOptions, error)
- func FillMessageKeysHolderUsingNewData(ctx context.Context, gc *GroupContext) <-chan crypto.PubKey
- func FillMessageKeysHolderUsingPreviousData(ctx context.Context, gc *GroupContext) <-chan crypto.PubKey
- func InternalDecodeOpaqueReceiver(publicKey *[cryptoutil.KeySize]byte, privateKey *[cryptoutil.KeySize]byte, ...) (*protocoltypes.PushServiceReceiver, error)
- func InternalEncryptPushPayloadForReceiver(privateKey *[cryptoutil.KeySize]byte, rawPayload, recipientPublicKey []byte) ([]byte, error)
- func IssueRandomToken(issuer *AuthTokenIssuer, services map[string]string) (string, error)
- func MetadataStoreAddDeviceToGroup(ctx context.Context, m *MetadataStore, g *protocoltypes.Group, ...) (operation.Operation, error)
- func MetadataStoreSendSecret(ctx context.Context, m *MetadataStore, g *protocoltypes.Group, ...) (operation.Operation, error)
- func NewDeviceSecret() (*protocoltypes.DeviceSecret, error)
- func NewGroupMultiMember() (*protocoltypes.Group, crypto.PrivKey, error)
- func NewOrbitDatastoreCache(ds datastore.Batching) cache.Interface
- func NewSimpleAccessController(_ context.Context, _ iface.BaseOrbitDB, params accesscontroller.ManifestParams, ...) (accesscontroller.Interface, error)
- func PushDispatcherKey(tokenType pushtypes.PushServiceTokenType, bundleID string) string
- func PushSealTokenForServer(receiver *protocoltypes.PushServiceReceiver, server *protocoltypes.PushServer) (*protocoltypes.PushMemberTokenUpdate, error)
- func PushServiceGenerateDispatchers(dispatchers []PushDispatcher) (map[string]PushDispatcher, []*pushtypes.PushServiceSupportedTokenType, error)
- func RegisterReplicationServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error
- func RegisterReplicationServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ReplicationServiceClient) error
- func RegisterReplicationServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, ...) (err error)
- func RegisterReplicationServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ReplicationServiceServer) error
- func RegisterReplicationServiceServer(s *grpc.Server, srv ReplicationServiceServer)
- func RestoreAccountExport(ctx context.Context, reader io.Reader, coreAPI ipfs_interface.CoreAPI, ...) error
- func SendSecretsToExistingMembers(ctx context.Context, gctx *GroupContext, contact crypto.PubKey) <-chan crypto.PubKey
- func TagGroupContextPeers(ctx context.Context, gc *GroupContext, ipfsCoreAPI ipfsutil.ExtendedCoreAPI, ...)
- func WatchNewMembersAndSendSecrets(ctx context.Context, logger *zap.Logger, gctx *GroupContext) <-chan crypto.PubKey
- type AccountContact
- type AccountKeys
- type AuthTokenIssuer
- type AuthTokenOptions
- type AuthTokenServer
- type AuthTokenVerifier
- func (r *AuthTokenVerifier) GRPCAuthInterceptor(serviceID string) func(ctx context.Context) (context.Context, error)
- func (r *AuthTokenVerifier) VerifyCode(code, codeVerifier string) (*protocoltypes.ServicesTokenCode, error)
- func (r *AuthTokenVerifier) VerifyToken(token, serviceID string) (*protocoltypes.ServicesTokenCode, error)
- type BertyOrbitDB
- type BertySignedKeyStore
- func (s *BertySignedKeyStore) CreateKey(id string) (crypto.PrivKey, error)
- func (s *BertySignedKeyStore) GetKey(id string) (crypto.PrivKey, error)
- func (s *BertySignedKeyStore) HasKey(id string) (bool, error)
- func (s *BertySignedKeyStore) SetKey(pk crypto.PrivKey) error
- func (s *BertySignedKeyStore) Sign(privKey crypto.PrivKey, bytes []byte) ([]byte, error)
- func (s *BertySignedKeyStore) Verify(signature []byte, publicKey crypto.PubKey, data []byte) error
- type Client
- func NewClient(ctx context.Context, svc Service, clientOpts []grpc.DialOption, ...) (Client, error)
- func NewClientFromServer(ctx context.Context, s *grpc.Server, svc Service, opts ...grpc.DialOption) (Client, error)
- func TestingClient(ctx context.Context, t *testing.T, svc Service, clientOpts []grpc.DialOption, ...) (client Client, cleanup func())
- func TestingClientFromServer(ctx context.Context, t *testing.T, s *grpc.Server, svc Service, ...) (client Client, cleanup func())
- type ConnectTestingProtocolFunc
- type ContextAuthValue
- type EventMetadataReceived
- type GroupContext
- func (gc *GroupContext) Close() error
- func (gc *GroupContext) DevicePubKey() crypto.PubKey
- func (gc *GroupContext) Group() *protocoltypes.Group
- func (gc *GroupContext) MemberPubKey() crypto.PubKey
- func (gc *GroupContext) MessageKeystore() *cryptoutil.MessageKeystore
- func (gc *GroupContext) MessageStore() *MessageStore
- func (gc *GroupContext) MetadataStore() *MetadataStore
- type GroupOpenMode
- type MemberDevice
- type MessageStore
- func (m *MessageStore) AddMessage(ctx context.Context, payload []byte, attachmentsCIDs [][]byte) (operation.Operation, error)
- func (m *MessageStore) GetMessageByCID(c cid.Cid) (*protocoltypes.MessageEnvelope, *protocoltypes.MessageHeaders, error)
- func (m *MessageStore) GetOutOfStoreMessageEnvelope(ctx context.Context, c cid.Cid) (*pushtypes.OutOfStoreMessageEnvelope, error)
- func (m *MessageStore) ListEvents(ctx context.Context, since, until []byte, reverse bool) (<-chan *protocoltypes.GroupMessageEvent, error)
- type MetadataStore
- func (m *MetadataStore) AddDeviceToGroup(ctx context.Context) (operation.Operation, error)
- func (m *MetadataStore) ClaimGroupOwnership(ctx context.Context, groupSK crypto.PrivKey) (operation.Operation, error)
- func (m *MetadataStore) ContactBlock(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
- func (m *MetadataStore) ContactRequestDisable(ctx context.Context) (operation.Operation, error)
- func (m *MetadataStore) ContactRequestEnable(ctx context.Context) (operation.Operation, error)
- func (m *MetadataStore) ContactRequestIncomingAccept(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
- func (m *MetadataStore) ContactRequestIncomingDiscard(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
- func (m *MetadataStore) ContactRequestIncomingReceived(ctx context.Context, contact *protocoltypes.ShareableContact) (operation.Operation, error)
- func (m *MetadataStore) ContactRequestOutgoingEnqueue(ctx context.Context, contact *protocoltypes.ShareableContact, ...) (operation.Operation, error)
- func (m *MetadataStore) ContactRequestOutgoingSent(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
- func (m *MetadataStore) ContactRequestReferenceReset(ctx context.Context) (operation.Operation, error)
- func (m *MetadataStore) ContactSendAliasKey(ctx context.Context) (operation.Operation, error)
- func (m *MetadataStore) ContactUnblock(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
- func (m *MetadataStore) GetContactFromGroupPK(groupPK []byte) *protocoltypes.ShareableContact
- func (m *MetadataStore) GetDevicesForMember(pk crypto.PubKey) ([]crypto.PubKey, error)
- func (m *MetadataStore) GetIncomingContactRequestsStatus() (bool, *protocoltypes.ShareableContact)
- func (m *MetadataStore) GetMemberByDevice(pk crypto.PubKey) (crypto.PubKey, error)
- func (m *MetadataStore) GetRequestOwnMetadataForContact(pk []byte) ([]byte, error)
- func (m *MetadataStore) GroupJoin(ctx context.Context, g *protocoltypes.Group) (operation.Operation, error)
- func (m *MetadataStore) GroupLeave(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
- func (m *MetadataStore) ListAdmins() []crypto.PubKey
- func (m *MetadataStore) ListContacts() map[string]*AccountContact
- func (m *MetadataStore) ListContactsByStatus(states ...protocoltypes.ContactState) []*protocoltypes.ShareableContact
- func (m *MetadataStore) ListDevices() []crypto.PubKey
- func (m *MetadataStore) ListEvents(ctx context.Context, since, until []byte, reverse bool) (<-chan *protocoltypes.GroupMetadataEvent, error)
- func (m *MetadataStore) ListMembers() []crypto.PubKey
- func (m *MetadataStore) ListMultiMemberGroups() []*protocoltypes.Group
- func (m *MetadataStore) ListOtherMembersDevices() []crypto.PubKey
- func (m *MetadataStore) RegisterDevicePushServer(ctx context.Context, server *protocoltypes.PushServer) (operation.Operation, error)
- func (m *MetadataStore) RegisterDevicePushToken(ctx context.Context, token *protocoltypes.PushServiceReceiver) (operation.Operation, error)
- func (m *MetadataStore) SendAccountServiceTokenAdded(ctx context.Context, token *protocoltypes.ServiceToken) (operation.Operation, error)
- func (m *MetadataStore) SendAccountServiceTokenRemoved(ctx context.Context, tokenID string) (operation.Operation, error)
- func (m *MetadataStore) SendAliasProof(ctx context.Context) (operation.Operation, error)
- func (m *MetadataStore) SendAppMetadata(ctx context.Context, message []byte, attachmentsCIDs [][]byte) (operation.Operation, error)
- func (m *MetadataStore) SendGroupReplicating(ctx context.Context, t *protocoltypes.ServiceToken, endpoint string) (operation.Operation, error)
- func (m *MetadataStore) SendPushToken(ctx context.Context, t *protocoltypes.PushMemberTokenUpdate) (operation.Operation, error)
- func (m *MetadataStore) SendSecret(ctx context.Context, memberPK crypto.PubKey) (operation.Operation, error)
- type NewOrbitDBOptions
- type Opts
- type PushDispatcher
- type PushService
- type ReplicationClient
- type ReplicationService
- type ReplicationServiceClient
- type ReplicationServiceServer
- type RestoreAccountHandler
- type Service
- type Status
- type Swiper
- type TestingOpts
- type TestingProtocol
- type TestingReplicationPeer
- type UnimplementedReplicationServiceServer
Examples ¶
Constants ¶
const ( AuthResponseType = "code" AuthGrantType = "authorization_code" AuthRedirect = "berty://services-auth/" AuthClientID = "berty" AuthCodeChallengeMethod = "S256" )
const ( NamespaceDeviceKeystore = "device_keystore" NamespaceOrbitDBDatastore = "orbitdb_datastore" NamespaceOrbitDBDirectory = "orbitdb" NamespaceIPFSDatastore = "ipfs_datastore" )
const ( ContextTokenHashField ContextAuthValue = iota AuthHTTPPathTokenExchange = "/oauth/token" // nolint:gosec AuthHTTPPathAuthorize = "/authorize" )
const ( ServicePushID = "psh" ServicePushPayloadKey = "p" ServicePushPayloadMax = 4096 // FIXME: find an appropriate value )
const ( TyberEventTinderPeerFound = "Tinder peer found" TyberEventTinderPeerJoined = "Tinder peer joined" TyberEventTinderPeerLeft = "Tinder peer left" )
const ClientBufferSize = 4 * 1024 * 1024
const CurrentGroupVersion = 1
const (
ServiceReplicationID = "rpl"
)
Variables ¶
var InMemoryDirectory = cacheleveldown.InMemoryDirectory
Functions ¶
func ActivateGroupContext ¶
func ConnectAll ¶ added in v2.39.0
func ConnectAll(t *testing.T, m libp2p_mocknet.Mocknet)
ConnectAll peers between themselves
func ConnectInLine ¶ added in v2.39.0
func ConnectInLine(t *testing.T, m libp2p_mocknet.Mocknet)
func CreatePeersWithGroupTest ¶ added in v2.308.0
func DefaultOrbitDBOptions ¶ added in v2.32.1
func DefaultOrbitDBOptions(g *protocoltypes.Group, options *orbitdb.CreateDBOptions, keystore *BertySignedKeyStore, storeType string, groupOpenMode GroupOpenMode) (*orbitdb.CreateDBOptions, error)
func FillMessageKeysHolderUsingNewData ¶
func FillMessageKeysHolderUsingNewData(ctx context.Context, gc *GroupContext) <-chan crypto.PubKey
func FillMessageKeysHolderUsingPreviousData ¶
func FillMessageKeysHolderUsingPreviousData(ctx context.Context, gc *GroupContext) <-chan crypto.PubKey
func InternalDecodeOpaqueReceiver ¶ added in v2.308.0
func InternalDecodeOpaqueReceiver(publicKey *[cryptoutil.KeySize]byte, privateKey *[cryptoutil.KeySize]byte, dispatchers map[string]PushDispatcher, receiver *pushtypes.PushServiceOpaqueReceiver) (*protocoltypes.PushServiceReceiver, error)
func InternalEncryptPushPayloadForReceiver ¶ added in v2.308.0
func IssueRandomToken ¶ added in v2.305.0
func IssueRandomToken(issuer *AuthTokenIssuer, services map[string]string) (string, error)
func MetadataStoreAddDeviceToGroup ¶ added in v2.308.0
func MetadataStoreAddDeviceToGroup(ctx context.Context, m *MetadataStore, g *protocoltypes.Group, md *cryptoutil.OwnMemberDevice) (operation.Operation, error)
func MetadataStoreSendSecret ¶ added in v2.308.0
func MetadataStoreSendSecret(ctx context.Context, m *MetadataStore, g *protocoltypes.Group, md *cryptoutil.OwnMemberDevice, memberPK crypto.PubKey, ds *protocoltypes.DeviceSecret) (operation.Operation, error)
func NewDeviceSecret ¶
func NewDeviceSecret() (*protocoltypes.DeviceSecret, error)
func NewGroupMultiMember ¶
func NewGroupMultiMember() (*protocoltypes.Group, crypto.PrivKey, error)
NewGroupMultiMember creates a new Group object and an invitation to be used by the first member of the group
func NewOrbitDatastoreCache ¶ added in v2.32.1
func NewSimpleAccessController ¶ added in v2.32.1
func NewSimpleAccessController(_ context.Context, _ iface.BaseOrbitDB, params accesscontroller.ManifestParams, options ...accesscontroller.Option) (accesscontroller.Interface, error)
NewSimpleAccessController Returns a non configurable access controller
func PushDispatcherKey ¶ added in v2.308.0
func PushDispatcherKey(tokenType pushtypes.PushServiceTokenType, bundleID string) string
func PushSealTokenForServer ¶ added in v2.308.0
func PushSealTokenForServer(receiver *protocoltypes.PushServiceReceiver, server *protocoltypes.PushServer) (*protocoltypes.PushMemberTokenUpdate, error)
func PushServiceGenerateDispatchers ¶ added in v2.308.0
func PushServiceGenerateDispatchers(dispatchers []PushDispatcher) (map[string]PushDispatcher, []*pushtypes.PushServiceSupportedTokenType, error)
func RegisterReplicationServiceHandler ¶ added in v2.146.0
func RegisterReplicationServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error
RegisterReplicationServiceHandler registers the http handlers for service ReplicationService to "mux". The handlers forward requests to the grpc endpoint over "conn".
func RegisterReplicationServiceHandlerClient ¶ added in v2.146.0
func RegisterReplicationServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ReplicationServiceClient) error
RegisterReplicationServiceHandlerClient registers the http handlers for service ReplicationService to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "ReplicationServiceClient". Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "ReplicationServiceClient" doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in "ReplicationServiceClient" to call the correct interceptors.
func RegisterReplicationServiceHandlerFromEndpoint ¶ added in v2.146.0
func RegisterReplicationServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)
RegisterReplicationServiceHandlerFromEndpoint is same as RegisterReplicationServiceHandler but automatically dials to "endpoint" and closes the connection when "ctx" gets done.
func RegisterReplicationServiceHandlerServer ¶ added in v2.146.0
func RegisterReplicationServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ReplicationServiceServer) error
RegisterReplicationServiceHandlerServer registers the http handlers for service ReplicationService to "mux". UnaryRPC :call ReplicationServiceServer directly. StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterReplicationServiceHandlerFromEndpoint instead.
func RegisterReplicationServiceServer ¶ added in v2.146.0
func RegisterReplicationServiceServer(s *grpc.Server, srv ReplicationServiceServer)
func RestoreAccountExport ¶ added in v2.189.0
func RestoreAccountExport(ctx context.Context, reader io.Reader, coreAPI ipfs_interface.CoreAPI, odb *BertyOrbitDB, logger *zap.Logger, handlers ...RestoreAccountHandler) error
func TagGroupContextPeers ¶ added in v2.184.0
func TagGroupContextPeers(ctx context.Context, gc *GroupContext, ipfsCoreAPI ipfsutil.ExtendedCoreAPI, weight int)
Types ¶
type AccountContact ¶ added in v2.308.0
type AccountContact struct {
// contains filtered or unexported fields
}
type AccountKeys ¶
type AccountKeys interface { AccountPrivKey() (crypto.PrivKey, error) AccountProofPrivKey() (crypto.PrivKey, error) DevicePrivKey() (crypto.PrivKey, error) ContactGroupPrivKey(pk crypto.PubKey) (crypto.PrivKey, error) MemberDeviceForGroup(g *protocoltypes.Group) (*cryptoutil.OwnMemberDevice, error) }
type AuthTokenIssuer ¶ added in v2.136.0
type AuthTokenIssuer struct { *AuthTokenVerifier // contains filtered or unexported fields }
func NewAuthTokenIssuer ¶ added in v2.136.0
func NewAuthTokenIssuer(secret []byte, sk ed25519.PrivateKey) (*AuthTokenIssuer, error)
func (*AuthTokenIssuer) IssueCode ¶ added in v2.136.0
func (r *AuthTokenIssuer) IssueCode(codeChallenge string, services []string) (string, error)
func (*AuthTokenIssuer) IssueToken ¶ added in v2.136.0
func (r *AuthTokenIssuer) IssueToken(services []string) (string, error)
type AuthTokenOptions ¶ added in v2.274.0
type AuthTokenServer ¶ added in v2.136.0
type AuthTokenServer struct {
// contains filtered or unexported fields
}
func NewAuthTokenServer ¶ added in v2.136.0
func NewAuthTokenServer(secret []byte, sk ed25519.PrivateKey, services map[string]string, opts *AuthTokenOptions) (*AuthTokenServer, error)
func (*AuthTokenServer) IssueRandomTokenForServices ¶ added in v2.274.0
func (a *AuthTokenServer) IssueRandomTokenForServices() (string, error)
func (*AuthTokenServer) ServeHTTP ¶ added in v2.136.0
func (a *AuthTokenServer) ServeHTTP(w http.ResponseWriter, r *http.Request)
type AuthTokenVerifier ¶ added in v2.136.0
type AuthTokenVerifier struct {
// contains filtered or unexported fields
}
func NewAuthTokenVerifier ¶ added in v2.136.0
func NewAuthTokenVerifier(secret []byte, pk ed25519.PublicKey) (*AuthTokenVerifier, error)
func (*AuthTokenVerifier) GRPCAuthInterceptor ¶ added in v2.136.0
func (*AuthTokenVerifier) VerifyCode ¶ added in v2.136.0
func (r *AuthTokenVerifier) VerifyCode(code, codeVerifier string) (*protocoltypes.ServicesTokenCode, error)
func (*AuthTokenVerifier) VerifyToken ¶ added in v2.136.0
func (r *AuthTokenVerifier) VerifyToken(token, serviceID string) (*protocoltypes.ServicesTokenCode, error)
type BertyOrbitDB ¶
type BertyOrbitDB struct { baseorbitdb.BaseOrbitDB // contains filtered or unexported fields }
func NewBertyOrbitDB ¶ added in v2.141.0
func NewBertyOrbitDB(ctx context.Context, ipfs coreapi.CoreAPI, options *NewOrbitDBOptions) (*BertyOrbitDB, error)
func (*BertyOrbitDB) SetGroupSigPubKey ¶ added in v2.141.0
func (s *BertyOrbitDB) SetGroupSigPubKey(groupID string, pubKey crypto.PubKey) error
SetGroupSigPubKey registers a new group signature pubkey, mainly used to replicate a store data without needing to access to its content
type BertySignedKeyStore ¶ added in v2.32.1
func (*BertySignedKeyStore) CreateKey ¶ added in v2.32.1
func (s *BertySignedKeyStore) CreateKey(id string) (crypto.PrivKey, error)
func (*BertySignedKeyStore) GetKey ¶ added in v2.32.1
func (s *BertySignedKeyStore) GetKey(id string) (crypto.PrivKey, error)
func (*BertySignedKeyStore) HasKey ¶ added in v2.32.1
func (s *BertySignedKeyStore) HasKey(id string) (bool, error)
func (*BertySignedKeyStore) SetKey ¶ added in v2.32.1
func (s *BertySignedKeyStore) SetKey(pk crypto.PrivKey) error
type Client ¶
type Client interface { protocoltypes.ProtocolServiceClient Close() error }
func NewClient ¶ added in v2.39.0
func NewClient(ctx context.Context, svc Service, clientOpts []grpc.DialOption, serverOpts []grpc.ServerOption) (Client, error)
func NewClientFromServer ¶ added in v2.39.0
func TestingClient ¶
func TestingClient(ctx context.Context, t *testing.T, svc Service, clientOpts []grpc.DialOption, serverOpts []grpc.ServerOption) (client Client, cleanup func())
type ConnectTestingProtocolFunc ¶ added in v2.266.2
type ConnectTestingProtocolFunc func(*testing.T, libp2p_mocknet.Mocknet)
Connect Peers Helper
type ContextAuthValue ¶ added in v2.136.0
type ContextAuthValue uint32
type EventMetadataReceived ¶ added in v2.66.1
type EventMetadataReceived struct { MetaEvent *protocoltypes.GroupMetadataEvent Event proto.Message }
type GroupContext ¶ added in v2.308.0
type GroupContext struct {
// contains filtered or unexported fields
}
func NewContextGroup ¶ added in v2.308.0
func NewContextGroup(group *protocoltypes.Group, metadataStore *MetadataStore, messageStore *MessageStore, messageKeystore *cryptoutil.MessageKeystore, memberDevice *cryptoutil.OwnMemberDevice, logger *zap.Logger) *GroupContext
func (*GroupContext) Close ¶ added in v2.308.0
func (gc *GroupContext) Close() error
func (*GroupContext) DevicePubKey ¶ added in v2.308.0
func (gc *GroupContext) DevicePubKey() crypto.PubKey
func (*GroupContext) Group ¶ added in v2.308.0
func (gc *GroupContext) Group() *protocoltypes.Group
func (*GroupContext) MemberPubKey ¶ added in v2.308.0
func (gc *GroupContext) MemberPubKey() crypto.PubKey
func (*GroupContext) MessageKeystore ¶ added in v2.308.0
func (gc *GroupContext) MessageKeystore() *cryptoutil.MessageKeystore
func (*GroupContext) MessageStore ¶ added in v2.308.0
func (gc *GroupContext) MessageStore() *MessageStore
func (*GroupContext) MetadataStore ¶ added in v2.308.0
func (gc *GroupContext) MetadataStore() *MetadataStore
type GroupOpenMode ¶ added in v2.146.0
type GroupOpenMode uint64
const ( GroupOpenModeUndefined GroupOpenMode = iota GroupOpenModeReplicate GroupOpenModeWrite )
type MemberDevice ¶
type MemberDevice struct { Member crypto.PubKey Device crypto.PubKey Secret *protocoltypes.DeviceSecret }
MemberDevice is a remote device part of a group
type MessageStore ¶
FIXME: replace cache by a circular buffer to avoid an attack by RAM saturation
func (*MessageStore) AddMessage ¶
func (*MessageStore) GetMessageByCID ¶ added in v2.308.0
func (m *MessageStore) GetMessageByCID(c cid.Cid) (*protocoltypes.MessageEnvelope, *protocoltypes.MessageHeaders, error)
func (*MessageStore) GetOutOfStoreMessageEnvelope ¶ added in v2.308.0
func (m *MessageStore) GetOutOfStoreMessageEnvelope(ctx context.Context, c cid.Cid) (*pushtypes.OutOfStoreMessageEnvelope, error)
func (*MessageStore) ListEvents ¶ added in v2.308.0
func (m *MessageStore) ListEvents(ctx context.Context, since, until []byte, reverse bool) (<-chan *protocoltypes.GroupMessageEvent, error)
FIXME: use iterator instead to reduce resource usage (require go-ipfs-log improvements)
type MetadataStore ¶
func (*MetadataStore) AddDeviceToGroup ¶
func (*MetadataStore) ClaimGroupOwnership ¶
func (*MetadataStore) ContactBlock ¶
func (m *MetadataStore) ContactBlock(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
ContactBlock indicates the payload includes that the deviceKeystore has blocked a contact
func (*MetadataStore) ContactRequestDisable ¶
ContactRequestDisable indicates the payload includes that the deviceKeystore has disabled incoming contact requests
func (*MetadataStore) ContactRequestEnable ¶
ContactRequestEnable indicates the payload includes that the deviceKeystore has enabled incoming contact requests
func (*MetadataStore) ContactRequestIncomingAccept ¶
func (m *MetadataStore) ContactRequestIncomingAccept(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
ContactRequestIncomingAccept indicates the payload includes that the deviceKeystore has accepted a contact request
func (*MetadataStore) ContactRequestIncomingDiscard ¶
func (m *MetadataStore) ContactRequestIncomingDiscard(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
ContactRequestIncomingDiscard indicates the payload includes that the deviceKeystore has ignored a contact request
func (*MetadataStore) ContactRequestIncomingReceived ¶
func (m *MetadataStore) ContactRequestIncomingReceived(ctx context.Context, contact *protocoltypes.ShareableContact) (operation.Operation, error)
ContactRequestIncomingReceived indicates the payload includes that the deviceKeystore has received a contact request
func (*MetadataStore) ContactRequestOutgoingEnqueue ¶
func (m *MetadataStore) ContactRequestOutgoingEnqueue(ctx context.Context, contact *protocoltypes.ShareableContact, ownMetadata []byte) (operation.Operation, error)
ContactRequestOutgoingEnqueue indicates the payload includes that the deviceKeystore will attempt to send a new contact request
func (*MetadataStore) ContactRequestOutgoingSent ¶
func (m *MetadataStore) ContactRequestOutgoingSent(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
ContactRequestOutgoingSent indicates the payload includes that the deviceKeystore has sent a contact request
func (*MetadataStore) ContactRequestReferenceReset ¶
func (m *MetadataStore) ContactRequestReferenceReset(ctx context.Context) (operation.Operation, error)
ContactRequestReferenceReset indicates the payload includes that the deviceKeystore has a new contact request reference
func (*MetadataStore) ContactSendAliasKey ¶
func (*MetadataStore) ContactUnblock ¶
func (m *MetadataStore) ContactUnblock(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
ContactUnblock indicates the payload includes that the deviceKeystore has unblocked a contact
func (*MetadataStore) GetContactFromGroupPK ¶ added in v2.308.0
func (m *MetadataStore) GetContactFromGroupPK(groupPK []byte) *protocoltypes.ShareableContact
func (*MetadataStore) GetDevicesForMember ¶
func (*MetadataStore) GetIncomingContactRequestsStatus ¶
func (m *MetadataStore) GetIncomingContactRequestsStatus() (bool, *protocoltypes.ShareableContact)
func (*MetadataStore) GetMemberByDevice ¶
func (*MetadataStore) GetRequestOwnMetadataForContact ¶ added in v2.308.0
func (m *MetadataStore) GetRequestOwnMetadataForContact(pk []byte) ([]byte, error)
func (*MetadataStore) GroupJoin ¶
func (m *MetadataStore) GroupJoin(ctx context.Context, g *protocoltypes.Group) (operation.Operation, error)
GroupJoin indicates the payload includes that the deviceKeystore has joined a group
func (*MetadataStore) GroupLeave ¶
func (m *MetadataStore) GroupLeave(ctx context.Context, pk crypto.PubKey) (operation.Operation, error)
GroupLeave indicates the payload includes that the deviceKeystore has left a group
func (*MetadataStore) ListAdmins ¶
func (m *MetadataStore) ListAdmins() []crypto.PubKey
func (*MetadataStore) ListContacts ¶ added in v2.308.0
func (m *MetadataStore) ListContacts() map[string]*AccountContact
func (*MetadataStore) ListContactsByStatus ¶
func (m *MetadataStore) ListContactsByStatus(states ...protocoltypes.ContactState) []*protocoltypes.ShareableContact
func (*MetadataStore) ListDevices ¶
func (m *MetadataStore) ListDevices() []crypto.PubKey
func (*MetadataStore) ListEvents ¶
func (m *MetadataStore) ListEvents(ctx context.Context, since, until []byte, reverse bool) (<-chan *protocoltypes.GroupMetadataEvent, error)
FIXME: use iterator instead to reduce resource usage (require go-ipfs-log improvements)
func (*MetadataStore) ListMembers ¶
func (m *MetadataStore) ListMembers() []crypto.PubKey
func (*MetadataStore) ListMultiMemberGroups ¶
func (m *MetadataStore) ListMultiMemberGroups() []*protocoltypes.Group
func (*MetadataStore) ListOtherMembersDevices ¶ added in v2.308.0
func (m *MetadataStore) ListOtherMembersDevices() []crypto.PubKey
func (*MetadataStore) RegisterDevicePushServer ¶ added in v2.308.0
func (m *MetadataStore) RegisterDevicePushServer(ctx context.Context, server *protocoltypes.PushServer) (operation.Operation, error)
func (*MetadataStore) RegisterDevicePushToken ¶ added in v2.308.0
func (m *MetadataStore) RegisterDevicePushToken(ctx context.Context, token *protocoltypes.PushServiceReceiver) (operation.Operation, error)
func (*MetadataStore) SendAccountServiceTokenAdded ¶ added in v2.308.0
func (m *MetadataStore) SendAccountServiceTokenAdded(ctx context.Context, token *protocoltypes.ServiceToken) (operation.Operation, error)
func (*MetadataStore) SendAccountServiceTokenRemoved ¶ added in v2.308.0
func (*MetadataStore) SendAliasProof ¶
func (*MetadataStore) SendAppMetadata ¶
func (*MetadataStore) SendGroupReplicating ¶ added in v2.308.0
func (m *MetadataStore) SendGroupReplicating(ctx context.Context, t *protocoltypes.ServiceToken, endpoint string) (operation.Operation, error)
func (*MetadataStore) SendPushToken ¶ added in v2.308.0
func (m *MetadataStore) SendPushToken(ctx context.Context, t *protocoltypes.PushMemberTokenUpdate) (operation.Operation, error)
func (*MetadataStore) SendSecret ¶
type NewOrbitDBOptions ¶ added in v2.141.0
type NewOrbitDBOptions struct { baseorbitdb.NewOrbitDBOptions Datastore datastore.Batching MessageKeystore *cryptoutil.MessageKeystore DeviceKeystore cryptoutil.DeviceKeystore }
type Opts ¶
type Opts struct { Logger *zap.Logger IpfsCoreAPI ipfsutil.ExtendedCoreAPI DeviceKeystore cryptoutil.DeviceKeystore DatastoreDir string RootDatastore ds.Batching GroupDatastore *cryptoutil.GroupDatastore AccountCache ds.Batching MessageKeystore *cryptoutil.MessageKeystore OrbitDB *BertyOrbitDB TinderDriver tinder.UnregisterDiscovery RendezvousRotationBase time.Duration Host host.Host PubSub *pubsub.PubSub LocalOnly bool PushKey *[cryptoutil.KeySize]byte // contains filtered or unexported fields }
Opts contains optional configuration flags for building a new Client
type PushDispatcher ¶ added in v2.305.0
type PushDispatcher interface { Dispatch(payload []byte, receiver *protocoltypes.PushServiceReceiver) error BundleID() string TokenType() pushtypes.PushServiceTokenType }
func PushDispatcherLoadAPNSCertificates ¶ added in v2.305.0
func PushDispatcherLoadAPNSCertificates(input *string) ([]PushDispatcher, error)
func PushDispatcherLoadFirebaseAPIKey ¶ added in v2.305.0
func PushDispatcherLoadFirebaseAPIKey(input *string) ([]PushDispatcher, error)
type PushService ¶ added in v2.305.0
type PushService interface { pushtypes.PushServiceServer Close() error }
func NewPushService ¶ added in v2.305.0
func NewPushService(privateKey *[cryptoutil.KeySize]byte, dispatchers []PushDispatcher, logger *zap.Logger) (PushService, error)
func PushServerForTests ¶ added in v2.305.0
func PushServerForTests(ctx context.Context, t testing.TB, dispatchers []PushDispatcher, logger *zap.Logger) (PushService, *[32]byte, string, context.CancelFunc)
type ReplicationClient ¶ added in v2.146.0
type ReplicationClient interface { ReplicationServiceClient Close() error }
type ReplicationService ¶ added in v2.146.0
type ReplicationService interface { ReplicationServiceServer Close() error }
Service is the main Berty Protocol interface
func NewReplicationService ¶ added in v2.146.0
func NewReplicationService(ctx context.Context, store ds.Datastore, odb *BertyOrbitDB, logger *zap.Logger) (ReplicationService, error)
type ReplicationServiceClient ¶ added in v2.146.0
type ReplicationServiceClient interface { // ReplicateGroup ReplicateGroup(ctx context.Context, in *protocoltypes.ReplicationServiceReplicateGroup_Request, opts ...grpc.CallOption) (*protocoltypes.ReplicationServiceReplicateGroup_Reply, error) }
ReplicationServiceClient is the client API for ReplicationService service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
func NewReplicationServiceClient ¶ added in v2.146.0
func NewReplicationServiceClient(cc *grpc.ClientConn) ReplicationServiceClient
type ReplicationServiceServer ¶ added in v2.146.0
type ReplicationServiceServer interface { // ReplicateGroup ReplicateGroup(context.Context, *protocoltypes.ReplicationServiceReplicateGroup_Request) (*protocoltypes.ReplicationServiceReplicateGroup_Reply, error) }
ReplicationServiceServer is the server API for ReplicationService service.
type RestoreAccountHandler ¶ added in v2.200.0
type Service ¶ added in v2.35.0
type Service interface { protocoltypes.ProtocolServiceServer Close() error Status() Status IpfsCoreAPI() ipfs_interface.CoreAPI }
Service is the main Berty Protocol interface
func New ¶
New initializes a new Service
Example (Basic) ¶
package main import ( "context" "fmt" "berty.tech/berty/v2/go/pkg/bertyprotocol" "berty.tech/berty/v2/go/pkg/protocoltypes" ) func main() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() client, err := bertyprotocol.New(ctx, bertyprotocol.Opts{}) if err != nil { panic(err) } ret, err := client.InstanceGetConfiguration(ctx, &protocoltypes.InstanceGetConfiguration_Request{}) if err != nil { panic(err) } for _, listener := range ret.Listeners { if listener == "/p2p-circuit" { fmt.Println(listener) } } }
Output: /p2p-circuit
type Swiper ¶ added in v2.109.0
type Swiper struct {
// contains filtered or unexported fields
}
type TestingOpts ¶ added in v2.39.0
type TestingOpts struct { Logger *zap.Logger Mocknet libp2p_mocknet.Mocknet RDVPeer peer.AddrInfo DeviceKeystore cryptoutil.DeviceKeystore CoreAPIMock ipfsutil.CoreAPIMock OrbitDB *BertyOrbitDB ConnectFunc ConnectTestingProtocolFunc PushSK *[32]byte }
type TestingProtocol ¶ added in v2.39.0
func NewTestingProtocol ¶ added in v2.39.0
func NewTestingProtocol(ctx context.Context, t *testing.T, opts *TestingOpts, ds datastore.Batching) (*TestingProtocol, func())
func NewTestingProtocolWithMockedPeers ¶ added in v2.122.0
func NewTestingProtocolWithMockedPeers(ctx context.Context, t *testing.T, opts *TestingOpts, ds datastore.Batching, amount int) ([]*TestingProtocol, func())
type TestingReplicationPeer ¶ added in v2.146.0
type TestingReplicationPeer struct {
Service ReplicationService
}
func NewReplicationMockedPeer ¶ added in v2.146.0
func NewReplicationMockedPeer(ctx context.Context, t *testing.T, secret []byte, sk ed25519.PublicKey, opts *TestingOpts) (*TestingReplicationPeer, func())
type UnimplementedReplicationServiceServer ¶ added in v2.146.0
type UnimplementedReplicationServiceServer struct{}
UnimplementedReplicationServiceServer can be embedded to have forward compatible implementations.
func (*UnimplementedReplicationServiceServer) ReplicateGroup ¶ added in v2.146.0
func (*UnimplementedReplicationServiceServer) ReplicateGroup(ctx context.Context, req *protocoltypes.ReplicationServiceReplicateGroup_Request) (*protocoltypes.ReplicationServiceReplicateGroup_Reply, error)
Source Files ¶
- account_export.go
- api_app.go
- api_attachment.go
- api_client.go
- api_contact.go
- api_contactrequest.go
- api_debug.go
- api_event.go
- api_group.go
- api_multimember.go
- api_push.go
- api_replication.go
- api_services_auth.go
- bertyreplication.pb.go
- bertyreplication.pb.gw.go
- client.go
- consts.go
- contact_request_manager.go
- doc.go
- events.go
- events_sig_checkers.go
- group.go
- group_context.go
- iface_account.go
- orbitdb.go
- orbitdb_datastore_cache.go
- orbitdb_signed_entry_accesscontroller.go
- orbitdb_signed_entry_identity_provider.go
- orbitdb_signed_entry_keystore.go
- service.go
- service_group.go
- services_auth.go
- services_auth_server.go
- services_auth_templates.go
- services_push.go
- services_push_apns.go
- services_push_fcm.go
- services_replication.go
- store_message.go
- store_metadata.go
- store_metadata_index.go
- store_options.go
- store_utils.go
- testing.go
- tinder_swiper.go
- tyber.go