From 96c2ac6e4e510bb6b7ae7d9718abcb813e692ef1 Mon Sep 17 00:00:00 2001 From: Jorg Schuler Date: Mon, 2 Jun 2008 15:47:25 +0000 Subject: * src/gchecksum.c src/gchecksum.h src/Makefile.am configure.ac: copied gchecksum from glib 2.16.3. It's used if we compile on a system that does not have glib 2.16 or higher. Testing is needed whether it's really pulled in in those cases -- I'm using 2.16.3 myself. * src/itdb_itunesdb.c (mk_mhit): write mhii_link. * src/db-artwork-writer.c: code to handle sparse artwork correctly. (ipod_supports_sparse_artwork): currently hard-coded to TRUE. Will be changed in the future to reflect the information given in the SysInfoExtended. Change yourself if your iPod does not support Sparse Artwork (sharing of thumbnails between several tracks). git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@2005 f01d2545-417e-4e96-918e-98f8d0dbbcb6 --- src/gchecksum.h | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/gchecksum.h (limited to 'src/gchecksum.h') diff --git a/src/gchecksum.h b/src/gchecksum.h new file mode 100644 index 0000000..8f7d808 --- /dev/null +++ b/src/gchecksum.h @@ -0,0 +1,72 @@ +/* gchecksum.h - data hashing functions + * + * Copyright (C) 2007 Emmanuele Bassi + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * 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. + */ + +#ifndef __G_CHECKSUM_H__ +#define __G_CHECKSUM_H__ + +#include + +G_BEGIN_DECLS + +/** + * GChecksumType: + * @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 + * + * The hashing algorithm to be used by #GChecksum when performing the + * digest of some data. + * + * Note that the #GChecksumType enumeration may be extended at a later + * date to include new hashing algorithm types. + * + * Since: 2.16 + */ +typedef enum { + G_CHECKSUM_MD5, + G_CHECKSUM_SHA1, + G_CHECKSUM_SHA256 +} GChecksumType; + +typedef struct _GChecksum GChecksum; + +gssize g_checksum_type_get_length (GChecksumType checksum_type); + +GChecksum * g_checksum_new (GChecksumType checksum_type); +GChecksum * g_checksum_copy (const GChecksum *checksum); +void g_checksum_free (GChecksum *checksum); +void g_checksum_update (GChecksum *checksum, + const guchar *data, + gssize length); +G_CONST_RETURN gchar *g_checksum_get_string (GChecksum *checksum); +void g_checksum_get_digest (GChecksum *checksum, + guint8 *buffer, + gsize *digest_len); + +gchar *g_compute_checksum_for_data (GChecksumType checksum_type, + const guchar *data, + gsize length); +gchar *g_compute_checksum_for_string (GChecksumType checksum_type, + const gchar *str, + gssize length); + +G_END_DECLS + +#endif /* __G_CHECKSUM_H__ */ -- cgit