#include "gnunet_util_lib.h"Go to the source code of this file.
Data Structures | |
| struct | GNUNET_MESSENGER_RoomKeyCode |
| A room key code specifies an identifier of a room and its individual properties. More... | |
| union | GNUNET_MESSENGER_RoomKey |
| A room key unifies a room key code and its 512bit hash representation. More... | |
| struct | GNUNET_MESSENGER_RoomEntryRecord |
| A room entry record specifies which peer is hosting a given room and may also specify the key to enter it. More... | |
| struct | GNUNET_MESSENGER_RoomDetailsRecord |
| A room details record specifies a custom name for a given room and some additional space for flags. More... | |
| struct | GNUNET_MESSENGER_EpochIdentifierCode |
| An epoch identifier code specifies an epoch or group key inside a room and it provides the information about its group size. More... | |
| union | GNUNET_MESSENGER_EpochIdentifier |
| An epoch identifier unifies an epoch identifier code and its 256bit hash representation. More... | |
| struct | GNUNET_MESSENGER_RoomEpochKeyRecord |
| A room epoch key record specifies an epoch key for a given room that can be identified via a given key to enter it and an epoch identifier. More... | |
| struct | GNUNET_MESSENGER_EpochNonceData |
| Struct to store a unique epoch nonce for message data encryption. More... | |
| union | GNUNET_MESSENGER_EpochNonce |
| An epoch nonce unifies the epoch nonce data and its 256bit hash representation. More... | |
| struct | GNUNET_MESSENGER_MessageHeader |
| The header of a GNUNET_MESSENGER_Message. More... | |
| struct | GNUNET_MESSENGER_MessageInfo |
| An info message body. More... | |
| struct | GNUNET_MESSENGER_MessageJoin |
| A join message body. More... | |
| struct | GNUNET_MESSENGER_MessageLeave |
| A leave message body. More... | |
| struct | GNUNET_MESSENGER_MessageName |
| A name message body. More... | |
| struct | GNUNET_MESSENGER_MessageKey |
| A key message body. More... | |
| struct | GNUNET_MESSENGER_MessagePeer |
| A peer message body. More... | |
| struct | GNUNET_MESSENGER_MessageId |
| An id message body. More... | |
| struct | GNUNET_MESSENGER_MessageMiss |
| A miss message body. More... | |
| struct | GNUNET_MESSENGER_MessageMerge |
| A merge message body. More... | |
| struct | GNUNET_MESSENGER_MessageRequest |
| A request message body. More... | |
| struct | GNUNET_MESSENGER_MessageInvite |
| An invite message body. More... | |
| struct | GNUNET_MESSENGER_MessageText |
| A text message body. More... | |
| struct | GNUNET_MESSENGER_MessageFile |
| A file message body. More... | |
| struct | GNUNET_MESSENGER_MessagePrivate |
| A private message body. More... | |
| struct | GNUNET_MESSENGER_MessageDeletion |
| A deletion message body This allows deletion of an own previous message with any custom automatic delay. More... | |
| struct | GNUNET_MESSENGER_MessageConnection |
| A connection message body This allows to tell others about connection information about a peer. More... | |
| struct | GNUNET_MESSENGER_MessageTicket |
| A ticket message body This allows to exchange ticket identifiers with an audience. More... | |
| struct | GNUNET_MESSENGER_MessageTranscript |
| A transcript message body This allows reading the content of a sent private message. More... | |
| struct | GNUNET_MESSENGER_MessageTag |
| A tag message body This allows tagging a message with a custom tag. More... | |
| struct | GNUNET_MESSENGER_MessageSubscribtion |
| A subscription message body This allows subscribing to a discourse. More... | |
| struct | GNUNET_MESSENGER_MessageTalk |
| A talk message body This allows talking in a discourse. More... | |
| struct | GNUNET_MESSENGER_MessageAnnouncement |
| An announcement message body This allows announcing group and epoch keys. More... | |
| struct | GNUNET_MESSENGER_MessageSecret |
| A secret message body This allows exchanging encrypted messages. More... | |
| struct | GNUNET_MESSENGER_MessageAppeal |
| An appeal message body This allows appealing to receive an epoch key. More... | |
| struct | GNUNET_MESSENGER_MessageAccess |
| An access message body This allows providing access to a group or an epoch key using a public key. More... | |
| struct | GNUNET_MESSENGER_MessageRevolution |
| A revolution message body This allows revolutionizing a group or epoch. More... | |
| struct | GNUNET_MESSENGER_MessageGroup |
| A group message body This allows forming an epoch group. More... | |
| struct | GNUNET_MESSENGER_MessageAuthorization |
| An authorization message body This allows providing access to a group or an epoch key using an established shared key. More... | |
| struct | GNUNET_MESSENGER_MessageBody |
| The unified body of a GNUNET_MESSENGER_Message. More... | |
| struct | GNUNET_MESSENGER_Message |
| Struct to a message. More... | |
Macros | |
| #define | GNUNET_MESSENGER_VERSION 0x00000006 |
| Version number of GNUnet Messenger API. | |
| #define | GNUNET_MESSENGER_SERVICE_NAME "messenger" |
| Identifier of GNUnet MESSENGER Service. | |
| #define | GNUNET_MESSENGER_EPOCH_NONCE_BYTES sizeof (struct GNUNET_ShortHashCode) |
| #define | GNUNET_MESSENGER_KIND_MAX (GNUNET_MESSENGER_KIND_TALK) |
| #define | GNUNET_MESSENGER_SECRET_IV_BYTES sizeof (struct GNUNET_CRYPTO_SymmetricInitializationVector) |
| #define | GNUNET_MESSENGER_ACCESS_KEY_BYTES |
| #define | GNUNET_MESSENGER_AUTHORIZATION_KEY_BYTES sizeof (struct GNUNET_CRYPTO_SymmetricSessionKey) |
Typedefs | |
| typedef void(* | GNUNET_MESSENGER_MessageCallback) (void *cls, struct GNUNET_MESSENGER_Room *room, const struct GNUNET_MESSENGER_Contact *sender, const struct GNUNET_MESSENGER_Contact *recipient, const struct GNUNET_MESSENGER_Message *message, const struct GNUNET_HashCode *hash, enum GNUNET_MESSENGER_MessageFlags flags) |
| Method called whenever a message is sent or received from a room. | |
| typedef enum GNUNET_GenericReturnValue(* | GNUNET_MESSENGER_MemberCallback) (void *cls, struct GNUNET_MESSENGER_Room *room, const struct GNUNET_MESSENGER_Contact *contact) |
| Method called for each member in a room during iteration. | |
Functions | |
| const char * | GNUNET_MESSENGER_name_of_kind (enum GNUNET_MESSENGER_MessageKind kind) |
| Get the name of a message kind. | |
| void | GNUNET_MESSENGER_create_room_key (union GNUNET_MESSENGER_RoomKey *key, const char *input, enum GNUNET_GenericReturnValue is_public, enum GNUNET_GenericReturnValue is_group, enum GNUNET_GenericReturnValue is_feed) |
| Creates a room key from given optional input string using certain properties for this targeted room. | |
| struct GNUNET_MESSENGER_Handle * | GNUNET_MESSENGER_connect (const struct GNUNET_CONFIGURATION_Handle *cfg, const char *name, const struct GNUNET_CRYPTO_BlindablePrivateKey *key, GNUNET_MESSENGER_MessageCallback msg_callback, void *msg_cls) |
| Set up a handle for the messenger related functions and connects to all necessary services. | |
| void | GNUNET_MESSENGER_disconnect (struct GNUNET_MESSENGER_Handle *handle) |
| Disconnect all of the messengers used services and clears up its used memory. | |
| const char * | GNUNET_MESSENGER_get_name (const struct GNUNET_MESSENGER_Handle *handle) |
| Get the name (if specified, otherwise NULL) used by the messenger. | |
| enum GNUNET_GenericReturnValue | GNUNET_MESSENGER_set_name (struct GNUNET_MESSENGER_Handle *handle, const char *name) |
| Set the name for the messenger handle and sends messages renaming your contact in currently open rooms. | |
| const struct GNUNET_CRYPTO_BlindablePublicKey * | GNUNET_MESSENGER_get_key (const struct GNUNET_MESSENGER_Handle *handle) |
| Get the public key used by the messenger or NULL if the anonymous key was used. | |
| enum GNUNET_GenericReturnValue | GNUNET_MESSENGER_set_key (struct GNUNET_MESSENGER_Handle *handle, const struct GNUNET_CRYPTO_BlindablePrivateKey *key) |
| Set the private key used by the messenger or NULL if the anonymous key should be used instead. | |
| struct GNUNET_MESSENGER_Room * | GNUNET_MESSENGER_open_room (struct GNUNET_MESSENGER_Handle *handle, const union GNUNET_MESSENGER_RoomKey *key) |
| Open a room to send and receive messages. | |
| struct GNUNET_MESSENGER_Room * | GNUNET_MESSENGER_enter_room (struct GNUNET_MESSENGER_Handle *handle, const struct GNUNET_PeerIdentity *door, const union GNUNET_MESSENGER_RoomKey *key) |
| Enter a room to send and receive messages through a door opened using GNUNET_MESSENGER_open_room. | |
| void | GNUNET_MESSENGER_close_room (struct GNUNET_MESSENGER_Room *room) |
| Close a room which was entered, opened or both in various order and variety. | |
| int | GNUNET_MESSENGER_find_rooms (const struct GNUNET_MESSENGER_Handle *handle, const struct GNUNET_MESSENGER_Contact *contact, GNUNET_MESSENGER_MemberCallback callback, void *cls) |
| Searches for a specific contact in a given room and calls a selected callback with a given closure for each of them containing the contact as a member. | |
| const struct GNUNET_HashCode * | GNUNET_MESSENGER_room_get_key (const struct GNUNET_MESSENGER_Room *room) |
| Get the key of a given room. | |
| const struct GNUNET_MESSENGER_Contact * | GNUNET_MESSENGER_get_sender (const struct GNUNET_MESSENGER_Room *room, const struct GNUNET_HashCode *hash) |
| Get the contact of a member in a room which sent a specific message identified with a given hash. | |
| const struct GNUNET_MESSENGER_Contact * | GNUNET_MESSENGER_get_recipient (const struct GNUNET_MESSENGER_Room *room, const struct GNUNET_HashCode *hash) |
| Get the contact of a member in a room which has been targeted as recipient of a specific message identified with a given hash. | |
| const char * | GNUNET_MESSENGER_contact_get_name (const struct GNUNET_MESSENGER_Contact *contact) |
| Get the name used by the contact. | |
| const struct GNUNET_CRYPTO_BlindablePublicKey * | GNUNET_MESSENGER_contact_get_key (const struct GNUNET_MESSENGER_Contact *contact) |
| Get the public key used by the contact or NULL if the anonymous key was used. | |
| size_t | GNUNET_MESSENGER_contact_get_id (const struct GNUNET_MESSENGER_Contact *contact) |
| Get the locally unique id of the contact. | |
| void | GNUNET_MESSENGER_send_message (struct GNUNET_MESSENGER_Room *room, const struct GNUNET_MESSENGER_Message *message, const struct GNUNET_MESSENGER_Contact *contact) |
| Send a message into a room. | |
| void | GNUNET_MESSENGER_delete_message (struct GNUNET_MESSENGER_Room *room, const struct GNUNET_HashCode *hash, const struct GNUNET_TIME_Relative delay) |
| Delete a message identified by its hash from a room. | |
| const struct GNUNET_MESSENGER_Message * | GNUNET_MESSENGER_get_message (struct GNUNET_MESSENGER_Room *room, const struct GNUNET_HashCode *hash) |
| Get the message in a room identified by its hash and requests it if necessary. | |
| int | GNUNET_MESSENGER_iterate_members (struct GNUNET_MESSENGER_Room *room, GNUNET_MESSENGER_MemberCallback callback, void *cls) |
| Iterates through all members of a given room and calls a selected callback for each of them with a provided closure. | |
MESSENGER service; manages decentralized chat groups
Definition in file gnunet_messenger_service.h.