missing changes to headers
[oweals/gnunet.git] / src / include / block_fs.h
index aae741e60b13ee827147cfa9d0683f846f13cca7..0af504627b8fbe7d62633d4a88521c11dca8e2b3 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2010 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2010 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 License as published
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      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.
 */
 
 /**
 #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;
+  struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * Key generated (!) from the H(keyword) as the seed!
+   * Public key used to sign this block.
    */
-  struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded keyspace;
+  struct GNUNET_CRYPTO_EcdsaPublicKey verification_key;
 
-  /**
-   * GNUNET_RSA_Signature using RSA-key of the namespace
-   */
-  struct GNUNET_CRYPTO_RsaSignature ns_signature;
-
-  /**
-   * What is being signed and why?
-   */
-  struct GNUNET_CRYPTO_RsaSignaturePurpose ns_purpose;
+  /* rest of the data is encrypted */
 
-  /**
-   * Public key of the namespace.
-   */
-  struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded subspace;
-
-  /* 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 */
 
 };
 
 
-GNUNET_NETWORK_STRUCT_BEGIN
-
 /**
  * @brief index block (indexing a DBlock that
  *        can be obtained directly from reading
@@ -153,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