- fix use of uninitialized memory
[oweals/gnunet.git] / src / identity / identity.h
index 04cfc110fedb74325b474a79723927ad9c474ad2..742a05438a4363acee819687451ab24a18fc720f 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2013 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2013 Christian Grothoff (and other contributing authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public Liceidentity as published
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public Liceidentity
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
 
 #include "gnunet_common.h"
 
+
+GNUNET_NETWORK_STRUCT_BEGIN
+
+
 /**
- * Generate debug-level log messages?
+ * Answer from service to client about last operation;
+ * GET_DEFAULT maybe answered with this message on failure;
+ * CREATE and RENAME will always be answered with this message.
  */
-#define DEBUG_IDENTITY GNUNET_EXTRA_LOGGING
+struct GNUNET_IDENTITY_ResultCodeMessage
+{
+  /**
+   * Type: #GNUNET_MESSAGE_TYPE_IDENTITY_RESULT_CODE
+   */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * Status code for the last operation, in NBO.
+   * (currently not used).
+   */
+  uint32_t result_code GNUNET_PACKED;
+
+  /* followed by 0-terminated error message (on error) */
+
+};
 
-GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Network size estimate sent from the service
- * to clients.  Contains the current size estimate
- * (or 0 if none has been calculated) and the
- * standard deviation of known estimates.
- *
+ * Service informs client about status of a pseudonym.
  */
-struct GNUNET_IDENTITY_XXXMessage
+struct GNUNET_IDENTITY_UpdateMessage
 {
   /**
-   * Type: GNUNET_MESSAGE_TYPE_IDENTITY_XXX
+   * Type: #GNUNET_MESSAGE_TYPE_IDENTITY_UPDATE
    */
   struct GNUNET_MessageHeader header;
 
+  /**
+   * Number of bytes in ego name string including 0-termination, in NBO;
+   * 0 if the ego was deleted.
+   */
+  uint16_t name_len GNUNET_PACKED;
+
+  /**
+   * Usually #GNUNET_NO, #GNUNET_YES to signal end of list.
+   */
+  uint16_t end_of_list GNUNET_PACKED;
+
+  /**
+   * The private key
+   */
+  struct GNUNET_CRYPTO_EcdsaPrivateKey private_key;
+
+  /* followed by 0-terminated ego name */
+
 };
+
+
+
+/**
+ * Client requests knowledge about default identity for
+ * a subsystem from identity service.
+ */
+struct GNUNET_IDENTITY_GetDefaultMessage
+{
+  /**
+   * Type: #GNUNET_MESSAGE_TYPE_IDENTITY_GET_DEFAULT
+   */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * Number of bytes in service name string including 0-termination, in NBO.
+   */
+  uint16_t name_len GNUNET_PACKED;
+
+  /**
+   * Always zero.
+   */
+  uint16_t reserved GNUNET_PACKED;
+
+
+  /* followed by 0-terminated service name */
+
+};
+
+
+/**
+ * Used from service to client as a result to the GET_DEFAULT
+ * message, used from client to service to SET_DEFAULT.
+ */
+struct GNUNET_IDENTITY_SetDefaultMessage
+{
+  /**
+   * Type: #GNUNET_MESSAGE_TYPE_IDENTITY_SET_DEFAULT
+   */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * Number of bytes in service name string including 0-termination, in NBO.
+   */
+  uint16_t name_len GNUNET_PACKED;
+
+  /**
+   * Always zero.
+   */
+  uint16_t reserved GNUNET_PACKED;
+
+  /**
+   * The private key
+   */
+  struct GNUNET_CRYPTO_EcdsaPrivateKey private_key;
+
+  /* followed by 0-terminated service name */
+
+};
+
+
+/**
+ * Client requests creation of an identity.  Service
+ * will respond with a result code.
+ */
+struct GNUNET_IDENTITY_CreateRequestMessage
+{
+  /**
+   * Type: #GNUNET_MESSAGE_TYPE_IDENTITY_CREATE
+   */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * Number of bytes in identity name string including 0-termination, in NBO.
+   */
+  uint16_t name_len GNUNET_PACKED;
+
+  /**
+   * Always zero.
+   */
+  uint16_t reserved GNUNET_PACKED;
+
+  /**
+   * The private key
+   */
+  struct GNUNET_CRYPTO_EcdsaPrivateKey private_key;
+
+  /* followed by 0-terminated identity name */
+
+};
+
+
+/**
+ * Client requests renaming of an identity.  Service
+ * will respond with a result code.
+ */
+struct GNUNET_IDENTITY_RenameMessage
+{
+  /**
+   * Type: #GNUNET_MESSAGE_TYPE_IDENTITY_RENAME
+   */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * Number of characters in the old name including 0-termination, in NBO.
+   */
+  uint16_t old_name_len GNUNET_PACKED;
+
+  /**
+   * Number of characters in the new name including 0-termination, in NBO.
+   */
+  uint16_t new_name_len GNUNET_PACKED;
+
+  /* followed by 0-terminated old name */
+  /* followed by 0-terminated new name */
+};
+
+
+/**
+ * Client requests deletion of an identity.  Service
+ * will respond with a result code.
+ */
+struct GNUNET_IDENTITY_DeleteMessage
+{
+  /**
+   * Type: #GNUNET_MESSAGE_TYPE_IDENTITY_DELETE
+   */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * Number of characters in the name including 0-termination, in NBO.
+   */
+  uint16_t name_len GNUNET_PACKED;
+
+  /**
+   * Always zero.
+   */
+  uint16_t reserved GNUNET_PACKED;
+
+  /* followed by 0-terminated name */
+
+};
+
+
+
 GNUNET_NETWORK_STRUCT_END
 
 #endif