From: Bastian Blank Subject: [PATCH] blktap - Don't link against libcrypto Date: Sat, 28 Jun 2008 12:12:26 +0200 Message-ID: <20080628101226.GA770@wavehammer.waldi.eu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Hi folks tapdisk, part of blktap, links against libcrypto. tapdisk includes GPLv2 (tapaio.c) and other licensed code (block-qcow.c). The license of OpenSSL is considered incompatible with the GPL by many people. This patch changes them to link against libgcrypt, which is LGPL. Signed-off-by: Bastian Blank diff -r 3da148fb7d9b tools/blktap/drivers/Makefile --- a/tools/blktap/drivers/Makefile Thu Jun 19 11:09:10 2008 +0100 +++ b/tools/blktap/drivers/Makefile Sat Jun 28 12:03:24 2008 +0200 @@ -18,7 +18,7 @@ DEPS = .*.d DEPS = .*.d LDFLAGS_blktapctrl := $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) -L../lib -lblktap -LDFLAGS_img := $(LIBAIO_DIR)/libaio.a -lcrypto -lpthread -lz +LDFLAGS_img := $(LIBAIO_DIR)/libaio.a -lgcrypt -lpthread -lz BLK-OBJS-y := block-aio.o BLK-OBJS-y += block-sync.o diff -r 3da148fb7d9b tools/blktap/drivers/block-qcow.c --- a/tools/blktap/drivers/block-qcow.c Thu Jun 19 11:09:10 2008 +0100 +++ b/tools/blktap/drivers/block-qcow.c Sat Jun 28 12:03:24 2008 +0200 @@ -33,7 +33,7 @@ #include #include #include -#include +#include #include "bswap.h" #include "aes.h" #include "tapdisk.h" @@ -149,31 +149,22 @@ static uint32_t gen_cksum(char *ptr, int static uint32_t gen_cksum(char *ptr, int len) { int i; - unsigned char *md; - uint32_t ret; + uint32_t md[4]; - md = malloc(MD5_DIGEST_LENGTH); - - if(!md) return 0; - /* Convert L1 table to big endian */ for(i = 0; i < len / sizeof(uint64_t); i++) { cpu_to_be64s(&((uint64_t*) ptr)[i]); } /* Generate checksum */ - if (MD5((unsigned char *)ptr, len, md) != md) - ret = 0; - else - memcpy(&ret, md, sizeof(uint32_t)); + gcry_md_hash_buffer(GCRY_MD_MD5, md, ptr, len); /* Convert L1 table back to native endianess */ for(i = 0; i < len / sizeof(uint64_t); i++) { be64_to_cpus(&((uint64_t*) ptr)[i]); } - free(md); - return ret; + return md[0]; } static int get_filesize(char *filename, uint64_t *size, struct stat *st) -- War is never imperative. -- McCoy, "Balance of Terror", stardate 1709.2