glib-unix: add function to ensure an fd is sealed
[platform/upstream/glib.git] / glib / gchecksum.h
index 57aea10..af32757 100644 (file)
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
-#error "Only <glib.h> can be included directly."
-#endif
-
 #ifndef __G_CHECKSUM_H__
 #define __G_CHECKSUM_H__
 
+#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
+#error "Only <glib.h> can be included directly."
+#endif
+
 #include <glib/gtypes.h>
+#include <glib/gbytes.h>
 
 G_BEGIN_DECLS
 
@@ -34,6 +33,7 @@ G_BEGIN_DECLS
  * @G_CHECKSUM_MD5: Use the MD5 hashing algorithm
  * @G_CHECKSUM_SHA1: Use the SHA-1 hashing algorithm
  * @G_CHECKSUM_SHA256: Use the SHA-256 hashing algorithm
+ * @G_CHECKSUM_SHA512: Use the SHA-512 hashing algorithm
  *
  * The hashing algorithm to be used by #GChecksum when performing the
  * digest of some data.
@@ -46,7 +46,8 @@ G_BEGIN_DECLS
 typedef enum {
   G_CHECKSUM_MD5,
   G_CHECKSUM_SHA1,
-  G_CHECKSUM_SHA256
+  G_CHECKSUM_SHA256,
+  G_CHECKSUM_SHA512
 } GChecksumType;
 
 /**
@@ -60,27 +61,41 @@ typedef enum {
  */
 typedef struct _GChecksum       GChecksum;
 
+GLIB_AVAILABLE_IN_ALL
 gssize                g_checksum_type_get_length    (GChecksumType    checksum_type);
 
+GLIB_AVAILABLE_IN_ALL
 GChecksum *           g_checksum_new                (GChecksumType    checksum_type);
+GLIB_AVAILABLE_IN_ALL
 void                  g_checksum_reset              (GChecksum       *checksum);
+GLIB_AVAILABLE_IN_ALL
 GChecksum *           g_checksum_copy               (const GChecksum *checksum);
+GLIB_AVAILABLE_IN_ALL
 void                  g_checksum_free               (GChecksum       *checksum);
+GLIB_AVAILABLE_IN_ALL
 void                  g_checksum_update             (GChecksum       *checksum,
                                                      const guchar    *data,
                                                      gssize           length);
-G_CONST_RETURN gchar *g_checksum_get_string         (GChecksum       *checksum);
+GLIB_AVAILABLE_IN_ALL
+const gchar *         g_checksum_get_string         (GChecksum       *checksum);
+GLIB_AVAILABLE_IN_ALL
 void                  g_checksum_get_digest         (GChecksum       *checksum,
                                                      guint8          *buffer,
                                                      gsize           *digest_len);
 
+GLIB_AVAILABLE_IN_ALL
 gchar                *g_compute_checksum_for_data   (GChecksumType    checksum_type,
                                                      const guchar    *data,
                                                      gsize            length);
+GLIB_AVAILABLE_IN_ALL
 gchar                *g_compute_checksum_for_string (GChecksumType    checksum_type,
                                                      const gchar     *str,
                                                      gssize           length);
 
+GLIB_AVAILABLE_IN_2_34
+gchar                *g_compute_checksum_for_bytes  (GChecksumType    checksum_type,
+                                                     GBytes          *data);
+
 G_END_DECLS
 
 #endif /* __G_CHECKSUM_H__ */