-adding missing break statements
[oweals/gnunet.git] / src / include / block_fs.h
index c3dcdeced1b26d144a500b53f3b470959674c88f..3f904caeb7619fa09b2cecade08e6844e07fbdb6 100644 (file)
 #define BLOCK_FS_H
 
 #include "gnunet_util_lib.h"
-
-/**
- * @brief keyword block (advertising data under a keyword)
- */
-struct KBlock
-{
-
-  /**
-   * GNUNET_RSA_Signature using RSA-key generated from search keyword.
-   */
-  struct GNUNET_CRYPTO_RsaSignature signature;
-
-  /**
-   * What is being signed and why?
-   */
-  struct GNUNET_CRYPTO_RsaSignaturePurpose purpose;
-
-  /**
-   * Key generated (!) from the H(keyword) as the seed!
-   */
-  struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded keyspace;
-
-  /* 0-terminated URI here */
-
-  /* variable-size Meta-Data follows here */
-
-};
+#include "gnunet_fs_service.h"
 
 
 /**
- * @brief namespace content block (advertising data under an identifier in a namespace)
+ * Maximum legal size for a ublock.
  */
-struct SBlock
-{
+#define MAX_UBLOCK_SIZE (60 * 1024)
 
-  /**
-   * GNUNET_RSA_Signature using RSA-key of the namespace
-   */
-  struct GNUNET_CRYPTO_RsaSignature signature;
 
-  /**
-   * What is being signed and why?
-   */
-  struct GNUNET_CRYPTO_RsaSignaturePurpose purpose;
-
-  /**
-   * Hash of the hash of the human-readable identifier used for
-   * this entry (the hash of the human-readable identifier is
-   * used as the key for decryption; the xor of this identifier
-   * and the hash of the "keyspace" is the datastore-query hash).
-   */
-  GNUNET_HashCode identifier;
-
-  /**
-   * Public key of the namespace.
-   */
-  struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded subspace;
-
-  /* 0-terminated update-identifier here */
-
-  /* 0-terminated URI here (except for NBlocks) */
-
-  /* variable-size Meta-Data follows here */
-
-};
 
+GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief namespace advertisement block (advertising root of a namespace)
+ * @brief universal block for keyword and namespace search results
  */
-struct NBlock
+struct UBlock
 {
 
   /**
-   * GNUNET_RSA_Signature using RSA-key generated from search keyword.
+   * Signature using pseudonym and search keyword / identifier.
    */
-  struct GNUNET_CRYPTO_RsaSignature ksk_signature;
+  struct GNUNET_CRYPTO_EcdsaSignature signature;
 
   /**
    * What is being signed and why?
    */
-  struct GNUNET_CRYPTO_RsaSignaturePurpose ksk_purpose;
-
-  /**
-   * Key generated (!) from the H(keyword) as the seed!
-   */
-  struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded keyspace;
-
-  /**
-   * GNUNET_RSA_Signature using RSA-key of the namespace
-   */
-  struct GNUNET_CRYPTO_RsaSignature ns_signature;
+  struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * What is being signed and why?
+   * Public key used to sign this block.
    */
-  struct GNUNET_CRYPTO_RsaSignaturePurpose ns_purpose;
+  struct GNUNET_CRYPTO_EcdsaPublicKey verification_key;
 
-  /**
-   * Public key of the namespace.
-   */
-  struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded subspace;
+  /* rest of the data is encrypted */
 
-  /* from here on, data is encrypted with H(keyword) */
+  /* 0-terminated update-identifier here (ignored for keyword results) */
 
-  /* 0-terminated root identifier here */
+  /* 0-terminated URI here */
 
   /* variable-size Meta-Data follows here */
 
@@ -140,7 +72,7 @@ struct NBlock
 
 
 /**
- * @brief index block (indexing a DBlock that 
+ * @brief index block (indexing a DBlock that
  *        can be obtained directly from reading
  *        the plaintext file)
  */
@@ -151,7 +83,7 @@ struct OnDemandBlock
    * file that was indexed (used to uniquely
    * identify the plaintext file).
    */
-  GNUNET_HashCode file_id;
+  struct GNUNET_HashCode file_id;
 
   /**
    * At which offset should we be able to find
@@ -160,6 +92,6 @@ struct OnDemandBlock
   uint64_t offset GNUNET_PACKED;
 
 };
-
+GNUNET_NETWORK_STRUCT_END
 
 #endif