gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r28513 - gnunet/src/include


From: gnunet
Subject: [GNUnet-SVN] r28513 - gnunet/src/include
Date: Mon, 12 Aug 2013 01:46:26 +0200

Author: tg
Date: 2013-08-12 01:46:26 +0200 (Mon, 12 Aug 2013)
New Revision: 28513

Modified:
   gnunet/src/include/gnunet_env_lib.h
   gnunet/src/include/gnunet_multicast_service.h
   gnunet/src/include/gnunet_psyc_service.h
   gnunet/src/include/gnunet_psycstore_service.h
   gnunet/src/include/gnunet_social_service.h
Log:
social: use full pubkey as place/nym id; multicast/psyc/store: identify members 
by their pubkey here too

Modified: gnunet/src/include/gnunet_env_lib.h
===================================================================
--- gnunet/src/include/gnunet_env_lib.h 2013-08-11 23:15:29 UTC (rev 28512)
+++ gnunet/src/include/gnunet_env_lib.h 2013-08-11 23:46:26 UTC (rev 28513)
@@ -20,8 +20,8 @@
 
 /** 
  * @file include/gnunet_env_lib.h
- * @brief Library providing operations for the @e environment of PSYC and 
Social messages,
- *        and for (de)serializing variable values.
+ * @brief Library providing operations for the @e environment of
+ *        PSYC and Social messages, and for (de)serializing variable values.
  * @author Gabor X Toth
  */
 
@@ -144,28 +144,31 @@
 /** 
  * Get all modifiers in the environment.
  *
+ * FIXME: use an iterator instead, as we'll likely use a SList to store the
+ *        modifiers in the environment.
+ *
  * @param env The environment.
- * @param[out] modifiers_length Set to the number of returned modifiers.
+ * @param[out] modifier_count Set to the number of returned modifiers.
  * 
  * @return Array of modifiers.
  */
 const struct GNUNET_ENV_Modifier *
 GNUNET_ENV_environment_get_modifiers (const struct GNUNET_ENV_Environment *env,
-                                      size_t *modifiers_length);
+                                      size_t *modifier_count);
 
 
 /** 
  * Add list of modifiers to the environment.
  *
  * @param env The environment.
- * @param modifiers_length Number of @a modifiers.
+ * @param modifier_count Number of @a modifiers.
  * @param modifiers Array of modifiers to add.
  * 
  * @return #GNUNET_OK on success, #GNUNET_SYSERR on error.
  */
 int
 GNUNET_ENV_environment_set_modifiers (const struct GNUNET_ENV_Environment *env,
-                                      size_t modifiers_length,
+                                      size_t modifier_count,
                                       const struct GNUNET_ENV_Modifier 
*modifiers);
 
 

Modified: gnunet/src/include/gnunet_multicast_service.h
===================================================================
--- gnunet/src/include/gnunet_multicast_service.h       2013-08-11 23:15:29 UTC 
(rev 28512)
+++ gnunet/src/include/gnunet_multicast_service.h       2013-08-11 23:46:26 UTC 
(rev 28513)
@@ -172,6 +172,10 @@
 
   /** 
    * Signature of the multicast message fragment.
+   *
+   * FIXME: not strictly necessary, the size is already in the MessageHeader
+   *        (minus the unsigned fields), and we could implicitly associate
+   *        a sig. purpose with the message type in the header.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -225,15 +229,20 @@
    * messages to update its list of candidates for content distribution.  All
    * other message types are application-specific.
    *
-   * FIXME: Needed? There's no message type argument of origin_to_all(),
-   *        PSYC does not need it, but could be added.
+   * FIXME: Needed? The payload could have its own message header already,
+   *        multicast does not actually need it.
+   *        Also, we have no message type argument for origin_to_all(),
    */
   struct GNUNET_MessageHeader body;
 
   /* Followed by message body. */
 };
 
+GNUNET_NETWORK_STRUCT_END
 
+
+GNUNET_NETWORK_STRUCT_BEGIN
+
 /** 
  * Header of a request from a member to the origin.
  *
@@ -247,25 +256,75 @@
   struct GNUNET_MessageHeader header;
 
   /**
-   * Public key of the group.
+   * Public key of the sending member.
    */
-  struct GNUNET_CRYPTO_ECCPublicKey pub_key;
+  struct GNUNET_CRYPTO_EccPublicKey member_key;
 
+  /** 
+   * ECC signature of the request fragment.
+   *
+   * Signature must match the public key of the multicast group.
+   */
+  struct GNUNET_CRYPTO_EccSignature signature;
+
+  /** 
+   * Number of the request fragment, monotonically increasing.
+   */
+  uint64_t fragment_id GNUNET_PACKED;
+
+  /** 
+   * Byte offset of this @e fragment of the @e request.
+   */
+  uint64_t fragment_offset GNUNET_PACKED;
+
+  /** 
+   * Number of the request this fragment belongs to.
+   *
+   * Set in GNUNET_MULTICAST_origin_to_all().
+   */
+  uint64_t request_id GNUNET_PACKED;
+
   /**
    * Flags for this request.
    */
   enum GNUNET_MULTICAST_MessageFlags flags GNUNET_PACKED;
 
