[virt-tools-list] [libosinfo 3/3] API to retrieve checksum for driver files

Zeeshan Ali (Khattak) zeeshanak at gnome.org
Wed Dec 12 14:04:04 UTC 2012

On Wed, Dec 12, 2012 at 11:13 AM, Christophe Fergeau
<cfergeau at redhat.com> wrote:
> On Wed, Dec 12, 2012 at 03:21:30AM +0200, Zeeshan Ali (Khattak) wrote:
>> From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>
>> Keeping this API agnostic of MD5 so that we can later switch to another
>> hashing alogirthm without breaking the API.
> algorithm
>>  /**
>> + * osinfo_device_driver_get_file_checksum:
>> + * @driver: a #OsinfoDeviceDriver instance
>> + * @file: The name of the driver file for which checksum is requested
>> + * @checksum_type: (out) (allow-none): place-holder to return type of the
>> + *                                     checksum into, or NULL
>> + *
>> + * Retrieves the expected checksum for the given driver file @file.
>> + *
>> + * Returns: The file checksum
>> + */
>> +const gchar *osinfo_device_driver_get_file_checksum(OsinfoDeviceDriver *driver,
>> +                                                    const gchar *file,
>> +                                                    GChecksumType *checksum_type)
> I'd prefer a
> gboolean osinfo_device_driver_check_file(OsinfoDeviceDriver *driver, const char *file, GError **error);
> rather than forcing every app to do md5/sha1/... checks by hands while we
> can easily do it for them.

Thats the idea I started with but then I thought checksum might have
some other uses. Also what if app wants/needs to check data before
pushing it into a file (this is what I'm doing in Boxes). Since glib
doesn't provide simple API for computing checksum for a file (only for
a buffer in memory), perhaps its a good idea to provide this
_check_file() API in addition to exposing checksum to app. Keep in
mind that _check_file() does I/O and therefore we must provide async
variant too then.


Zeeshan Ali (Khattak)
FSF member#5124

More information about the virt-tools-list mailing list