global reindent, now with uncrustify hook enabled
[oweals/gnunet.git] / src / credential / credential_serialization.h
index 7e984ce0abbe9be32f266d4fbd103854f6ee2182..65326de31f774abaca6c741124a2c68aab4919a7 100644 (file)
      This file is part of GNUnet.
      Copyright (C) 2009-2013, 2016 GNUnet e.V.
 
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
+     GNUnet is free software: you can redistribute it and/or modify it
+     under the terms of the GNU Affero General Public License as published
+     by the Free Software Foundation, either version 3 of the License,
+     or (at your option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
+     Affero General Public License for more details.
 
-     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., 51 Franklin Street, Fifth Floor,
-     Boston, MA 02110-1301, USA.
-*/
+     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
+ */
 
 
 /**
  * @file credential/credential_serialization.h
- * @brief API to serialize and deserialize delegation chains 
+ * @brief API to serialize and deserialize delegation chains
  * and credentials
  * @author Martin Schanzenbach
  */
+#ifndef CREDENTIAL_SERIALIZATION_H
+#define CREDENTIAL_SERIALIZATION_H
+
 #include "platform.h"
 #include "gnunet_util_lib.h"
 #include "gnunet_constants.h"
 #include "gnunet_credential_service.h"
 
+/**
+ * Calculate how many bytes we will need to serialize
+ * the given delegation record
+ *
+ * @param ds_count number of delegation chain entries
+ * @param dsr array of #GNUNET_CREDENTIAL_Delegation
+ * @return the required size to serialize
+ */
+size_t
+GNUNET_CREDENTIAL_delegation_set_get_size (unsigned int ds_count,
+                                           const struct
+                                           GNUNET_CREDENTIAL_DelegationSet *dsr);
+
+/**
+ * Serizalize the given delegation record entries
+ *
+ * @param d_count number of delegation chain entries
+ * @param dsr array of #GNUNET_CREDENTIAL_Delegation
+ * @param dest_size size of the destination
+ * @param dest where to store the result
+ * @return the size of the data, -1 on failure
+ */
+ssize_t
+GNUNET_CREDENTIAL_delegation_set_serialize (unsigned int d_count,
+                                            const struct
+                                            GNUNET_CREDENTIAL_DelegationSet *dsr,
+                                            size_t dest_size,
+                                            char *dest);
+
+
+/**
+ * Deserialize the given destination
+ *
+ * @param len size of the serialized delegation recird
+ * @param src the serialized data
+ * @param d_count the number of delegation chain entries
+ * @param dsr where to put the delegation chain entries
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
+ */
+int
+GNUNET_CREDENTIAL_delegation_set_deserialize (size_t len,
+                                              const char *src,
+                                              unsigned int d_count,
+                                              struct
+                                              GNUNET_CREDENTIAL_DelegationSet *
+                                              dsr);
+
 /**
  * Calculate how many bytes we will need to serialize
  * the given delegation chain and credential
  *
  * @param d_count number of delegation chain entries
  * @param dd array of #GNUNET_CREDENTIAL_Delegation
+ * @param c_count number of credential entries
  * @param cd a #GNUNET_CREDENTIAL_Credential
  * @return the required size to serialize
  */
 size_t
 GNUNET_CREDENTIAL_delegation_chain_get_size (unsigned int d_count,
-                                             const struct GNUNET_CREDENTIAL_Delegation *dd,
-                                             const struct GNUNET_CREDENTIAL_Credential *cd);
+                                             const struct
+                                             GNUNET_CREDENTIAL_Delegation *dd,
+                                             unsigned int c_count,
+                                             const struct
+                                             GNUNET_CREDENTIAL_Credential *cd);
 
 /**
  * Serizalize the given delegation chain entries and credential
  *
  * @param d_count number of delegation chain entries
  * @param dd array of #GNUNET_CREDENTIAL_Delegation
+ * @param c_count number of credential entries
  * @param cd a #GNUNET_CREDENTIAL_Credential
  * @param dest_size size of the destination
  * @param dest where to store the result
@@ -56,8 +111,11 @@ GNUNET_CREDENTIAL_delegation_chain_get_size (unsigned int d_count,
  */
 ssize_t
 GNUNET_CREDENTIAL_delegation_chain_serialize (unsigned int d_count,
-                                              const struct GNUNET_CREDENTIAL_Delegation *dd,
-                                              const struct GNUNET_CREDENTIAL_Credential *cd,
+                                              const struct
+                                              GNUNET_CREDENTIAL_Delegation *dd,
+                                              unsigned int c_count,
+                                              const struct
+                                              GNUNET_CREDENTIAL_Credential *cd,
                                               size_t dest_size,
                                               char *dest);
 
@@ -69,6 +127,7 @@ GNUNET_CREDENTIAL_delegation_chain_serialize (unsigned int d_count,
  * @param src the serialized data
  * @param d_count the number of delegation chain entries
  * @param dd where to put the delegation chain entries
+ * @param c_count number of credential entries
  * @param cd where to put the credential data
  * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
  */
@@ -76,6 +135,39 @@ int
 GNUNET_CREDENTIAL_delegation_chain_deserialize (size_t len,
                                                 const char *src,
                                                 unsigned int d_count,
-                                                struct GNUNET_CREDENTIAL_Delegation *dd,
-                                                struct GNUNET_CREDENTIAL_Credential *cd);
+                                                struct
+                                                GNUNET_CREDENTIAL_Delegation *dd,
+                                                unsigned int c_count,
+                                                struct
+                                                GNUNET_CREDENTIAL_Credential *cd);
+size_t
+GNUNET_CREDENTIAL_credentials_get_size (unsigned int c_count,
+                                        const struct
+                                        GNUNET_CREDENTIAL_Credential *cd);
+
+ssize_t
+GNUNET_CREDENTIAL_credentials_serialize (unsigned int c_count,
+                                         const struct
+                                         GNUNET_CREDENTIAL_Credential *cd,
+                                         size_t dest_size,
+                                         char *dest);
+
+
+int
+GNUNET_CREDENTIAL_credentials_deserialize (size_t len,
+                                           const char *src,
+                                           unsigned int c_count,
+                                           struct GNUNET_CREDENTIAL_Credential *
+                                           cd);
+
+
+int
+GNUNET_CREDENTIAL_credential_serialize (struct
+                                        GNUNET_CREDENTIAL_Credential *cred,
+                                        char **data);
+
+struct GNUNET_CREDENTIAL_Credential*
+GNUNET_CREDENTIAL_credential_deserialize (const char*data,
+                                          size_t data_size);
+#endif
 /* end of credential_serialization.h */