+  /* Followed by request body. */
+};
+
+GNUNET_NETWORK_STRUCT_END
+
+
+GNUNET_NETWORK_STRUCT_BEGIN
+
+struct GNUNET_MULTICAST_JoinRequest {
   /** 
-   * Header for the request body.
+   * Header for the join request.
+   */
+  struct GNUNET_MessageHeader header;
+
+  /** 
+   * ECC signature of the rest of the fields of the join request.
    *
-   * Two request types are specifically understood by multicast, namely "peer
-   * join", "peer part".  Multicast will use those messages to update its list
-   * of candidates for content distribution.  All other message types are
-   * application-specific.
+   * Signature must match the public key of the joining member.
    */
-  struct GNUNET_MessageHeader body;
+  struct GNUNET_CRYPTO_EccSignature signature;
 
+  /**
+   * Public key of the target group.
+   */
+  struct GNUNET_CRYPTO_EccPublicKey group_key;
+
+  /**
+   * Public key of the joining member.
+   */
+  struct GNUNET_CRYPTO_EccPublicKey member_key;
+
+  /**
+   * Peer identity of the joining member.
+   */
+  struct GNUNET_PeerIdentity member_peer;
+
   /* Followed by request body. */
 };
 
@@ -318,17 +377,18 @@
  * with the decision.
  *
  * @param cls Closure.
- * @param peer Identity of the peer that wants to join.
- * @param join_req Application-dependent join message from the new user
+ * @param peer Identity of the member that wants to join.
+ * @param join_req Application-dependent join message from the new member
  *        (might, for example, contain a user,
  *        bind user identity/pseudonym to peer identity, application-level
  *        message to origin, etc.).
  * @param jh Join handle to pass to GNUNET_MULTICAST_join_decison().
  */
-typedef void (*GNUNET_MULTICAST_JoinCallback)(void *cls,
-                                              const struct GNUNET_PeerIdentity 
*peer,
-                                              const struct 
GNUNET_MessageHeader *join_req,
-                                              struct 
GNUNET_MULTICAST_JoinHandle *jh);
+typedef void
+(*GNUNET_MULTICAST_JoinCallback) (void *cls,
+                                  const struct GNUNET_EccPublicKey *member_key,
+                                  const struct GNUNET_MessageHeader *join_req,
+                                  struct GNUNET_MULTICAST_JoinHandle *jh);
 
 
 /** 
@@ -341,12 +401,12 @@
  * Call informing multicast about the decision taken for membership test.
  *
  * @param mth Handle that was given for the query.
- * @param decision #GNUNET_YES if peer was a member, #GNUNET_NO if peer was 
not a member,
- *         #GNUNET_SYSERR if we cannot answer the membership test.
+ * @param result #GNUNET_YES if peer was a member, #GNUNET_NO if peer was not 
a member,
+ *        #GNUNET_SYSERR if we cannot answer the membership test.
  */
 void
-GNUNET_MULTICAST_membership_test_answer (struct 
GNUNET_MULTICAST_MembershipTestHandle *mth,
-                                         int decision);
+GNUNET_MULTICAST_membership_test_result (struct 
GNUNET_MULTICAST_MembershipTestHandle *mth,
+                                         int result);
 
 
 /** 
@@ -356,14 +416,15 @@
  * message can be replayed.
  *
  * @param cls Closure.
- * @param peer Identity of the peer that we want to test.
+ * @param member_id Identity of the member that we want to test.
  * @param fragment_id Message fragment ID for which we want to do the test.
  * @param mth Handle to give to GNUNET_MULTICAST_membership_test_answer().
  */
-typedef void (*GNUNET_MULTICAST_MembershipTestCallback)(void *cls,
-                                                        const struct 
GNUNET_PeerIdentity *peer,
-                                                        uint64_t fragment_id,
-                                                        struct 
GNUNET_MULTICAST_MembershipTestHandle *mth);
+typedef void
+(*GNUNET_MULTICAST_MembershipTestCallback) (void *cls,
+                                            const struct 
GNUNET_CRYPTO_EccPublicKey *member_key,
+                                            uint64_t fragment_id,
+                                            struct 
GNUNET_MULTICAST_MembershipTestHandle *mth);
 
 
 /** 
@@ -375,10 +436,11 @@
  * @param req Request to the origin.
  * @param flags Flags for the request.
  */
-typedef void (*GNUNET_MULTICAST_RequestCallback) (void *cls,
-                                                  const struct 
GNUNET_PeerIdentity *sender,
-                                                  const struct 
GNUNET_MessageHeader *req,
-                                                  enum 
GNUNET_MULTICAST_MessageFlags flags);
+typedef void
+(*GNUNET_MULTICAST_RequestCallback) (void *cls,
+                                     const struct GNUNET_EccPublicKey 
*member_key,
+                                     const struct GNUNET_MessageHeader *req,
+                                     enum GNUNET_MULTICAST_MessageFlags flags);
 
 
 /** 
@@ -394,8 +456,9 @@
  *        (or we were kicked out, and we should thus call
  *        GNUNET_MULTICAST_member_part() next)
  */
