RECLAIM/OIDC: code cleanup
[oweals/gnunet.git] / src / include / gnunet_hello_lib.h
index e19419f25f479838afd4e1d1ab1d86d71bb5d7f6..c46e847f16bbd39d09456cc271b0415dd32a8ab6 100644 (file)
      WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Affero General Public License for more details.
-    
+
      You should have received a copy of the GNU Affero General Public License
      along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+     SPDX-License-Identifier: AGPL3.0-or-later
 */
 
 /**
@@ -42,7 +44,6 @@ extern "C"
 
 #include "gnunet_util_lib.h"
 
-
 /**
  * Prefix that every HELLO URI must start with.
  */
@@ -475,11 +476,14 @@ GNUNET_HELLO_parse_uri (const char *uri,
 
 
 /* NG API */
+#include "gnunet_nt_lib.h"
+
 
 /**
  * Build address record by signing raw information with private key.
  *
  * @param address text address to sign
+ * @param nt network type of @a address
  * @param expiration how long is @a address valid
  * @param private_key signing key to use
  * @param result[out] where to write address record (allocated)
@@ -487,10 +491,11 @@ GNUNET_HELLO_parse_uri (const char *uri,
  */
 void
 GNUNET_HELLO_sign_address (const char *address,
-                          struct GNUNET_TIME_Absolute expiration,
-                          const struct GNUNET_CRYPTO_EddsaPrivateKey *private_key,
-                          void **result,
-                          size_t *result_size);
+                           enum GNUNET_NetworkType nt,
+                           struct GNUNET_TIME_Absolute expiration,
+                           const struct GNUNET_CRYPTO_EddsaPrivateKey *private_key,
+                           void **result,
+                           size_t *result_size);
 
 
 /**
@@ -498,16 +503,28 @@ GNUNET_HELLO_sign_address (const char *address,
  *
  * @param raw raw signed address
  * @param raw_size size of @a raw
- * @param public_key public key to use for signature verification
+ * @param pid public key to use for signature verification
+ * @param nt[out] set to network type
  * @param expiration[out] how long is the address valid
  * @return NULL on error, otherwise the address
  */
 char *
 GNUNET_HELLO_extract_address (const void *raw,
-                             size_t raw_size,
-                             const struct GNUNET_CRYPTO_EddsaPublicKey *public_key,
-                             struct GNUNET_TIME_Absolute *expiration);
+                              size_t raw_size,
+                              const struct GNUNET_PeerIdentity *pid,
+                              enum GNUNET_NetworkType *nt,
+                              struct GNUNET_TIME_Absolute *expiration);
+
 
+/**
+ * Given an address as a string, extract the prefix that identifies
+ * the communicator offering transmissions to that address.
+ *
+ * @param address a peer's address
+ * @return NULL if the address is mal-formed, otherwise the prefix
+ */
+char *
+GNUNET_HELLO_address_to_prefix (const char *address);
 
 
 #if 0                           /* keep Emacsens' auto-indent happy */