-typedef void (*GNUNET_MULTICAST_MessageCallback) (void *cls,
-                                                  const struct 
GNUNET_MULTICAST_MessageHeader *msg);
+typedef void
+(*GNUNET_MULTICAST_MessageCallback) (void *cls,
+                                     const struct 
GNUNET_MULTICAST_MessageHeader *msg);
 
 
 /** 
@@ -417,9 +480,10 @@
  * @param fragment_id Which message fragment should be replayed.
  * @param rh Handle to pass to message transmit function.
  */
-typedef void (*GNUNET_MULTICAST_ReplayCallback) (void *cls,
-                                                 uint64_t fragment_id,
-                                                 struct 
GNUNET_MULTICAST_ReplayHandle *rh);
+typedef void
+(*GNUNET_MULTICAST_ReplayCallback) (void *cls,
+                                    uint64_t fragment_id,
+                                    struct GNUNET_MULTICAST_ReplayHandle *rh);
 
 
 /** 
@@ -570,7 +634,9 @@
  * members of the group.
  *
  * @param cfg Configuration to use.
- * @param pub_key ECC key that identifies the group.
+ * @param group_key ECC public key that identifies the group to join.
+ * @param member_key ECC key that identifies the member and used to sign
+ *        requests sent to the origin.
  * @param origin Peer ID of the origin to send unicast requsets to.  If NULL,
  *        unicast requests are sent back via multiple hops on the reverse path
  *        of multicast messages.
@@ -600,7 +666,8 @@
  */
 struct GNUNET_MULTICAST_Member *
 GNUNET_MULTICAST_member_join (const struct GNUNET_CONFIGURATION_Handle *cfg,
-                              const struct GNUNET_CRYPTO_EccPublicKey *pub_key,
+                              const struct GNUNET_CRYPTO_EccPublicKey 
*group_key,
+                              const struct GNUNET_CRYPTO_EccPrivateKey 
*member_key,
                               const struct GNUNET_PeerIdentity *origin,
                               size_t relay_count,
                               const struct GNUNET_PeerIdentity *relays,
@@ -622,7 +689,7 @@
 /** 
  * Request a message to be replayed.
  *
- * Useful if messages below the @e max_known_*_id's given when joining are
+ * Useful if messages below the @e max_known_fragment_id given when joining are
  * needed and not known to the client.
  *
  * @param member Membership handle.
@@ -671,6 +738,7 @@
  * Send a message to the origin of the multicast group.
  * 
  * @param member Membership handle.
+ * @param message_id Application layer ID for the message.  Opaque to 
multicast.
  * @param size Number of bytes we want to send to origin.
  * @param notify Callback to call to get the message.
  * @param notify_cls Closure for @a notify.
@@ -678,6 +746,7 @@
  */
 struct GNUNET_MULTICAST_MemberRequestHandle *
 GNUNET_MULTICAST_member_to_origin (struct GNUNET_MULTICAST_Member *member,
+                                   uint64_t message_id,
                                    size_t size,
                                    GNUNET_CONNECTION_TransmitReadyNotify 
notify,
                                    void *notify_cls);
@@ -692,46 +761,6 @@
 GNUNET_MULTICAST_member_to_origin_cancel (struct 
GNUNET_MULTICAST_MemberRequestHandle *rh);
 
 
-/** 
- * Handle to access multicast group operations for both the origin and members.
- */
-struct GNUNET_MULTICAST_Group;
-
-
-/** 
- * Convert a group @a origin to a @e group handle to access the @e group APIs.
- *
- * @param origin Group origin handle.
- * @return Group handle, valid for as long as @a origin is valid.
- */
-struct GNUNET_MULTICAST_Group *
-GNUNET_MULTICAST_origin_get_group (struct GNUNET_MULTICAST_Origin *origin);
-
-
-/** 
- * Convert @a member to a @e group handle to access the @e group APIs.
- *
- * @param member Member handle.
- * @return Group handle, valid for as long as @a member is valid.
- */
-struct GNUNET_MULTICAST_Group *
-GNUNET_MULTICAST_member_get_group (struct GNUNET_MULTICAST_Member *member);
-
-
-/**
- * Remove a peer from the group.
- *
- * After a message was received notifying about a leaving member, remove the
- * member from the multicast group.  Fragments with a greater @a message_id 
than
- * the specified one won't be transmitted to the member anymore, but the
- * transmission of lower or equal ones will still be performed.
- */
-void
-GNUNET_MULTICAST_group_member_remove (struct GNUNET_MULTICAST_Group *group,
-                                      const struct GNUNET_PeerIdentity *peer,
-                                      uint64_t message_id);
-
-
 #if 0                           /* keep Emacsens' auto-indent happy */
 {
 #endif

Modified: gnunet/src/include/gnunet_psyc_service.h
===================================================================
--- gnunet/src/include/gnunet_psyc_service.h    2013-08-11 23:15:29 UTC (rev 
28512)
+++ gnunet/src/include/gnunet_psyc_service.h    2013-08-11 23:46:26 UTC (rev 
28513)
@@ -136,54 +136,55 @@
  * to a @e method.
  *
  * @param cls Closure.
- * @param sender Who transmitted the message (master, except for messages
- *        from one of the slaves to the master).
- * @param message_id Unique message counter for this message;
- *                   (unique only in combination with the given sender for
- *                    this channel).
- * @param method_name Original method name from PSYC (may be more
- *        specific than the registered method name due to try-and-slice 
matching).
- *        FIXME: no try-and-slice for methods defined here.
- * @param header_length Number of modifiers in header.
- * @param header Modifiers present in the message. FIXME: use environment 
instead?
+ * @param slave_key Who transmitted the message.
+ *        - NULL for multicast messages from the master.
+ *        - The hash of the sending slave's public key for unicast requests 
from
+ *          one of the slaves to the master.
+ * @param message_id Unique message counter for this message.
+ *        Unique only in combination with the given sender for this channel.
+ * @param method_name Method name from PSYC.
+ * @param modifier_count Number of elements in the @a modifiers array.
+ * @param modifiers State modifiers and transient variables for the message.
  * @param data_offset Byte offset of @a data in the overall data of the method.
  * @param data_size Number of bytes in @a data.
  * @param data Data stream given to the method (might not be zero-terminated
  *             if data is binary).
  * @param frag Fragmentation status for the data.
  */
-typedef int (*GNUNET_PSYC_Method)(void *cls,
-                                  const struct GNUNET_PeerIdentity *sender,
-                                  uint64_t message_id,
-                                  const char *method_name,
-                                  size_t header_length,
-                                  GNUNET_PSYC_Modifier *header,
-                                  uint64_t data_offset,
-                                  size_t data_size,
-                                  const void *data,
-                                  enum GNUNET_PSYC_MessageFlags flags);
+typedef int
+(*GNUNET_PSYC_Method) (void *cls,
+                       const struct GNUNET_CRYPTO_EccPublicKey *slave_key,
+                       uint64_t message_id,
+                       const char *method_name,
+                       size_t modifier_count,
+                       const GNUNET_ENV_Modifier *modifiers,
+                       uint64_t data_offset,
+                       size_t data_size,
+                       const void *data,
+                       enum GNUNET_PSYC_MessageFlags flags);
 
 
 /** 
  * Method called from PSYC upon receiving a join request.
  *
  * @param cls Closure.
- * @param peer Peer requesting to join.
+ * @param slave  requesting to join.
  * @param method_name Method name in the join request.
- * @param header_length Number of modifiers in header.
- * @param header Modifiers present in the message.
+ * @param variable_count Number of elements in the @a variables array.
+ * @param variables Transient variables for the join request.
  * @param data_size Number of bytes in @a data.
  * @param data Data stream given to the method (might not be zero-terminated
  *             if data is binary).
  */
-typedef int (*GNUNET_PSYC_JoinCallback)(void *cls,
-                                        const struct GNUNET_PeerIdentity *peer,
-                                        const char *method_name,
-                                        size_t header_length,
-                                        GNUNET_PSYC_Modifier *header,
-                                        size_t data_size,
-                                        const void *data,
-                                        struct GNUNET_PSYC_JoinHandle *jh);
+typedef int
+(*GNUNET_PSYC_JoinCallback) (void *cls,
+                             const struct GNUNET_CRYPTO_EccPublicKey 
*slave_key,
+                             const char *method_name,
+                             size_t variable_count,
+                             const GNUNET_ENV_Modifier *variables,
+                             size_t data_size,
+                             const void *data,
+                             struct GNUNET_PSYC_JoinHandle *jh);
 
 
 /** 
@@ -194,7 +195,7 @@
  *
  * @param jh Join request handle.
  * @param is_admitted #GNUNET_YES if joining is approved,
- *        #GNUNET_NO if it is disapproved
+ *        #GNUNET_NO if it is disapproved.
  * @param relay_count Number of relays given.
  * @param relays Array of suggested peers that might be useful relays to use
  *        when joining the multicast group (essentially a list of peers that
@@ -238,7 +239,7 @@
  * inform PSYC about the meaning of the respective events.
  *
  * @param cfg Configuration to use (to connect to PSYC service).
- * @param priv_key ECC key that will be used to sign messages for this
+ * @param channel_key ECC key that will be used to sign messages for this
  *        PSYC session. The public key is used to identify the PSYC channel.
  *        Note that end-users will usually not use the private key directly, 
but
  *        rather look it up in GADS for places managed by other users, or 
select
@@ -247,14 +248,14 @@
  *        one in the future.
  * @param policy Group policy specifying join and history restrictions.
  *        Used to automate group management decisions.
- * @param method Function to invoke on messages received from members.
+ * @param method Function to invoke on messages received from slaves.
  * @param join_cb Function to invoke when a peer wants to join.
  * @param cls Closure for @a method and @a join_cb.
  * @return Handle for the channel master, NULL on error.
  */
 struct GNUNET_PSYC_Master *
 GNUNET_PSYC_master_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
-                          const struct GNUNET_CRYPTO_EccPrivateKey *priv_key,
+                          const struct GNUNET_CRYPTO_EccPrivateKey 
*channel_key,
                           enum GNUNET_MULTICAST_GroupPolicy policy,
                           GNUNET_PSYC_Method method,
                           GNUNET_PSYC_JoinCallback join_cb,
@@ -279,10 +280,11 @@
  *         (should be used if @a *data_size was not big enough to take all the 
data)
  *         #GNUNET_YES if this completes the transmission (all data supplied)
  */
-typedef int (*GNUNET_PSYC_MasterReadyNotify)(void *cls,
-                                             uint64_t message_id,
-                                             size_t *data_size,
-                                             void *data);
+typedef int
+(*GNUNET_PSYC_MasterReadyNotify)(void *cls,
+                                 uint64_t message_id,
+                                 size_t *data_size,
+                                 void *data);
 
 
 /** 
@@ -327,7 +329,7 @@
  *
  * @param master PSYC channel master to stop.
  */
-tvoid
+void
 GNUNET_PSYC_master_stop (struct GNUNET_PSYC_Master *master);
 
 
@@ -348,8 +350,14 @@
  * and disapproval is simply being ignored).
  *
  * @param cfg Configuration to use.
- * @param pub_key ECC key that identifies the channel we wish to join.
+ * @param channel_key ECC public key that identifies the channel we wish to 
join.
+ * @param slave_key ECC private-public key pair that identifies the slave, and
+ *        used by multicast to sign the join request and subsequent unicast
+ *        requests sent to the master.
  * @param origin Peer identity of the origin.
+ * @param relay_count Number of peers in the @a relays array.
+ * @param relays Peer identities of members of the multicast group, which serve
+ *        as relays and used to join the group at.
  * @param method Function to invoke on messages received from the channel,
  *        typically at least contains functions for @e join and @e part.
  * @param join_cb Function to invoke when a peer wants to join.
@@ -362,8 +370,11 @@
  */
 struct GNUNET_PSYC_Slave *
 GNUNET_PSYC_slave_join (const struct GNUNET_CONFIGURATION_Handle *cfg,
-                        const struct GNUNET_CRYPTO_EccPublicKey *pub_key,
+                        const struct GNUNET_CRYPTO_EccPublicKey *channel_key,
+                        const struct GNUNET_CRYPTO_EccPrivateKey *slave_key,
                         const struct GNUNET_PeerIdentity *origin,
+                        size_t relay_count,
+                        const struct GNUNET_PeerIdentity *relays,
                         GNUNET_PSYC_Method method,
                         GNUNET_PSYC_JoinCallback join_cb,
                         void *cls,
@@ -401,9 +412,10 @@
  *         #GNUNET_NO on success, if more data is to be transmitted later.
  *         #GNUNET_YES if this completes the transmission (all data supplied).
  */
-typedef int (*GNUNET_PSYC_SlaveReadyNotify)(void *cls,
-                                            size_t *data_size,
-                                            char *data);
+typedef int
+(*GNUNET_PSYC_SlaveReadyNotify) (void *cls,
+                                 size_t *data_size,
+                                 char *data);
 
 
 /** 
@@ -466,10 +478,10 @@
 
 
 /** 
- * Add a member to the channel.
+ * Add a slave to the channel's membership list.
  *
  * Note that this will NOT generate any PSYC traffic, it will merely update the
- * local data base to modify how we react to <em>membership test</em> queries.
+ * local database to modify how we react to <em>membership test</em> queries.
  * The channel master still needs to explicitly transmit a @e join message to
  * notify other channel members and they then also must still call this 
function
  * in their respective methods handling the @e join message.  This way, how @e
@@ -477,25 +489,25 @@
  * application; for example, there might be a @e part_all method to kick out
  * everyone.
  *
- * Note that channel members are explicitly trusted to execute such methods
- * correctly; not doing so correctly will result in either denying members
+ * Note that channel slaves are explicitly trusted to execute such methods
+ * correctly; not doing so correctly will result in either denying other slaves
  * access or offering access to channel data to non-members.
  *
  * @param channel Channel handle.
- * @param member Which peer to add.
+ * @param slave_key Identity of channel slave to add.
  * @param message_id Message ID for the message that changed the membership.
  */
 void
-GNUNET_PSYC_channel_member_add (struct GNUNET_PSYC_Channel *channel,
-                                const struct GNUNET_PeerIdentity *member,
-                                uint64_t message_id);
+GNUNET_PSYC_channel_slave_add (struct GNUNET_PSYC_Channel *channel,
+                               const struct GNUNET_CRYPTO_EccPublicKey 
*slave_key,
+                               uint64_t message_id);
 
 
 /** 
- * Remove a member from the channel.
+ * Remove a slave from the channel's membership list.
  *
  * Note that this will NOT generate any PSYC traffic, it will merely update the
- * local data base to modify how we react to <em>membership test</em> queries.
+ * local database to modify how we react to <em>membership test</em> queries.
  * The channel master still needs to explicitly transmit a @e part message to
  * notify other channel members and they then also must still call this 
function
  * in their respective methods handling the @e part message.  This way, how
@@ -509,13 +521,13 @@
  * non-members.
  *
  * @param channel Channel handle.
- * @param member Which peer to remove.
+ * @param slave_key Identity of channel slave to remove.
  * @param message_id Message ID for the message that changed the membership.
  */
 void
-GNUNET_PSYC_channel_member_remove (struct GNUNET_PSYC_Channel *channel,
-                                   const struct GNUNET_PeerIdentity *member,
-                                   uint64_t message_id);
+GNUNET_PSYC_channel_slave_remove (struct GNUNET_PSYC_Channel *channel,
+                                  const struct GNUNET_CRYPTO_EccPublicKey 
*slave_key,
+                                  uint64_t message_id);
 
 
 /** 
@@ -526,10 +538,11 @@
  * @param value Value of the state variable.
  * @param value_size Number of bytes in @a value.
  */
-typedef void (*GNUNET_PSYC_StateCallback)(void *cls,
-                                          const char *name,
-                                          size_t value_size,
-                                          const void *value);
+typedef void
+(*GNUNET_PSYC_StateCallback) (void *cls,
+                              const char *name,
+                              size_t value_size,
+                              const void *value);
 
 
 /** 
@@ -626,7 +639,7 @@
  *        needed as variables might contain binary data and
  *        might also not be 0-terminated; set to 0 on errors.
  * @return NULL on error (no matching state or variable), pointer
-          to the respective value otherwise.
+ *         to the respective value otherwise.
  */
 const void *
 GNUNET_PSYC_channel_state_get (struct GNUNET_PSYC_Channel *channel,

Modified: gnunet/src/include/gnunet_psycstore_service.h
===================================================================
--- gnunet/src/include/gnunet_psycstore_service.h       2013-08-11 23:15:29 UTC 
(rev 28512)
+++ gnunet/src/include/gnunet_psycstore_service.h       2013-08-11 23:46:26 UTC 
(rev 28513)
@@ -77,36 +77,36 @@
 
 /** 
  * Function called with the result of an asynchronous operation.
-; * 
+ * 
  * @param result #GNUNET_SYSERR on error,
  *        #GNUNET_YES on success or if the peer was a member,
  *        #GNUNET_NO if the peer was not a member
  */
-typedef void (*GNUNET_PSYCSTORE_ContinuationCallback)(void *cls,
-                                                      int result);
+typedef void (*GNUNET_PSYCSTORE_ResultCallback)(void *cls,
+                                                int result);
 
 /** 
  * Store join/leave events for a PSYC channel in order to be able to answer
  * membership test queries later.
  *
  * @param h Handle for the PSYCstore.
- * @param channel_id ID of the channel where the event happened.
+ * @param channel_key The channel where the event happened.
+ * @param slave_key Public key of joining/leaving slave.
  * @param message_id ID of the message in which this event was announced.
- * @param peer Identity of joining/leaving peer.
  * @param did_join #GNUNET_YES on join, #GNUNET_NO on leave.
- * @param ccb Callback to call with the result of the storage operation.
- * @param ccb_cls Closure for the callback.
+ * @param rcb Callback to call with the result of the storage operation.
+ * @param rcb_cls Closure for the callback.
  *
  * @return Operation handle that can be used to cancel the operation.
  */
 struct GNUNET_PSYCSTORE_OperationHandle *
 GNUNET_PSYCSTORE_membership_store (struct GNUNET_PSYCSTORE_Handle *h,
-                                   const struct GNUNET_HashCode *channel_id,
+                                   const struct GNUNET_CRYPTO_EccPublicKey 
*channel_key,
+                                   const struct GNUNET_CRYPTO_EccPublicKey 
*slave_key,
                                    uint64_t message_id,
-                                   const struct GNUNET_PeerIdentity *peer,
                                    int did_join,
-                                   GNUNET_PSYCSTORE_ContinuationCallback ccb,
-                                   void *ccb_cls);
+                                   GNUNET_PSYCSTORE_ResultCallback rcb,
+                                   void *rcb_cls);
 
 
 /** 
@@ -117,40 +117,40 @@
  * to see the requested message.
  *
  * @param h Handle for the PSYCstore.
- * @param channel_id The channel we are interested in.
+ * @param channel_key The channel we are interested in.
+ * @param slave_key Public key of slave whose membership to check.
  * @param fragment_id Message fragment ID to check.
- * @param peer Peer whose membership to check.
- * @param ccb Callback to call with the test result.
- * @param ccb_cls Closure for the callback.
+ * @param rcb Callback to call with the test result.
+ * @param rcb_cls Closure for the callback.
  *
  * @return Operation handle that can be used to cancel the operation.
  */
 struct GNUNET_PSYCSTORE_OperationHandle *
 GNUNET_PSYCSTORE_membership_test (struct GNUNET_PSYCSTORE_Handle *h,
-                                  const struct GNUNET_HashCode *channel_id,
+                                  const struct GNUNET_CRYPTO_EccPublicKey 
*channel_key,
+                                  const struct GNUNET_CRYPTO_EccPublicKey 
*slave_key,
                                   uint64_t fragment_id,
-                                  const struct GNUNET_PeerIdentity *peer,
-                                  GNUNET_PSYCSTORE_ContinuationCallback ccb,
-                                  void *ccb_cls);
+                                  GNUNET_PSYCSTORE_ResultCallback rcb,
+                                  void *rcb_cls);
 
 
 /** 
  * Store a message fragment sent to a channel.
  *
  * @param h Handle for the PSYCstore.
- * @param channel_id The channel the message belongs to.
+ * @param channel_key The channel the message belongs to.
  * @param message Message to store.
- * @param ccb Callback to call with the result of the operation.
- * @param ccb_cls Closure for the callback.
+ * @param rcb Callback to call with the result of the operation.
+ * @param rcb_cls Closure for the callback.
  * 
  * @return Handle that can be used to cancel the operation.
  */
 struct GNUNET_PSYCSTORE_OperationHandle *
 GNUNET_PSYCSTORE_fragment_store (struct GNUNET_PSYCSTORE_Handle *h,
-                                 const struct GNUNET_HashCode *channel_id,
+                                 const struct GNUNET_CRYPTO_EccPublicKey 
*channel_key,
                                  const struct GNUNET_MULTICAST_MessageHeader 
*message,
-                                 GNUNET_PSYCSTORE_ContinuationCallback ccb,
-                                 void *ccb_cls);
+                                 GNUNET_PSYCSTORE_ResultCallback rcb,
+                                 void *rcb_cls);
 
 
 /** 
@@ -170,7 +170,7 @@
  * Retrieve a message fragment by fragment ID.
  *
  * @param h Handle for the PSYCstore.
- * @param channel_id The channel we are interested in.
+ * @param channel_key The channel we are interested in.
  * @param fragment_id Fragment ID to check.  Use 0 to get the latest message 
fragment.
  * @param rcb Callback to call with the result of the operation.
  * @param rcb_cls Closure for the callback.
@@ -179,7 +179,7 @@
  */
 struct GNUNET_PSYCSTORE_OperationHandle *
 GNUNET_PSYCSTORE_fragment_get (struct GNUNET_PSYCSTORE_Handle *h,
-                               const struct GNUNET_HashCode *channel_id,
+                               const struct GNUNET_CRYPTO_EccPublicKey 
*channel_key,
                                uint64_t fragment_id,
                                GNUNET_PSYCSTORE_FragmentResultCallback rcb,
                                void *rcb_cls);
@@ -189,7 +189,7 @@
  * Retrieve a message by ID.
  *
  * @param h Handle for the PSYCstore.
- * @param channel_id The channel we are interested in.
+ * @param channel_key The channel we are interested in.
  * @param message_id Message ID to check.  Use 0 to get the latest message.
  * @param rcb Callback to call with the result of the operation.
  * @param rcb_cls Closure for the callback.
@@ -198,7 +198,7 @@
  */
 struct GNUNET_PSYCSTORE_OperationHandle *
 GNUNET_PSYCSTORE_message_get (struct GNUNET_PSYCSTORE_Handle *h,
-                              const struct GNUNET_HashCode *channel_id,
+                              const struct GNUNET_CRYPTO_EccPublicKey 
*channel_key,
                               uint64_t message_id,
                               GNUNET_PSYCSTORE_FragmentResultCallback rcb,
                               void *rcb_cls);
@@ -213,27 +213,27 @@
  * operations before the current one.
  *
  * @param h Handle for the PSYCstore.
- * @param channel_id The channel we are interested in.
+ * @param channel_key The channel we are interested in.
  * @param message_id ID of the message that contains this state modifier.
  * @param oper Operation to perform.
  * @param name Name of variable.
  * @param value_size Size of @a value.
  * @param value Value of variable.
- * @param ccb Callback to call with the result of the operation.
- * @param ccb_cls Closure for the callback.
+ * @param rcb Callback to call with the result of the operation.
+ * @param rcb_cls Closure for the callback.
  * 
  * @return Handle that can be used to cancel the operation.
  */
 struct GNUNET_PSYCSTORE_OperationHandle *
 GNUNET_PSYCSTORE_state_modify (struct GNUNET_PSYCSTORE_Handle *h,
-                               const struct GNUNET_HashCode *channel_id,
+                               const struct GNUNET_CRYPTO_EccPublicKey 
*channel_key,
                                uint64_t message_id,
                                enum GNUNET_ENV_Operator *oper,
                                const char *name,
                                size_t value_size,
                                const void *value,
-                               GNUNET_PSYCSTORE_ContinuationCallback ccb,
-                               void *ccb_cls);
+                               GNUNET_PSYCSTORE_ResultCallback rcb,
+                               void *rcb_cls);
 
 
 /** 
@@ -255,7 +255,7 @@
  * Retrieve the given state variable for a channel.
  *
  * @param h Handle for the PSYCstore.
- * @param channel_id The channel we are interested in.
+ * @param channel_key The channel we are interested in.
  * @param name Name of variable to get.
  * @param rcb Callback to call with the result.
  * @param rcb_cls Closure for the callback.
@@ -264,7 +264,7 @@
  */
 struct GNUNET_PSYCSTORE_OperationHandle *
 GNUNET_PSYCSTORE_state_get (struct GNUNET_PSYCSTORE_Handle *h,
-                            const struct GNUNET_HashCode *channel_id,
+                            const struct GNUNET_CRYPTO_EccPublicKey 
*channel_key,
                             const char *name,
                             GNUNET_PSYCSTORE_StateResultCallback rcb,
                             void *rcb_cls);
@@ -274,7 +274,7 @@
  * Retrieve all state variables for a channel.
  *
  * @param h Handle for the PSYCstore.
- * @param channel_id The channel we are interested in.
+ * @param channel_key The channel we are interested in.
  * @param rcb Callback to call with the result.
  * @param rcb_cls Closure for the callback.
  * 
@@ -282,7 +282,7 @@
  */
 struct GNUNET_PSYCSTORE_OperationHandle *
 GNUNET_PSYCSTORE_state_get_all (struct GNUNET_PSYCSTORE_Handle *h,
-                                const struct GNUNET_HashCode *channel_id,
+                                const struct GNUNET_CRYPTO_EccPublicKey 
*channel_key,
                                 GNUNET_PSYCSTORE_StateResultCallback rcb,
                                 void *rcb_cls);
 

Modified: gnunet/src/include/gnunet_social_service.h
===================================================================
--- gnunet/src/include/gnunet_social_service.h  2013-08-11 23:15:29 UTC (rev 
28512)
+++ gnunet/src/include/gnunet_social_service.h  2013-08-11 23:46:26 UTC (rev 
28513)
@@ -225,7 +225,7 @@
  * GNUNET_SOCIAL_home_leave().
  *
  * @param cfg Configuration to contact the social service.
- * @param home_keyfile File with the private key for the home,
+ * @param home_keyfile File with the private-public key pair of the home,
  *        created if the file does not exist; pass NULL for ephemeral homes.
  * @param policy Policy specifying entry and history restrictions of the home.
  * @param ego Owner of the home (host).
@@ -295,31 +295,29 @@
 
 
 /** 
- * Get the identity of a user.
+ * Get the public key of a nym.
  *
  * Suitable, for example, to be used with GNUNET_NAMESTORE_zone_to_name().
  *
  * @param nym Pseudonym to map to a cryptographic identifier.
- * @param[out] identity Set to the identity of the nym (short hash of the 
public key).
+ * @param[out] identity Set to the public key of the nym.
  */
 void
-GNUNET_SOCIAL_nym_get_identity (struct GNUNET_SOCIAL_Nym *nym,
-                                struct GNUNET_CRYPTO_ShortHashCode *identity);
+GNUNET_SOCIAL_nym_get_key (struct GNUNET_SOCIAL_Nym *nym,
+                           struct GNUNET_CRYPTO_EccPublicKey *nym_key);
 
 
 /** 
- * Obtain the (cryptographic, binary) address for the home.
+ * Obtain the private-public key pair of the home.
  * 
- * @param home Home to get the (public) address from.
- * @param[out] crypto_address Address suitable for storing in GADS, i.e. in
- *        'HEX.place' or within the respective GADS record type ("PLACE")
+ * @param home Home to get the key of.
+ * @param[out] home_key Set to the private-public key pair of the home.  The 
public part is suitable for storing in GADS within a "PLACE" record, along with 
peer IDs to join at.
  */
 void
-GNUNET_SOCIAL_home_get_address (struct GNUNET_SOCIAL_Home *home,
-                                struct GNUNET_HashCode *crypto_address);
+GNUNET_SOCIAL_home_get_key (struct GNUNET_SOCIAL_Home *home,
+                            struct GNUNET_CRYPTO_EccPrivateKey *home_key);
 
 
-
 /** 
  * Advertise @a home under @a name in the GADS zone of the @e ego.
  *
@@ -409,9 +407,10 @@
  * @param cfg Configuration to contact the social service.
  * @param ego Owner of the home (host).
  * @param address GADS name of the place to enter.  Either in the form of
- *        'room.friend.gads', or 'HEX.zkey'.  This latter case refers to the
- *        'PLACE' record in the GADS zone with the public key 'HEX', and can be
- *        used to request entry to a pseudonym's place directly.
+ *        'room.friend.gads', or 'NYMPUBKEY.zkey'.  This latter case refers to
+ *        the 'PLACE' record of the empty label ("+") in the GADS zone with the
+ *        nym's public key 'NYMPUBKEY', and can be used to request entry to a
+ *        pseudonym's place directly.
  * @param env Environment containing variables for the message, or NULL.
  * @param data_size Number of bytes in @a data.
  * @param data Payload for the message to give to the enter callback.
@@ -443,7 +442,7 @@
 struct GNUNET_SOCIAL_Place *
 GNUNET_SOCIAL_place_enter2 (const struct GNUNET_CONFIGURATION_Handle *cfg,
                            struct GNUNET_SOCIAL_Ego *ego,
-                           struct GNUNET_HashCode *crypto_address,
+                           struct GNUNET_CRYPTO_EccPublicKey *crypto_address,
                            struct GNUNET_PeerIdentity *peer,
                            struct GNUNET_SOCIAL_Slicer *slicer,
                            const struct GNUNET_ENV_Environment *env,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]