[Forensics-changes] [SCM] debian-forensics/libewf branch, debian, updated. debian/20091003-1

Cristian Greco cristian.debian at gmail.com
Sat Oct 3 16:09:19 UTC 2009


The following commit has been merged in the debian branch:
commit 8184126909410a25ed6dccc9c5248ead337644b4
Author: Cristian Greco <cristian.debian at gmail.com>
Date:   Sat Oct 3 17:43:41 2009 +0200

    Imported Upstream version 20091003

diff --git a/ChangeLog b/ChangeLog
index 510cfe2..12e24c2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -204,6 +204,27 @@ Next stable release:
 * check into resume write error for 32-bit compile
 * check make distclean
 
+20091003
+* several fixes for Debian integration based on patches by Cristian Greco
+* corrected license in list and array type and several of the pfftool handles
+* updated libuna, libbfio
+* updated several manpages
+* changes to autoconf/make scripts to not link libcrypto and libuuid to libewf
+* renamed debian to dpkg
+
+20091001
+* small changes in common
+* made libewf a little more tollerant in allowing the data section not
+  to contain values, the values must be 0 otherwise libewf still enforces
+  validity checks
+
+20090929
+* worked on CodeGear project files
+  - disabled creation of pre compiled headers
+
+20090928
+* small changes
+
 20090927
 * worked on secondary image output
 * added open resume signal handling in ewfacquire
diff --git a/Makefile.am b/Makefile.am
index 23cd288..a4358b0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,50 +17,50 @@ SUBDIRS = \
 	borlandc \
 	msvscpp
 
-DEBIAN_FILES = \
-	debian/changelog \
-	debian/changelog.in \
-	debian/compat \
-	debian/control \
-	debian/copyright \
-	debian/cron.d.ex \
-	debian/emacsen-install.ex \
-	debian/emacsen-startup.ex \
-	debian/emacsen-remove.ex \
-	debian/init.d.ex \
-	debian/libewf.install \
-	debian/libewf.dirs \
-	debian/libewf.docs \
-	debian/libewf.postinst.debhelper \
-	debian/libewf.postrm.debhelper \
-	debian/libewf-default.ex \
-	debian/libewf-dev.dirs \
-	debian/libewf-dev.docs \
-	debian/libewf-dev.install \
-	debian/libewf-tools.dirs \
-	debian/libewf-tools.docs \
-	debian/libewf-tools.install \
-	debian/libewf.doc-base.EX \
-	debian/manpage.1.ex \
-	debian/manpage.sgml.ex \
-	debian/manpage.xml.ex \
-	debian/menu.ex \
-	debian/rules \
-	debian/postinst.ex \
-	debian/postrm.ex \
-	debian/preinst.ex \
-	debian/prerm.ex \
-	debian/shlibs.local.ex \
-	debian/shlibs.local.ex.in \
-	debian/watch.ex
+DPKG_FILES = \
+	dpkg/changelog \
+	dpkg/changelog.in \
+	dpkg/compat \
+	dpkg/control \
+	dpkg/copyright \
+	dpkg/cron.d.ex \
+	dpkg/emacsen-install.ex \
+	dpkg/emacsen-startup.ex \
+	dpkg/emacsen-remove.ex \
+	dpkg/init.d.ex \
+	dpkg/libewf.install \
+	dpkg/libewf.dirs \
+	dpkg/libewf.docs \
+	dpkg/libewf.postinst.debhelper \
+	dpkg/libewf.postrm.debhelper \
+	dpkg/libewf-default.ex \
+	dpkg/libewf-dev.dirs \
+	dpkg/libewf-dev.docs \
+	dpkg/libewf-dev.install \
+	dpkg/libewf-tools.dirs \
+	dpkg/libewf-tools.docs \
+	dpkg/libewf-tools.install \
+	dpkg/libewf.doc-base.EX \
+	dpkg/manpage.1.ex \
+	dpkg/manpage.sgml.ex \
+	dpkg/manpage.xml.ex \
+	dpkg/menu.ex \
+	dpkg/rules \
+	dpkg/postinst.ex \
+	dpkg/postrm.ex \
+	dpkg/preinst.ex \
+	dpkg/prerm.ex \
+	dpkg/shlibs.local.ex \
+	dpkg/shlibs.local.ex.in \
+	dpkg/watch.ex
 
-REDHAT_FILES = \
+SPEC_FILES = \
 	libewf.spec \
 	libewf.spec.in
 
 EXTRA_DIST = \
-	$(DEBIAN_FILES) \
-	$(REDHAT_FILES) \
+	$(DPKG_FILES) \
+	$(SPEC_FILES) \
 	libewf.pc \
 	libewf.pc.in
 
@@ -89,8 +89,8 @@ distclean: clean
 	/bin/rm -f config.log
 	/bin/rm -f libewf.pc
 	/bin/rm -f libewf.spec
-	/bin/rm -f debian/changelog
-	/bin/rm -f debian/shlibs.local.ex
+	/bin/rm -f dpkg/changelog
+	/bin/rm -f dpkg/shlibs.local.ex
 	@for dir in ${subdirs}; do \
 		(cd $$dir && $(MAKE) distclean) \
 		|| case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \
diff --git a/Makefile.in b/Makefile.in
index e8974f5..d9f01d1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -38,8 +38,8 @@ subdir = .
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(srcdir)/libewf.pc.in \
 	$(srcdir)/libewf.spec.in $(top_srcdir)/configure \
-	$(top_srcdir)/debian/changelog.in \
-	$(top_srcdir)/debian/shlibs.local.ex.in \
+	$(top_srcdir)/dpkg/changelog.in \
+	$(top_srcdir)/dpkg/shlibs.local.ex.in \
 	$(top_srcdir)/include/libewf/definitions.h.in \
 	$(top_srcdir)/include/libewf/features.h.in \
 	$(top_srcdir)/include/libewf/types.h.in AUTHORS COPYING \
@@ -58,7 +58,7 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/common/config.h
 CONFIG_CLEAN_FILES = include/libewf/definitions.h \
 	include/libewf/features.h include/libewf/types.h \
-	debian/changelog debian/shlibs.local.ex libewf.pc libewf.spec
+	dpkg/changelog dpkg/shlibs.local.ex libewf.pc libewf.spec
 CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
@@ -187,6 +187,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -194,6 +195,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
@@ -312,50 +314,50 @@ SUBDIRS = \
 	borlandc \
 	msvscpp
 
-DEBIAN_FILES = \
-	debian/changelog \
-	debian/changelog.in \
-	debian/compat \
-	debian/control \
-	debian/copyright \
-	debian/cron.d.ex \
-	debian/emacsen-install.ex \
-	debian/emacsen-startup.ex \
-	debian/emacsen-remove.ex \
-	debian/init.d.ex \
-	debian/libewf.install \
-	debian/libewf.dirs \
-	debian/libewf.docs \
-	debian/libewf.postinst.debhelper \
-	debian/libewf.postrm.debhelper \
-	debian/libewf-default.ex \
-	debian/libewf-dev.dirs \
-	debian/libewf-dev.docs \
-	debian/libewf-dev.install \
-	debian/libewf-tools.dirs \
-	debian/libewf-tools.docs \
-	debian/libewf-tools.install \
-	debian/libewf.doc-base.EX \
-	debian/manpage.1.ex \
-	debian/manpage.sgml.ex \
-	debian/manpage.xml.ex \
-	debian/menu.ex \
-	debian/rules \
-	debian/postinst.ex \
-	debian/postrm.ex \
-	debian/preinst.ex \
-	debian/prerm.ex \
-	debian/shlibs.local.ex \
-	debian/shlibs.local.ex.in \
-	debian/watch.ex
-
-REDHAT_FILES = \
+DPKG_FILES = \
+	dpkg/changelog \
+	dpkg/changelog.in \
+	dpkg/compat \
+	dpkg/control \
+	dpkg/copyright \
+	dpkg/cron.d.ex \
+	dpkg/emacsen-install.ex \
+	dpkg/emacsen-startup.ex \
+	dpkg/emacsen-remove.ex \
+	dpkg/init.d.ex \
+	dpkg/libewf.install \
+	dpkg/libewf.dirs \
+	dpkg/libewf.docs \
+	dpkg/libewf.postinst.debhelper \
+	dpkg/libewf.postrm.debhelper \
+	dpkg/libewf-default.ex \
+	dpkg/libewf-dev.dirs \
+	dpkg/libewf-dev.docs \
+	dpkg/libewf-dev.install \
+	dpkg/libewf-tools.dirs \
+	dpkg/libewf-tools.docs \
+	dpkg/libewf-tools.install \
+	dpkg/libewf.doc-base.EX \
+	dpkg/manpage.1.ex \
+	dpkg/manpage.sgml.ex \
+	dpkg/manpage.xml.ex \
+	dpkg/menu.ex \
+	dpkg/rules \
+	dpkg/postinst.ex \
+	dpkg/postrm.ex \
+	dpkg/preinst.ex \
+	dpkg/prerm.ex \
+	dpkg/shlibs.local.ex \
+	dpkg/shlibs.local.ex.in \
+	dpkg/watch.ex
+
+SPEC_FILES = \
 	libewf.spec \
 	libewf.spec.in
 
 EXTRA_DIST = \
-	$(DEBIAN_FILES) \
-	$(REDHAT_FILES) \
+	$(DPKG_FILES) \
+	$(SPEC_FILES) \
 	libewf.pc \
 	libewf.pc.in
 
@@ -406,9 +408,9 @@ include/libewf/features.h: $(top_builddir)/config.status $(top_srcdir)/include/l
 	cd $(top_builddir) && $(SHELL) ./config.status $@
 include/libewf/types.h: $(top_builddir)/config.status $(top_srcdir)/include/libewf/types.h.in
 	cd $(top_builddir) && $(SHELL) ./config.status $@
-debian/changelog: $(top_builddir)/config.status $(top_srcdir)/debian/changelog.in
+dpkg/changelog: $(top_builddir)/config.status $(top_srcdir)/dpkg/changelog.in
 	cd $(top_builddir) && $(SHELL) ./config.status $@
-debian/shlibs.local.ex: $(top_builddir)/config.status $(top_srcdir)/debian/shlibs.local.ex.in
+dpkg/shlibs.local.ex: $(top_builddir)/config.status $(top_srcdir)/dpkg/shlibs.local.ex.in
 	cd $(top_builddir) && $(SHELL) ./config.status $@
 libewf.pc: $(top_builddir)/config.status $(srcdir)/libewf.pc.in
 	cd $(top_builddir) && $(SHELL) ./config.status $@
@@ -894,8 +896,8 @@ distclean: clean
 	/bin/rm -f config.log
 	/bin/rm -f libewf.pc
 	/bin/rm -f libewf.spec
-	/bin/rm -f debian/changelog
-	/bin/rm -f debian/shlibs.local.ex
+	/bin/rm -f dpkg/changelog
+	/bin/rm -f dpkg/shlibs.local.ex
 	@for dir in ${subdirs}; do \
 		(cd $$dir && $(MAKE) distclean) \
 		|| case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \
diff --git a/borlandc/Makefile.in b/borlandc/Makefile.in
index 1490afd..63ba70f 100644
--- a/borlandc/Makefile.in
+++ b/borlandc/Makefile.in
@@ -100,6 +100,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -107,6 +108,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/borlandc/codegear/ewfacquire/ewfacquire.cbproj b/borlandc/codegear/ewfacquire/ewfacquire.cbproj
index 7c34c02..ab008b0 100644
--- a/borlandc/codegear/ewfacquire/ewfacquire.cbproj
+++ b/borlandc/codegear/ewfacquire/ewfacquire.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<_TCHARMapping>wchar_t</_TCHARMapping>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<LinkPackageStatics>rtl.lib</LinkPackageStatics>
diff --git a/borlandc/codegear/ewfacquirestream/ewfacquirestream.cbproj b/borlandc/codegear/ewfacquirestream/ewfacquirestream.cbproj
index 580b712..c6d285f 100644
--- a/borlandc/codegear/ewfacquirestream/ewfacquirestream.cbproj
+++ b/borlandc/codegear/ewfacquirestream/ewfacquirestream.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<_TCHARMapping>wchar_t</_TCHARMapping>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<LinkPackageStatics>rtl.lib</LinkPackageStatics>
diff --git a/borlandc/codegear/ewfexport/ewfexport.cbproj b/borlandc/codegear/ewfexport/ewfexport.cbproj
index ba04f2e..f44ee3f 100644
--- a/borlandc/codegear/ewfexport/ewfexport.cbproj
+++ b/borlandc/codegear/ewfexport/ewfexport.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<_TCHARMapping>wchar_t</_TCHARMapping>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<LinkPackageStatics>rtl.lib</LinkPackageStatics>
diff --git a/borlandc/codegear/ewfinfo/ewfinfo.cbproj b/borlandc/codegear/ewfinfo/ewfinfo.cbproj
index 58958a5..d997bbe 100644
--- a/borlandc/codegear/ewfinfo/ewfinfo.cbproj
+++ b/borlandc/codegear/ewfinfo/ewfinfo.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<_TCHARMapping>wchar_t</_TCHARMapping>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<LinkPackageStatics>rtl.lib</LinkPackageStatics>
diff --git a/borlandc/codegear/ewfverify/ewfverify.cbproj b/borlandc/codegear/ewfverify/ewfverify.cbproj
index b25ddc2..c19e399 100644
--- a/borlandc/codegear/ewfverify/ewfverify.cbproj
+++ b/borlandc/codegear/ewfverify/ewfverify.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<_TCHARMapping>wchar_t</_TCHARMapping>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<LinkPackageStatics>rtl.lib</LinkPackageStatics>
diff --git a/borlandc/codegear/libbfio/libbfio.cbproj b/borlandc/codegear/libbfio/libbfio.cbproj
index ace1ffe..62bbad1 100644
--- a/borlandc/codegear/libbfio/libbfio.cbproj
+++ b/borlandc/codegear/libbfio/libbfio.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<BCC_waus>false</BCC_waus>
 			<BCC_IncludePath>..\..\..\include;..\..\..\common;..\..\..\liberror;..\..\..\libuna;$(CG_BOOST_ROOT)\boost\tr1\tr1;$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;$(CG_BOOST_ROOT);$(BCC_IncludePath)</BCC_IncludePath>
diff --git a/borlandc/codegear/liberror/liberror.cbproj b/borlandc/codegear/liberror/liberror.cbproj
index a060383..0d75473 100644
--- a/borlandc/codegear/liberror/liberror.cbproj
+++ b/borlandc/codegear/liberror/liberror.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<BCC_waus>false</BCC_waus>
 			<BCC_IncludePath>..\..\..\include;..\..\..\common;$(CG_BOOST_ROOT)\boost\tr1\tr1;$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;$(CG_BOOST_ROOT);$(BCC_IncludePath)</BCC_IncludePath>
diff --git a/borlandc/codegear/libewf/libewf.cbproj b/borlandc/codegear/libewf/libewf.cbproj
index d6b4117..e1a1b66 100644
--- a/borlandc/codegear/libewf/libewf.cbproj
+++ b/borlandc/codegear/libewf/libewf.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<PackageImports>vcl.bpi;rtl.bpi;bcbie.bpi;vclx.bpi;vclactnband.bpi;xmlrtl.bpi;bcbsmp.bpi;dbrtl.bpi;vcldb.bpi;vcldbx.bpi;bdertl.bpi;dsnap.bpi;dsnapcon.bpi;TeeUI.bpi;TeeDB.bpi;Tee.bpi;adortl.bpi;IndyCore.bpi;IndySystem.bpi;IndyProtocols.bpi;dbexpress.bpi;DbxCommonDriver.bpi;DataSnapIndy10ServerTransport.bpi;DataSnapProviderClient.bpi;DataSnapServer.bpi;DbxClientDriver.bpi;DBXInterBaseDriver.bpi;DBXMySQLDriver.bpi;dbxcds.bpi;DBXSybaseASEDriver.bpi;DBXSybaseASADriver.bpi;DBXOracleDriver.bpi;DBXMSSQLDriver.bpi;DBXInformixDriver.bpi;DBXDb2Driver.bpi</PackageImports>
 			<NoVCL>true</NoVCL>
diff --git a/borlandc/codegear/libnotify/libnotify.cbproj b/borlandc/codegear/libnotify/libnotify.cbproj
index c57a48c..f16138f 100644
--- a/borlandc/codegear/libnotify/libnotify.cbproj
+++ b/borlandc/codegear/libnotify/libnotify.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<BCC_waus>false</BCC_waus>
 			<BCC_IncludePath>..\..\..\include;..\..\..\common;..\..\..\liberror;$(CG_BOOST_ROOT)\boost\tr1\tr1;$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;$(CG_BOOST_ROOT);$(BCC_IncludePath)</BCC_IncludePath>
diff --git a/borlandc/codegear/libsystem/libsystem.cbproj b/borlandc/codegear/libsystem/libsystem.cbproj
index 51b4670..962ff86 100644
--- a/borlandc/codegear/libsystem/libsystem.cbproj
+++ b/borlandc/codegear/libsystem/libsystem.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<_TCHARMapping>wchar_t</_TCHARMapping>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<BCC_waus>false</BCC_waus>
diff --git a/borlandc/codegear/libuna/libuna.cbproj b/borlandc/codegear/libuna/libuna.cbproj
index ece4d0d..e7b60bd 100644
--- a/borlandc/codegear/libuna/libuna.cbproj
+++ b/borlandc/codegear/libuna/libuna.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<BCC_waus>false</BCC_waus>
 			<BCC_IncludePath>..\..\..\include;..\..\..\common;..\..\..\liberror;$(CG_BOOST_ROOT)\boost\tr1\tr1;$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;$(CG_BOOST_ROOT);$(BCC_IncludePath)</BCC_IncludePath>
@@ -35,154 +37,162 @@
 			<TASM_Debugging>None</TASM_Debugging>
 		</PropertyGroup>
 		<ItemGroup>
-			<None Include="..\..\..\libuna\libuna_codepage_windows_1257.h">
-			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1258.c">
-			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_windows_1256.h">
-			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1257.c">
+			<CppCompile Include="..\..\..\libuna\libuna_byte_stream.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_windows_1258.h">
+			<None Include="..\..\..\libuna\libuna_byte_stream.h">
 			</None>
-			<None Include="..\..\..\libuna\libuna_definitions.h">
+			<None Include="..\..\..\libuna\libuna_codepage_ascii.h">
 			</None>
-			<None Include="..\..\..\libuna\libuna_error.h">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_1.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_compare.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_2.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_compare.h">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_2.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1253.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_3.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_windows_1253.h">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_3.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1252.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_4.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_windows_1252.h">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_4.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1254.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_5.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_windows_1255.h">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_5.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1256.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_6.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_windows_1254.h">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_6.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1255.c">
-			</CppCompile>
-			<CppCompile Include="..\..\..\libuna\libuna_utf16_stream.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_7.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_utf16_stream.h">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_7.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_utf8_string.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_8.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_utf8_string.h">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_8.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_utf16_string.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_9.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_utf32_stream.h">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_9.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_utf32_string.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_10.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_utf16_string.h">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_10.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_utf32_stream.c">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_11.h">
+			</None>
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_13.c">
 			</CppCompile>
-			<CppCompile Include="..\..\..\libuna\libuna_support.c">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_13.h">
+			</None>
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_14.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_support.h">
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_14.h">
 			</None>
-			<None Include="..\..\..\libuna\libuna_extern.h">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_15.c">
+			</CppCompile>
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_15.h">
 			</None>
-			<None Include="..\..\..\libuna\libuna_inline.h">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_16.c">
+			</CppCompile>
+			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_16.h">
 			</None>
-			<None Include="..\..\..\libuna\libuna_types.h">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_koi8_r.c">
+			</CppCompile>
+			<None Include="..\..\..\libuna\libuna_codepage_koi8_r.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_utf8_stream.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_koi8_u.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_utf8_stream.h">
+			<None Include="..\..\..\libuna\libuna_codepage_koi8_u.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_unicode_character.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_874.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_unicode_character.h">
+			<None Include="..\..\..\libuna\libuna_codepage_windows_874.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_5.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1250.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_5.h">
+			<None Include="..\..\..\libuna\libuna_codepage_windows_1250.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_4.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1251.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_4.h">
+			<None Include="..\..\..\libuna\libuna_codepage_windows_1251.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_6.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1252.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_7.h">
+			<None Include="..\..\..\libuna\libuna_codepage_windows_1252.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_8.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1253.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_6.h">
+			<None Include="..\..\..\libuna\libuna_codepage_windows_1253.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_7.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1254.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_byte_stream.h">
+			<None Include="..\..\..\libuna\libuna_codepage_windows_1254.h">
 			</None>
-			<None Include="..\..\..\libuna\libuna_codepage_ascii.h">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1255.c">
+			</CppCompile>
+			<None Include="..\..\..\libuna\libuna_codepage_windows_1255.h">
 			</None>
-			<None Include="..\..\..\libuna\libuna_utf32_string.h">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1256.c">
+			</CppCompile>
+			<None Include="..\..\..\libuna\libuna_codepage_windows_1256.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_byte_stream.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1257.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_1.h">
+			<None Include="..\..\..\libuna\libuna_codepage_windows_1257.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_3.c">
+			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1258.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_3.h">
+			<None Include="..\..\..\libuna\libuna_codepage_windows_1258.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_2.c">
+			<CppCompile Include="..\..\..\libuna\libuna_compare.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_2.h">
+			<None Include="..\..\..\libuna\libuna_compare.h">
 			</None>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_15.h">
+			<None Include="..\..\..\libuna\libuna_definitions.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_16.c">
-			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_14.h">
+			<None Include="..\..\..\libuna\libuna_error.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_15.c">
-			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_16.h">
+			<None Include="..\..\..\libuna\libuna_extern.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1251.c">
-			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_windows_1251.h">
+			<None Include="..\..\..\libuna\libuna_inline.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_1250.c">
+			<CppCompile Include="..\..\..\libuna\libuna_support.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_windows_1250.h">
+			<None Include="..\..\..\libuna\libuna_support.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_windows_874.c">
+			<None Include="..\..\..\libuna\libuna_types.h">
+			</None>
+			<CppCompile Include="..\..\..\libuna\libuna_unicode_character.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_windows_874.h">
+			<None Include="..\..\..\libuna\libuna_unicode_character.h">
 			</None>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_9.h">
+			<CppCompile Include="..\..\..\libuna\libuna_utf8_stream.c">
+			</CppCompile>
+			<None Include="..\..\..\libuna\libuna_utf8_stream.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_10.c">
+			<CppCompile Include="..\..\..\libuna\libuna_utf8_string.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_8.h">
+			<None Include="..\..\..\libuna\libuna_utf8_string.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_9.c">
+			<CppCompile Include="..\..\..\libuna\libuna_utf16_stream.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_10.h">
+			<None Include="..\..\..\libuna\libuna_utf16_stream.h">
 			</None>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_13.h">
+			<CppCompile Include="..\..\..\libuna\libuna_utf16_string.c">
+			</CppCompile>
+			<None Include="..\..\..\libuna\libuna_utf16_string.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_14.c">
+			<CppCompile Include="..\..\..\libuna\libuna_utf32_stream.c">
 			</CppCompile>
-			<None Include="..\..\..\libuna\libuna_codepage_iso_8859_11.h">
+			<None Include="..\..\..\libuna\libuna_utf32_stream.h">
 			</None>
-			<CppCompile Include="..\..\..\libuna\libuna_codepage_iso_8859_13.c">
+			<CppCompile Include="..\..\..\libuna\libuna_utf32_string.c">
 			</CppCompile>
+			<None Include="..\..\..\libuna\libuna_utf32_string.h">
+			</None>
 			<BuildConfiguration Include="Base">
 				<Key>Base</Key>
 			</BuildConfiguration>
diff --git a/borlandc/codegear/zlib/zlib.cbproj b/borlandc/codegear/zlib/zlib.cbproj
index 13b69e3..e3631e7 100644
--- a/borlandc/codegear/zlib/zlib.cbproj
+++ b/borlandc/codegear/zlib/zlib.cbproj
@@ -13,6 +13,8 @@
 			<Base>true</Base>
 		</PropertyGroup>
 		<PropertyGroup Condition="'$(Base)'!=''">
+			<BCC_SmartPCHCache>false</BCC_SmartPCHCache>
+			<BCC_PCHUsage>None</BCC_PCHUsage>
 			<FinalOutputDir>..\Release</FinalOutputDir>
 			<PackageImports>vcl.bpi;rtl.bpi;bcbie.bpi;vclx.bpi;vclactnband.bpi;xmlrtl.bpi;bcbsmp.bpi;dbrtl.bpi;vcldb.bpi;vcldbx.bpi;bdertl.bpi;dsnap.bpi;dsnapcon.bpi;TeeUI.bpi;TeeDB.bpi;Tee.bpi;adortl.bpi;IndyCore.bpi;IndySystem.bpi;IndyProtocols.bpi;dbexpress.bpi;DbxCommonDriver.bpi;DataSnapIndy10ServerTransport.bpi;DataSnapProviderClient.bpi;DataSnapServer.bpi;DbxClientDriver.bpi;DBXInterBaseDriver.bpi;DBXMySQLDriver.bpi;dbxcds.bpi;DBXSybaseASEDriver.bpi;DBXSybaseASADriver.bpi;DBXOracleDriver.bpi;DBXMSSQLDriver.bpi;DBXInformixDriver.bpi;DBXDb2Driver.bpi</PackageImports>
 			<NoVCL>true</NoVCL>
diff --git a/common/Makefile.in b/common/Makefile.in
index 2dc884b..f1b4a12 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -123,6 +123,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -130,6 +131,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/common/config.h b/common/config.h
index 99b0bde..04e22d8 100644
--- a/common/config.h
+++ b/common/config.h
@@ -10,7 +10,7 @@
 /* Define to 1 if you have the `close' function. */
 #define HAVE_CLOSE 1
 
-/* Defines if compressBound funtion is present in zlib. */
+/* Define to 1 if compressBound funtion is available in zlib. */
 #define HAVE_COMPRESS_BOUND 1
 
 /* Define to 1 if you have the `ctime' function. */
@@ -28,7 +28,7 @@
 /* Define to 1 if you have the <cygwin/hdreg.h> header file. */
 /* #undef HAVE_CYGWIN_HDREG_H */
 
-/* Defines if debug output should be used */
+/* Define to 1 if debug output should be used. */
 /* #undef HAVE_DEBUG_OUTPUT */
 
 /* Define to 1 if you have the declaration of `memrchr', and to 0 if you
@@ -108,7 +108,7 @@
 /* Define to 1 if you have the <libbfio.h> header file. */
 /* #undef HAVE_LIBBFIO_H */
 
-/* Define to 1 if you have the `crypto' library (-lcrypto). */
+/* Define to 1 if you have the 'crypto' library (-lcrypto). */
 #define HAVE_LIBCRYPTO 1
 
 /* Define to 1 if you have the `una' library (-luna). */
@@ -156,8 +156,8 @@
 /* Define to 1 if the local version of libuna is used. */
 #define HAVE_LOCAL_LIBUNA 1
 
-/* Defines if libewf's low level read and write functions should be used in
-   the ewf tools */
+/* Define to 1 if libewfs low level read and write functions should be used in
+   the ewf tools. */
 /* #undef HAVE_LOW_LEVEL_FUNCTIONS */
 
 /* Define to 1 if you have the `lseek' function. */
@@ -331,25 +331,25 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #define HAVE_UNISTD_H 1
 
-/* Defines if uuid_generate_random funtion is present. */
+/* Define to 1 if uuid_generate_random funtion is available. */
 #define HAVE_UUID_GENERATE_RANDOM 1
 
-/* Defines if uuid_generate_time funtion is present. */
+/* Define to 1 if uuid_generate_time funtion is available. */
 #define HAVE_UUID_GENERATE_TIME 1
 
 /* Define to 1 if you have the <uuid/uuid.h> header file. */
 #define HAVE_UUID_UUID_H 1
 
-/* Defines if experimental version 1 API should be used */
+/* Define to 1 if experimental version 1 API should be used. */
 #define HAVE_V1_API 1
 
-/* Defines if experimental version 2 API should be used */
+/* Define to 1 if experimental version 2 API should be used. */
 /* #undef HAVE_V2_API */
 
 /* Define to 1 if you have the <varargs.h> header file. */
 /* #undef HAVE_VARARGS_H */
 
-/* Defines if verbose output should be used */
+/* Define to 1 if verbose output should be used. */
 /* #undef HAVE_VERBOSE_OUTPUT */
 
 /* Define to 1 if you have the `vfprintf' function. */
@@ -394,7 +394,7 @@
 /* Define to 1 if you have the `wcstoull' function. */
 /* #undef HAVE_WCSTOULL */
 
-/* Defines if wide character type should be used */
+/* Define to 1 if wide character type should be used. */
 /* #undef HAVE_WIDE_CHARACTER_TYPE */
 
 /* Define to 1 if you have the `wmemchr' function. */
@@ -432,13 +432,13 @@
 #define PACKAGE_NAME "libewf"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libewf 20090927"
+#define PACKAGE_STRING "libewf 20091003"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "libewf"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "20090927"
+#define PACKAGE_VERSION "20091003"
 
 /* The size of `off_t', as computed by sizeof. */
 #define SIZEOF_OFF_T 8
@@ -462,7 +462,7 @@
 /* #undef TM_IN_SYS_TIME */
 
 /* Version number of package */
-#define VERSION "20090927"
+#define VERSION "20091003"
 
 /* Number of bits in a file offset, on hosts where this is settable. */
 /* #undef _FILE_OFFSET_BITS */
diff --git a/common/config.h.in b/common/config.h.in
index 694d81e..3cbcd13 100644
--- a/common/config.h.in
+++ b/common/config.h.in
@@ -9,7 +9,7 @@
 /* Define to 1 if you have the `close' function. */
 #undef HAVE_CLOSE
 
-/* Defines if compressBound funtion is present in zlib. */
+/* Define to 1 if compressBound funtion is available in zlib. */
 #undef HAVE_COMPRESS_BOUND
 
 /* Define to 1 if you have the `ctime' function. */
@@ -27,7 +27,7 @@
 /* Define to 1 if you have the <cygwin/hdreg.h> header file. */
 #undef HAVE_CYGWIN_HDREG_H
 
-/* Defines if debug output should be used */
+/* Define to 1 if debug output should be used. */
 #undef HAVE_DEBUG_OUTPUT
 
 /* Define to 1 if you have the declaration of `memrchr', and to 0 if you
@@ -107,7 +107,7 @@
 /* Define to 1 if you have the <libbfio.h> header file. */
 #undef HAVE_LIBBFIO_H
 
-/* Define to 1 if you have the `crypto' library (-lcrypto). */
+/* Define to 1 if you have the 'crypto' library (-lcrypto). */
 #undef HAVE_LIBCRYPTO
 
 /* Define to 1 if you have the `una' library (-luna). */
@@ -155,8 +155,8 @@
 /* Define to 1 if the local version of libuna is used. */
 #undef HAVE_LOCAL_LIBUNA
 
-/* Defines if libewf's low level read and write functions should be used in
-   the ewf tools */
+/* Define to 1 if libewfs low level read and write functions should be used in
+   the ewf tools. */
 #undef HAVE_LOW_LEVEL_FUNCTIONS
 
 /* Define to 1 if you have the `lseek' function. */
@@ -330,25 +330,25 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
-/* Defines if uuid_generate_random funtion is present. */
+/* Define to 1 if uuid_generate_random funtion is available. */
 #undef HAVE_UUID_GENERATE_RANDOM
 
-/* Defines if uuid_generate_time funtion is present. */
+/* Define to 1 if uuid_generate_time funtion is available. */
 #undef HAVE_UUID_GENERATE_TIME
 
 /* Define to 1 if you have the <uuid/uuid.h> header file. */
 #undef HAVE_UUID_UUID_H
 
-/* Defines if experimental version 1 API should be used */
+/* Define to 1 if experimental version 1 API should be used. */
 #undef HAVE_V1_API
 
-/* Defines if experimental version 2 API should be used */
+/* Define to 1 if experimental version 2 API should be used. */
 #undef HAVE_V2_API
 
 /* Define to 1 if you have the <varargs.h> header file. */
 #undef HAVE_VARARGS_H
 
-/* Defines if verbose output should be used */
+/* Define to 1 if verbose output should be used. */
 #undef HAVE_VERBOSE_OUTPUT
 
 /* Define to 1 if you have the `vfprintf' function. */
@@ -393,7 +393,7 @@
 /* Define to 1 if you have the `wcstoull' function. */
 #undef HAVE_WCSTOULL
 
-/* Defines if wide character type should be used */
+/* Define to 1 if wide character type should be used. */
 #undef HAVE_WIDE_CHARACTER_TYPE
 
 /* Define to 1 if you have the `wmemchr' function. */
diff --git a/common/narrow_string.h b/common/narrow_string.h
index d92e763..d4bcb01 100644
--- a/common/narrow_string.h
+++ b/common/narrow_string.h
@@ -194,9 +194,11 @@ extern "C" {
 #define narrow_string_vsnprintf( string, size, format, ... ) \
 	g_vsnprintf( string, size, format, __VA_ARGS__ )
 
+/* This definition causes problems
 #elif defined( _MSC_VER )
 #define narrow_string_vsnprintf( string, size, format, ... ) \
-	_vsnprintf( string, size, format, __VA_ARGS__ )
+	_vsnprintf_s( string, size, size, format, __VA_ARGS__ )
+*/
 
 #elif defined( HAVE_VSNPRINTF ) || defined( WINAPI )
 #define narrow_string_vsnprintf( string, size, format, ... ) \
diff --git a/configure b/configure
index f48d569..6cdb00d 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for libewf 20090927.
+# Generated by GNU Autoconf 2.63 for libewf 20091003.
 #
 # Report bugs to <forensics at hoffmannbv.nl>.
 #
@@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='libewf'
 PACKAGE_TARNAME='libewf'
-PACKAGE_VERSION='20090927'
-PACKAGE_STRING='libewf 20090927'
+PACKAGE_VERSION='20091003'
+PACKAGE_STRING='libewf 20091003'
 PACKAGE_BUGREPORT='forensics at hoffmannbv.nl'
 
 ac_unique_file="include/libewf.h.in"
@@ -821,6 +821,8 @@ HAVE_WIDE_CHARACTER_TYPE
 HAVE_WCHAR_H
 libewf_spec_build_requires_libuuid
 libewf_spec_requires_libuuid
+LIBUUID_LIBADD
+LIBCRYPTO_LIBADD
 HAVE_OPENSSL_EVP_H
 HAVE_LOCAL_LIBBFIO_FALSE
 HAVE_LOCAL_LIBBFIO_TRUE
@@ -1536,7 +1538,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libewf 20090927 to adapt to many kinds of systems.
+\`configure' configures libewf 20091003 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1606,7 +1608,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libewf 20090927:";;
+     short | recursive ) echo "Configuration of libewf 20091003:";;
    esac
   cat <<\_ACEOF
 
@@ -1721,7 +1723,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libewf configure 20090927
+libewf configure 20091003
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1735,7 +1737,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libewf $as_me 20090927, which was
+It was created by libewf $as_me 20091003, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2587,7 +2589,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=libewf
- VERSION=20090927
+ VERSION=20091003
 
 
 cat >>confdefs.h <<_ACEOF
@@ -6474,13 +6476,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:6477: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:6479: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:6480: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:6482: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:6483: output\"" >&5)
+  (eval echo "\"\$as_me:6485: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -7682,7 +7684,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 7685 "configure"' > conftest.$ac_ext
+  echo '#line 7687 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -9300,11 +9302,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9303: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9305: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9307: \$? = $ac_status" >&5
+   echo "$as_me:9309: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9639,11 +9641,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9642: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9644: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9646: \$? = $ac_status" >&5
+   echo "$as_me:9648: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9744,11 +9746,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9747: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9749: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9751: \$? = $ac_status" >&5
+   echo "$as_me:9753: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9799,11 +9801,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9802: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9804: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9806: \$? = $ac_status" >&5
+   echo "$as_me:9808: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -12602,7 +12604,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12605 "configure"
+#line 12607 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12698,7 +12700,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12701 "configure"
+#line 12703 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -33038,8 +33040,7 @@ done
 
 if test "x$ac_libewf_have_libcrypto_evp" != xno; then
   ac_libewf_have_libcrypto_evp=yes
-
-{ $as_echo "$as_me:$LINENO: checking for EVP_md5 in -lcrypto" >&5
+	{ $as_echo "$as_me:$LINENO: checking for EVP_md5 in -lcrypto" >&5
 $as_echo_n "checking for EVP_md5 in -lcrypto... " >&6; }
 if test "${ac_cv_lib_crypto_EVP_md5+set}" = set; then
   $as_echo_n "(cached) " >&6
@@ -33105,12 +33106,13 @@ fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_EVP_md5" >&5
 $as_echo "$ac_cv_lib_crypto_EVP_md5" >&6; }
 if test "x$ac_cv_lib_crypto_EVP_md5" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
+  LIBCRYPTO_LIBADD=-lcrypto
+
+
+cat >>confdefs.h <<\_ACEOF
 #define HAVE_LIBCRYPTO 1
 _ACEOF
 
-  LIBS="-lcrypto $LIBS"
-
 else
   ac_libewf_have_libcrypto_evp=no
 fi
@@ -33716,8 +33718,7 @@ fi
 
 if test "x$ac_libewf_have_libcrypto_md5" != xno && test "x$ac_libewf_have_libcrypto_md5" != xevp ; then
   ac_libewf_have_libcrypto_md5=yes
-
-{ $as_echo "$as_me:$LINENO: checking for MD5_Init in -lcrypto" >&5
+	{ $as_echo "$as_me:$LINENO: checking for MD5_Init in -lcrypto" >&5
 $as_echo_n "checking for MD5_Init in -lcrypto... " >&6; }
 if test "${ac_cv_lib_crypto_MD5_Init+set}" = set; then
   $as_echo_n "(cached) " >&6
@@ -33783,12 +33784,13 @@ fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_MD5_Init" >&5
 $as_echo "$ac_cv_lib_crypto_MD5_Init" >&6; }
 if test "x$ac_cv_lib_crypto_MD5_Init" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
+  LIBCRYPTO_LIBADD=-lcrypto
+
+
+cat >>confdefs.h <<\_ACEOF
 #define HAVE_LIBCRYPTO 1
 _ACEOF
 
-  LIBS="-lcrypto $LIBS"
-
 else
   ac_libewf_have_libcrypto_md5=no
 fi
@@ -34571,7 +34573,13 @@ fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_uuid_generate" >&5
 $as_echo "$ac_cv_func_uuid_generate" >&6; }
 if test "x$ac_cv_func_uuid_generate" = x""yes; then
-  :
+  LIBUUID_LIBADD=-luuid
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBUUID 1
+_ACEOF
+
 else
   ac_libewf_have_guid_support=libuuid
 
@@ -37848,9 +37856,9 @@ ac_config_files="$ac_config_files libewf/libewf_definitions.h"
 
 ac_config_files="$ac_config_files common/types.h"
 
-ac_config_files="$ac_config_files debian/changelog"
+ac_config_files="$ac_config_files dpkg/changelog"
 
-ac_config_files="$ac_config_files debian/shlibs.local.ex"
+ac_config_files="$ac_config_files dpkg/shlibs.local.ex"
 
 ac_config_files="$ac_config_files macosx/Introduction.rtf"
 
@@ -38351,7 +38359,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libewf $as_me 20090927, which was
+This file was extended by libewf $as_me 20091003, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -38414,7 +38422,7 @@ Report bugs to <bug-autoconf at gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-libewf config.status 20090927
+libewf config.status 20091003
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -38817,8 +38825,8 @@ do
     "include/libewf/types.h") CONFIG_FILES="$CONFIG_FILES include/libewf/types.h" ;;
     "libewf/libewf_definitions.h") CONFIG_FILES="$CONFIG_FILES libewf/libewf_definitions.h" ;;
     "common/types.h") CONFIG_FILES="$CONFIG_FILES common/types.h" ;;
-    "debian/changelog") CONFIG_FILES="$CONFIG_FILES debian/changelog" ;;
-    "debian/shlibs.local.ex") CONFIG_FILES="$CONFIG_FILES debian/shlibs.local.ex" ;;
+    "dpkg/changelog") CONFIG_FILES="$CONFIG_FILES dpkg/changelog" ;;
+    "dpkg/shlibs.local.ex") CONFIG_FILES="$CONFIG_FILES dpkg/shlibs.local.ex" ;;
     "macosx/Introduction.rtf") CONFIG_FILES="$CONFIG_FILES macosx/Introduction.rtf" ;;
     "libewf.pc") CONFIG_FILES="$CONFIG_FILES libewf.pc" ;;
     "libewf.spec") CONFIG_FILES="$CONFIG_FILES libewf.spec" ;;
diff --git a/configure.ac b/configure.ac
index 76a9d12..bd80176 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ( 2.59 )
 
 AC_INIT(
  [libewf],
- [20090927],
+ [20091003],
  [forensics at hoffmannbv.nl])
 
 AC_CONFIG_SRCDIR(
@@ -10,7 +10,7 @@ AC_CONFIG_SRCDIR(
 
 AM_INIT_AUTOMAKE(
  [libewf],
- [20090927])
+ [20091003])
 
 AC_CONFIG_MACRO_DIR([m4])
 
@@ -609,7 +609,7 @@ AC_CHECK_LIB(
  [AC_DEFINE(
   [HAVE_COMPRESS_BOUND],
   [1],
-  [Defines if compressBound funtion is present in zlib.])])
+  [Define to 1 if compressBound funtion is available in zlib.])])
 
 AC_CHECK_LIB(
  z,
@@ -1165,7 +1165,13 @@ AS_IF(
 	AC_CHECK_LIB(
 	 crypto,
 	 EVP_md5,
-	 [],
+	 [AC_SUBST(
+	  [LIBCRYPTO_LIBADD],
+	  [-lcrypto])
+	 AC_DEFINE(
+	  [HAVE_LIBCRYPTO],
+	  [1],
+	  [Define to 1 if you have the 'crypto' library (-lcrypto).]) ],
 	 [ac_libewf_have_libcrypto_evp=no])
 	AC_CHECK_LIB(
 	 crypto,
@@ -1203,7 +1209,7 @@ AS_IF(
 	[test "x$ac_libewf_have_libcrypto_evp" = xno],
 	[AC_SUBST(
 	 [HAVE_OPENSSL_EVP_H],
-	 [0])] )
+	 [0]) ])
 
 AS_IF(
 	[test "x$ac_libewf_have_libcrypto_evp" = xyes],
@@ -1224,7 +1230,13 @@ AS_IF(
 	AC_CHECK_LIB(
 	 crypto,
 	 MD5_Init,
-	 [],
+	 [AC_SUBST(
+	  [LIBCRYPTO_LIBADD],
+	  [-lcrypto])
+	 AC_DEFINE(
+	  [HAVE_LIBCRYPTO],
+	  [1],
+	  [Define to 1 if you have the 'crypto' library (-lcrypto).]) ],
 	 [ac_libewf_have_libcrypto_md5=no])
 	AC_CHECK_LIB(
 	 crypto,
@@ -1289,7 +1301,13 @@ AS_IF(
 	[ac_libewf_have_guid_support=native
 	AC_CHECK_FUNC(
 	 [uuid_generate],
-	 [],
+	 [AC_SUBST(
+	  [LIBUUID_LIBADD],
+	  [-luuid])
+	 AC_DEFINE(
+	  [HAVE_LIBUUID],
+	  [1],
+	  [Define to 1 if you have the 'uuid' library (-luuid).]) ],
 	 [ac_libewf_have_guid_support=libuuid
 	  AC_CHECK_LIB(
 	  [uuid],
@@ -1315,7 +1333,7 @@ AS_IF(
 	 [AC_DEFINE(
 	  [HAVE_UUID_GENERATE_RANDOM],
 	  [1],
-	  [Defines if uuid_generate_random funtion is present in libuuid.])
+	  [Define to 1 if uuid_generate_random funtion is available in libuuid.])
 	 ])
 	AC_CHECK_LIB(
 	 [uuid],
@@ -1323,7 +1341,7 @@ AS_IF(
 	 [AC_DEFINE(
 	  [HAVE_UUID_GENERATE_TIME],
 	  [1],
-	  [Defines if uuid_generate_time funtion is present in libuuid.])
+	  [Define to 1 if uuid_generate_time funtion is available in libuuid.])
 	 ])
 	])
 
@@ -1334,14 +1352,14 @@ AS_IF(
 	 [AC_DEFINE(
 	  [HAVE_UUID_GENERATE_RANDOM],
 	  [1],
-	  [Defines if uuid_generate_random funtion is present.])
+	  [Define to 1 if uuid_generate_random funtion is available.])
 	 ])
 	AC_CHECK_FUNC(
 	 [uuid_generate_time],
 	 [AC_DEFINE(
 	  [HAVE_UUID_GENERATE_TIME],
 	  [1],
-	  [Defines if uuid_generate_time funtion is present.])
+	  [Define to 1 if uuid_generate_time funtion is available.])
 	 ])
 	])
 
@@ -1481,7 +1499,7 @@ AS_IF(
 	AC_DEFINE(
 	 [HAVE_WIDE_CHARACTER_TYPE],
 	 [1],
-	 [Defines if wide character type should be used])
+	 [Define to 1 if wide character type should be used.])
 	AC_SUBST(
 	 [HAVE_WIDE_CHARACTER_TYPE],
 	 [1])
@@ -1508,7 +1526,7 @@ AS_IF(
 	[AC_DEFINE(
 	 [HAVE_LOW_LEVEL_FUNCTIONS],
 	 [1],
-	 [Defines if libewf's low level read and write functions should be used in the ewf tools] )
+	 [Define to 1 if libewfs low level read and write functions should be used in the ewf tools.])
 	ac_cv_libewf_enable_low_level_functions=yes])
 
 dnl Check if libewf should be build with verbose output
@@ -1517,7 +1535,7 @@ AS_IF(
 	[AC_DEFINE(
 	 [HAVE_VERBOSE_OUTPUT],
 	 [1],
-	 [Defines if verbose output should be used] )
+	 [Define to 1 if verbose output should be used.])
 	ac_cv_libewf_enable_verbose_output=yes])
 
 dnl Check if libewf should be build with debug output
@@ -1526,7 +1544,7 @@ AS_IF(
 	[AC_DEFINE(
 	 [HAVE_DEBUG_OUTPUT],
 	 [1],
-	 [Defines if debug output should be used] )
+	 [Define to 1 if debug output should be used.])
 	ac_cv_libewf_enable_debug_output=yes])
 
 dnl Check if libewf python bindings (pyewf) should be built
@@ -1550,7 +1568,7 @@ AS_IF(
 	[AC_DEFINE(
 	 [HAVE_V1_API],
 	 [1],
-	 [Defines if experimental version 1 API should be used] )
+	 [Define to 1 if experimental version 1 API should be used.])
 	AC_SUBST(
 	 [HAVE_V1_API],
 	 [1])
@@ -1569,7 +1587,7 @@ AS_IF(
 	[AC_DEFINE(
 	 [HAVE_V2_API],
 	 [1],
-	 [Defines if experimental version 2 API should be used] )
+	 [Define to 1 if experimental version 2 API should be used.])
 	AC_SUBST(
 	 [HAVE_V2_API],
 	 [1])
@@ -1641,8 +1659,8 @@ AC_CONFIG_FILES([include/libewf/types.h])
 AC_CONFIG_FILES([libewf/libewf_definitions.h])
 dnl Have configure make distribution specific files
 AC_CONFIG_FILES([common/types.h])
-AC_CONFIG_FILES([debian/changelog])
-AC_CONFIG_FILES([debian/shlibs.local.ex])
+AC_CONFIG_FILES([dpkg/changelog])
+AC_CONFIG_FILES([dpkg/shlibs.local.ex])
 AC_CONFIG_FILES([macosx/Introduction.rtf])
 AC_CONFIG_FILES([libewf.pc])
 AC_CONFIG_FILES([libewf.spec])
diff --git a/documents/Makefile.in b/documents/Makefile.in
index 37d4fad..56c132c 100644
--- a/documents/Makefile.in
+++ b/documents/Makefile.in
@@ -100,6 +100,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -107,6 +108,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/dpkg/changelog b/dpkg/changelog
new file mode 100644
index 0000000..265719c
--- /dev/null
+++ b/dpkg/changelog
@@ -0,0 +1,7 @@
+libewf (20091003-1) unstable; urgency=low
+
+  * Initial release
+  * First version of libewf debian package based on work by Guy Voncken
+
+ -- Joachim Metz <forensics at hoffmannbv.nl>  Sat, 15 Sep 2007 11:44:14 +0200
+
diff --git a/dpkg/changelog.in b/dpkg/changelog.in
new file mode 100644
index 0000000..b851d21
--- /dev/null
+++ b/dpkg/changelog.in
@@ -0,0 +1,7 @@
+libewf (@VERSION at -1) unstable; urgency=low
+
+  * Initial release
+  * First version of libewf debian package based on work by Guy Voncken
+
+ -- Joachim Metz <forensics at hoffmannbv.nl>  Sat, 15 Sep 2007 11:44:14 +0200
+
diff --git a/dpkg/compat b/dpkg/compat
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/dpkg/compat
@@ -0,0 +1 @@
+5
diff --git a/dpkg/control b/dpkg/control
new file mode 100644
index 0000000..d113d13
--- /dev/null
+++ b/dpkg/control
@@ -0,0 +1,32 @@
+Source: libewf
+Priority: extra
+Maintainer: Joachim Metz <forensics at hoffmannbv.nl>
+Build-Depends: debhelper (>= 5), autotools-dev, libc6, libc6-dev, linux-kernel-headers, zlib1g-dev, libssl-dev, uuid-dev
+Standards-Version: 3.7.2
+Section: libs
+
+Package: libewf
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}
+Description: Library and tools to support the Expert Witness Compression Format
+ libewf is library for support of the Expert Witness Compression Format (EWF).
+ libewf allows you to read media information of EWF files in the SMART (EWF-S01)
+ format and the EnCase (EWF-E01) format. libewf allows to read files created by
+ EnCase 1 to 6, linen and FTK Imager.
+
+Package: libewf-dev
+Section: libdevel
+Architecture: any
+Depends: libewf (= ${Source-Version})
+Description: Header files and libraries for developing applications for libewf
+ Header files and libraries for developing applications for libewf.
+
+Package: libewf-tools
+Section: utils
+Architecture: any
+Depends: libewf (= ${Source-Version}), ${shlibs:Depends}
+Description: Several tools for reading and writing EWF files
+ Several tools for reading and writing EWF files.
+ It contains tools to acquire, verify and export EWF files.
+
diff --git a/dpkg/copyright b/dpkg/copyright
new file mode 100644
index 0000000..0bb30dc
--- /dev/null
+++ b/dpkg/copyright
@@ -0,0 +1,33 @@
+This package was debianized by Joachim Metz <forensics at hoffmannbv.nl> on
+Sat, 15 Sep 2007 09:27:14 +0200.
+
+It was downloaded from http://libewf.sourceforge.net
+
+Upstream Author: Joachim Metz <forensics at hoffmannbv.nl>
+
+Copyright (c) 2006-2008, Joachim Metz <forensics at hoffmannbv.nl>,
+Hoffmann Investigations. All rights reserved.
+
+License:
+
+This software is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+ 
+This software 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.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this software.  If not, see <http://www.gnu.org/licenses/>.
+
+
+On Debian systems, the complete text of the LPGL License can be 
+found in `/usr/share/common-licenses/LPGL'.
+
+
+The Debian packaging is (C) 2007-2008, Joachim Metz <forensics at hoffmannbv.nl> and
+is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
+
diff --git a/dpkg/cron.d.ex b/dpkg/cron.d.ex
new file mode 100644
index 0000000..c3a4d27
--- /dev/null
+++ b/dpkg/cron.d.ex
@@ -0,0 +1,4 @@
+#
+# Regular cron jobs for the libewf package
+#
+0 4	* * *	root	libewf_maintenance
diff --git a/dpkg/emacsen-install.ex b/dpkg/emacsen-install.ex
new file mode 100644
index 0000000..43521e6
--- /dev/null
+++ b/dpkg/emacsen-install.ex
@@ -0,0 +1,45 @@
+#! /bin/sh -e
+# /usr/lib/emacsen-common/packages/install/libewf
+
+# Written by Jim Van Zandt <jrv at debian.org>, borrowing heavily
+# from the install scripts for gettext by Santiago Vila
+# <sanvila at ctv.es> and octave by Dirk Eddelbuettel <edd at debian.org>.
+
+FLAVOR=$1
+PACKAGE=libewf
+
+if [ ${FLAVOR} = emacs ]; then exit 0; fi
+
+echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR}
+
+#FLAVORTEST=`echo $FLAVOR | cut -c-6`
+#if [ ${FLAVORTEST} = xemacs ] ; then
+#    SITEFLAG="-no-site-file"
+#else
+#    SITEFLAG="--no-site-file"
+#fi
+FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile"
+
+ELDIR=/usr/share/emacs/site-lisp/${PACKAGE}
+ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+
+# Install-info-altdir does not actually exist. 
+# Maybe somebody will write it.
+if test -x /usr/sbin/install-info-altdir; then
+    echo install/${PACKAGE}: install Info links for ${FLAVOR}
+    install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/info/${PACKAGE}.info.gz
+fi
+
+install -m 755 -d ${ELCDIR}
+cd ${ELDIR}
+FILES=`echo *.el`
+cp ${FILES} ${ELCDIR}
+cd ${ELCDIR}
+
+cat << EOF > path.el
+(setq load-path (cons "." load-path) byte-compile-warnings nil)
+EOF
+${FLAVOR} ${FLAGS} ${FILES}
+rm -f *.el path.el
+
+exit 0
diff --git a/dpkg/emacsen-remove.ex b/dpkg/emacsen-remove.ex
new file mode 100644
index 0000000..b6abe46
--- /dev/null
+++ b/dpkg/emacsen-remove.ex
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+# /usr/lib/emacsen-common/packages/remove/libewf
+
+FLAVOR=$1
+PACKAGE=libewf
+
+if [ ${FLAVOR} != emacs ]; then
+    if test -x /usr/sbin/install-info-altdir; then
+        echo remove/${PACKAGE}: removing Info links for ${FLAVOR}
+        install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/info/libewf.info.gz
+    fi
+
+    echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR}
+    rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+fi
diff --git a/dpkg/emacsen-startup.ex b/dpkg/emacsen-startup.ex
new file mode 100644
index 0000000..bc50ddd
--- /dev/null
+++ b/dpkg/emacsen-startup.ex
@@ -0,0 +1,25 @@
+;; -*-emacs-lisp-*-
+;;
+;; Emacs startup file, e.g.  /etc/emacs/site-start.d/50libewf.el
+;; for the Debian libewf package
+;;
+;; Originally contributed by Nils Naumann <naumann at unileoben.ac.at>
+;; Modified by Dirk Eddelbuettel <edd at debian.org>
+;; Adapted for dh-make by Jim Van Zandt <jrv at debian.org>
+
+;; The libewf package follows the Debian/GNU Linux 'emacsen' policy and
+;; byte-compiles its elisp files for each 'emacs flavor' (emacs19,
+;; xemacs19, emacs20, xemacs20...).  The compiled code is then
+;; installed in a subdirectory of the respective site-lisp directory.
+;; We have to add this to the load-path:
+(let ((package-dir (concat "/usr/share/"
+                           (symbol-name flavor)
+                           "/site-lisp/libewf")))
+;; If package-dir does not exist, the libewf package must have
+;; removed but not purged, and we should skip the setup.
+  (when (file-directory-p package-dir)
+        (setq load-path (cons package-dir load-path))
+       (autoload 'libewf-mode "libewf-mode"
+         "Major mode for editing libewf files." t)
+       (add-to-list 'auto-mode-alist '("\\.libewf$" . libewf-mode))))
+
diff --git a/dpkg/init.d.ex b/dpkg/init.d.ex
new file mode 100644
index 0000000..3a9aa6b
--- /dev/null
+++ b/dpkg/init.d.ex
@@ -0,0 +1,81 @@
+#! /bin/sh
+#
+# skeleton	example file to build /etc/init.d/ scripts.
+#		This file should be used to construct scripts for /etc/init.d.
+#
+#		Written by Miquel van Smoorenburg <miquels at cistron.nl>.
+#		Modified for Debian 
+#		by Ian Murdock <imurdock at gnu.ai.mit.edu>.
+#
+# Version:	@(#)skeleton  1.9  26-Feb-2001  miquels at cistron.nl
+#
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/libewf
+NAME=libewf
+DESC=libewf
+
+test -x $DAEMON || exit 0
+
+# Include libewf defaults if available
+if [ -f /etc/default/libewf ] ; then
+	. /etc/default/libewf
+fi
+
+set -e
+
+case "$1" in
+  start)
+	echo -n "Starting $DESC: "
+	start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+		--exec $DAEMON -- $DAEMON_OPTS
+	echo "$NAME."
+	;;
+  stop)
+	echo -n "Stopping $DESC: "
+	start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
+		--exec $DAEMON
+	echo "$NAME."
+	;;
+  #reload)
+	#
+	#	If the daemon can reload its config files on the fly
+	#	for example by sending it SIGHUP, do it here.
+	#
+	#	If the daemon responds to changes in its config file
+	#	directly anyway, make this a do-nothing entry.
+	#
+	# echo "Reloading $DESC configuration files."
+	# start-stop-daemon --stop --signal 1 --quiet --pidfile \
+	#	/var/run/$NAME.pid --exec $DAEMON
+  #;;
+  force-reload)
+	#
+	#	If the "reload" option is implemented, move the "force-reload"
+	#	option to the "reload" entry above. If not, "force-reload" is
+	#	just the same as "restart" except that it does nothing if the
+	#   daemon isn't already running.
+	# check wether $DAEMON is running. If so, restart
+	start-stop-daemon --stop --test --quiet --pidfile \
+		/var/run/$NAME.pid --exec $DAEMON \
+	&& $0 restart \
+	|| exit 0
+	;;
+  restart)
+    echo -n "Restarting $DESC: "
+	start-stop-daemon --stop --quiet --pidfile \
+		/var/run/$NAME.pid --exec $DAEMON
+	sleep 1
+	start-stop-daemon --start --quiet --pidfile \
+		/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
+	echo "$NAME."
+	;;
+  *)
+	N=/etc/init.d/$NAME
+	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+	echo "Usage: $N {start|stop|restart|force-reload}" >&2
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/dpkg/libewf-default.ex b/dpkg/libewf-default.ex
new file mode 100644
index 0000000..f8006cd
--- /dev/null
+++ b/dpkg/libewf-default.ex
@@ -0,0 +1,10 @@
+# Defaults for libewf initscript
+# sourced by /etc/init.d/libewf
+# installed at /etc/default/libewf by the maintainer scripts
+
+#
+# This is a POSIX shell fragment
+#
+
+# Additional options that are passed to the Daemon.
+DAEMON_OPTS=""
diff --git a/dpkg/libewf-dev.dirs b/dpkg/libewf-dev.dirs
new file mode 100644
index 0000000..cf3fe8c
--- /dev/null
+++ b/dpkg/libewf-dev.dirs
@@ -0,0 +1,4 @@
+usr/lib
+usr/include
+usr/include/libewf
+usr/share/man/man3
diff --git a/dpkg/libewf-dev.docs b/dpkg/libewf-dev.docs
new file mode 100644
index 0000000..10f1faa
--- /dev/null
+++ b/dpkg/libewf-dev.docs
@@ -0,0 +1,5 @@
+AUTHORS
+COPYING
+NEWS
+README
+ChangeLog
diff --git a/dpkg/libewf-dev.install b/dpkg/libewf-dev.install
new file mode 100644
index 0000000..423118e
--- /dev/null
+++ b/dpkg/libewf-dev.install
@@ -0,0 +1,7 @@
+usr/include/*.h
+usr/include/libewf/*.h
+usr/lib/*.la
+usr/lib/lib*.a
+usr/lib/lib*.so
+usr/lib/pkgconfig/*
+usr/share/man/man3/*
diff --git a/dpkg/libewf-tools.dirs b/dpkg/libewf-tools.dirs
new file mode 100644
index 0000000..98d1583
--- /dev/null
+++ b/dpkg/libewf-tools.dirs
@@ -0,0 +1,2 @@
+usr/bin
+usr/share/man/man1
diff --git a/dpkg/libewf-tools.docs b/dpkg/libewf-tools.docs
new file mode 100644
index 0000000..10f1faa
--- /dev/null
+++ b/dpkg/libewf-tools.docs
@@ -0,0 +1,5 @@
+AUTHORS
+COPYING
+NEWS
+README
+ChangeLog
diff --git a/dpkg/libewf-tools.install b/dpkg/libewf-tools.install
new file mode 100644
index 0000000..8004b82
--- /dev/null
+++ b/dpkg/libewf-tools.install
@@ -0,0 +1,6 @@
+usr/bin/ewfacquire
+usr/bin/ewfacquirestream
+usr/bin/ewfexport
+usr/bin/ewfinfo
+usr/bin/ewfverify
+usr/share/man/man1/*
diff --git a/dpkg/libewf.dirs b/dpkg/libewf.dirs
new file mode 100644
index 0000000..6845771
--- /dev/null
+++ b/dpkg/libewf.dirs
@@ -0,0 +1 @@
+usr/lib
diff --git a/dpkg/libewf.doc-base.EX b/dpkg/libewf.doc-base.EX
new file mode 100644
index 0000000..d35e58e
--- /dev/null
+++ b/dpkg/libewf.doc-base.EX
@@ -0,0 +1,22 @@
+Document: libewf
+Title: Debian libewf Manual
+Author: <insert document author here>
+Abstract: This manual describes what libewf is
+ and how it can be used to
+ manage online manuals on Debian systems.
+Section: unknown
+
+Format: debiandoc-sgml
+Files: /usr/share/doc/libewf/libewf.sgml.gz
+
+Format: postscript
+Files: /usr/share/doc/libewf/libewf.ps.gz
+
+Format: text
+Files: /usr/share/doc/libewf/libewf.text.gz
+
+Format: HTML
+Index: /usr/share/doc/libewf/html/index.html
+Files: /usr/share/doc/libewf/html/*.html
+
+  
diff --git a/dpkg/libewf.docs b/dpkg/libewf.docs
new file mode 100644
index 0000000..10f1faa
--- /dev/null
+++ b/dpkg/libewf.docs
@@ -0,0 +1,5 @@
+AUTHORS
+COPYING
+NEWS
+README
+ChangeLog
diff --git a/dpkg/libewf.install b/dpkg/libewf.install
new file mode 100644
index 0000000..d0dbfd1
--- /dev/null
+++ b/dpkg/libewf.install
@@ -0,0 +1 @@
+usr/lib/lib*.so.*
diff --git a/dpkg/libewf.postinst.debhelper b/dpkg/libewf.postinst.debhelper
new file mode 100644
index 0000000..8a25b9e
--- /dev/null
+++ b/dpkg/libewf.postinst.debhelper
@@ -0,0 +1,3 @@
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
diff --git a/dpkg/libewf.postrm.debhelper b/dpkg/libewf.postrm.debhelper
new file mode 100644
index 0000000..96bf24e
--- /dev/null
+++ b/dpkg/libewf.postrm.debhelper
@@ -0,0 +1,3 @@
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
diff --git a/dpkg/manpage.1.ex b/dpkg/manpage.1.ex
new file mode 100644
index 0000000..3d8c4c8
--- /dev/null
+++ b/dpkg/manpage.1.ex
@@ -0,0 +1,59 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH LIBEWF SECTION "September 15, 2007"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+libewf \- program to do something
+.SH SYNOPSIS
+.B libewf
+.RI [ options ] " files" ...
+.br
+.B bar
+.RI [ options ] " files" ...
+.SH DESCRIPTION
+This manual page documents briefly the
+.B libewf
+and
+.B bar
+commands.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
+.\" respectively.
+\fBlibewf\fP is a program that...
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+For a complete description, see the Info files.
+.TP
+.B \-h, \-\-help
+Show summary of options.
+.TP
+.B \-v, \-\-version
+Show version of program.
+.SH SEE ALSO
+.BR bar (1),
+.BR baz (1).
+.br
+The programs are documented fully by
+.IR "The Rise and Fall of a Fooish Bar" ,
+available via the Info system.
+.SH AUTHOR
+libewf was written by <upstream author>.
+.PP
+This manual page was written by Joachim Metz <joachim at vmprodigy.dominion>,
+for the Debian project (but may be used by others).
diff --git a/dpkg/manpage.sgml.ex b/dpkg/manpage.sgml.ex
new file mode 100644
index 0000000..2a6a8b9
--- /dev/null
+++ b/dpkg/manpage.sgml.ex
@@ -0,0 +1,156 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+     page: `docbook-to-man manpage.sgml > manpage.1'.  You may view
+     the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+     less'.  A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+	docbook-to-man $< > $@
+
+    
+	The docbook-to-man binary is found in the docbook-to-man package.
+	Please remember that if you create the nroff version in one of the
+	debian/rules file targets (such as build), you will need to include
+	docbook-to-man in your Build-Depends control field.
+
+  -->
+
+  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+  <!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
+  <!ENTITY dhsurname   "<surname>SURNAME</surname>">
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY dhdate      "<date>September 15, 2007</date>">
+  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+       allowed: see man(7), man(1). -->
+  <!ENTITY dhsection   "<manvolnum>SECTION</manvolnum>">
+  <!ENTITY dhemail     "<email>joachim at vmprodigy.dominion</email>">
+  <!ENTITY dhusername  "Joachim Metz">
+  <!ENTITY dhucpackage "<refentrytitle>LIBEWF</refentrytitle>">
+  <!ENTITY dhpackage   "libewf">
+
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+    <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>
+    <copyright>
+      <year>2003</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>program to do something</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+
+      <arg><option>-e <replaceable>this</replaceable></option></arg>
+
+      <arg><option>--example <replaceable>that</replaceable></option></arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para>This manual page documents briefly the
+      <command>&dhpackage;</command> and <command>bar</command>
+      commands.</para>
+
+    <para>This manual page was written for the &debian; distribution
+      because the original program does not have a manual page.
+      Instead, it has documentation in the &gnu;
+      <application>Info</application> format; see below.</para>
+
+    <para><command>&dhpackage;</command> is a program that...</para>
+
+  </refsect1>
+  <refsect1>
+    <title>OPTIONS</title>
+
+    <para>These programs follow the usual &gnu; command line syntax,
+      with long options starting with two dashes (`-').  A summary of
+      options is included below.  For a complete description, see the
+      <application>Info</application> files.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term><option>-h</option>
+          <option>--help</option>
+        </term>
+        <listitem>
+          <para>Show summary of options.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-v</option>
+          <option>--version</option>
+        </term>
+        <listitem>
+          <para>Show version of program.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+  <refsect1>
+    <title>SEE ALSO</title>
+
+    <para>bar (1), baz (1).</para>
+
+    <para>The programs are documented fully by <citetitle>The Rise and
+      Fall of a Fooish Bar</citetitle> available via the
+      <application>Info</application> system.</para>
+  </refsect1>
+  <refsect1>
+    <title>AUTHOR</title>
+
+    <para>This manual page was written by &dhusername; &dhemail; for
+      the &debian; system (but may be used by others).  Permission is
+      granted to copy, distribute and/or modify this document under
+      the terms of the &gnu; General Public License, Version 2 any 
+	  later version published by the Free Software Foundation.
+    </para>
+	<para>
+	  On Debian systems, the complete text of the GNU General Public
+	  License can be found in /usr/share/common-licenses/GPL.
+	</para>
+
+  </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
diff --git a/dpkg/manpage.xml.ex b/dpkg/manpage.xml.ex
new file mode 100644
index 0000000..cc289b8
--- /dev/null
+++ b/dpkg/manpage.xml.ex
@@ -0,0 +1,148 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl manpage.dbk'.  A manual page
+<package>.<section> will be generated.  You may view the
+manual page with: nroff -man <package>.<section> | less'.  A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+        $(XP) $(DB2MAN) $<
+    
+The xsltproc binary is found in the xsltproc package.  The
+XSL files are in docbook-xsl.  Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+  <!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
+  <!ENTITY dhsurname   "<surname>SURNAME</surname>">
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY dhdate      "<date>September 15, 2007</date>">
+  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+       allowed: see man(7), man(1). -->
+  <!ENTITY dhsection   "<manvolnum>SECTION</manvolnum>">
+  <!ENTITY dhemail     "<email>joachim at vmprodigy.dominion</email>">
+  <!ENTITY dhusername  "Joachim Metz">
+  <!ENTITY dhucpackage "<refentrytitle>LIBEWF</refentrytitle>">
+  <!ENTITY dhpackage   "libewf">
+
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+    <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>
+    <copyright>
+      <year>2003</year>
+      <holder>&dhusername;</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>program to do something</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage;</command>
+
+      <arg><option>-e <replaceable>this</replaceable></option></arg>
+
+      <arg><option>--example <replaceable>that</replaceable></option></arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para>This manual page documents briefly the
+      <command>&dhpackage;</command> and <command>bar</command>
+      commands.</para>
+
+    <para>This manual page was written for the &debian; distribution
+      because the original program does not have a manual page.
+      Instead, it has documentation in the &gnu;
+      <application>Info</application> format; see below.</para>
+
+    <para><command>&dhpackage;</command> is a program that...</para>
+
+  </refsect1>
+  <refsect1>
+    <title>OPTIONS</title>
+
+    <para>These programs follow the usual &gnu; command line syntax,
+      with long options starting with two dashes (`-').  A summary of
+      options is included below.  For a complete description, see the
+      <application>Info</application> files.</para>
+
+    <variablelist>
+      <varlistentry>
+        <term><option>-h</option>
+          <option>--help</option>
+        </term>
+        <listitem>
+          <para>Show summary of options.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>-v</option>
+          <option>--version</option>
+        </term>
+        <listitem>
+          <para>Show version of program.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+  <refsect1>
+    <title>SEE ALSO</title>
+
+    <para>bar (1), baz (1).</para>
+
+    <para>The programs are documented fully by <citetitle>The Rise and
+      Fall of a Fooish Bar</citetitle> available via the
+      <application>Info</application> system.</para>
+  </refsect1>
+  <refsect1>
+    <title>AUTHOR</title>
+
+    <para>This manual page was written by &dhusername; &dhemail; for
+      the &debian; system (but may be used by others).  Permission is
+      granted to copy, distribute and/or modify this document under
+      the terms of the &gnu; General Public License, Version 2 any 
+	  later version published by the Free Software Foundation.
+    </para>
+	<para>
+	  On Debian systems, the complete text of the GNU General Public
+	  License can be found in /usr/share/common-licenses/GPL.
+	</para>
+
+  </refsect1>
+</refentry>
+
diff --git a/dpkg/menu.ex b/dpkg/menu.ex
new file mode 100644
index 0000000..53f0190
--- /dev/null
+++ b/dpkg/menu.ex
@@ -0,0 +1,2 @@
+?package(libewf):needs="X11|text|vc|wm" section="Apps/see-menu-manual"\
+  title="libewf" command="/usr/bin/libewf"
diff --git a/dpkg/postinst.ex b/dpkg/postinst.ex
new file mode 100644
index 0000000..a6c1c04
--- /dev/null
+++ b/dpkg/postinst.ex
@@ -0,0 +1,41 @@
+#!/bin/sh
+# postinst script for libewf
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <postinst> `abort-remove'
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    configure)
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/dpkg/postrm.ex b/dpkg/postrm.ex
new file mode 100644
index 0000000..e8b32bf
--- /dev/null
+++ b/dpkg/postrm.ex
@@ -0,0 +1,39 @@
+#!/bin/sh
+# postrm script for libewf
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postrm> `remove'
+#        * <postrm> `purge'
+#        * <old-postrm> `upgrade' <new-version>
+#        * <new-postrm> `failed-upgrade' <old-version>
+#        * <new-postrm> `abort-install'
+#        * <new-postrm> `abort-install' <old-version>
+#        * <new-postrm> `abort-upgrade' <old-version>
+#        * <disappearer's-postrm> `disappear' <overwriter>
+#          <overwriter-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/dpkg/preinst.ex b/dpkg/preinst.ex
new file mode 100644
index 0000000..21c0b3c
--- /dev/null
+++ b/dpkg/preinst.ex
@@ -0,0 +1,37 @@
+#!/bin/sh
+# preinst script for libewf
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <new-preinst> `install'
+#        * <new-preinst> `install' <old-version>
+#        * <new-preinst> `upgrade' <old-version>
+#        * <old-preinst> `abort-upgrade' <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    install|upgrade)
+    ;;
+
+    abort-upgrade)
+    ;;
+
+    *)
+        echo "preinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/dpkg/prerm.ex b/dpkg/prerm.ex
new file mode 100644
index 0000000..f80a586
--- /dev/null
+++ b/dpkg/prerm.ex
@@ -0,0 +1,40 @@
+#!/bin/sh
+# prerm script for libewf
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    remove|upgrade|deconfigure)
+    ;;
+
+    failed-upgrade)
+    ;;
+
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/dpkg/rules b/dpkg/rules
new file mode 100755
index 0000000..3b80174
--- /dev/null
+++ b/dpkg/rules
@@ -0,0 +1,114 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+	CFLAGS += -O0
+else
+	CFLAGS += -O2
+endif
+
+# shared library versions, option 1
+version=2.0.5
+major=2
+# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
+#version=`ls src/.libs/lib*.so.* | \
+# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
+#major=`ls src/.libs/lib*.so.* | \
+# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`
+
+config.status: configure
+	dh_testdir
+	# Add here commands to configure the package.
+	./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs" --enable-v2-api=yes
+
+
+build: build-stamp
+build-stamp:  config.status
+	dh_testdir
+
+	# Add here commands to compile the package.
+	$(MAKE)
+
+	touch $@
+
+clean:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp 
+
+	# Add here commands to clean up after the build process.
+	-$(MAKE) distclean
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+	cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+	cp -f /usr/share/misc/config.guess config.guess
+endif
+
+
+	dh_clean 
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k 
+	dh_installdirs
+
+	# Add here commands to install the package into debian/tmp
+	$(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs ChangeLog
+	dh_installdocs
+	dh_installexamples
+	dh_install --list-missing --sourcedir=$(CURDIR)/debian/tmp
+#	dh_installmenu
+#	dh_installdebconf	
+#	dh_installlogrotate
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installmime
+#	dh_installinit
+#	dh_installcron
+#	dh_installinfo
+	dh_installman
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+#	dh_perl
+#	dh_python
+	dh_makeshlibs -V
+	dh_installdeb
+	dh_shlibdeps -L libewf -l debian/libewf/usr/lib
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install 
diff --git a/dpkg/shlibs.local.ex b/dpkg/shlibs.local.ex
new file mode 100644
index 0000000..1260ae2
--- /dev/null
+++ b/dpkg/shlibs.local.ex
@@ -0,0 +1 @@
+liblibewf 20091003 libewf (>> 20091003-0), libewf (<< 20091003-99)
diff --git a/dpkg/shlibs.local.ex.in b/dpkg/shlibs.local.ex.in
new file mode 100644
index 0000000..28e9aa9
--- /dev/null
+++ b/dpkg/shlibs.local.ex.in
@@ -0,0 +1 @@
+liblibewf @VERSION@ libewf (>> @VERSION at -0), libewf (<< @VERSION at -99)
diff --git a/dpkg/watch.ex b/dpkg/watch.ex
new file mode 100644
index 0000000..b88dbd4
--- /dev/null
+++ b/dpkg/watch.ex
@@ -0,0 +1,22 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+# Uncomment to examine a Webpage 
+# <Webpage URL> <string match>
+#http://www.example.com/downloads.php libewf-(.*)\.tar\.gz
+
+# Uncomment to examine a Webserver directory
+#http://www.example.com/pub/libewf-(.*)\.tar\.gz
+
+# Uncommment to examine a FTP server
+#ftp://ftp.example.com/pub/libewf-(.*)\.tar\.gz debian uupdate
+
+# Uncomment to find new files on sourceforge, for debscripts >= 2.9
+# http://sf.net/libewf/libewf-(.*)\.tar\.gz
+
+
diff --git a/ewftools/Makefile.am b/ewftools/Makefile.am
index d098708..c6422cc 100644
--- a/ewftools/Makefile.am
+++ b/ewftools/Makefile.am
@@ -38,6 +38,8 @@ ewfacquire_LDADD = \
 	../liberror/liberror.la \
 	../libewf/libewf.la \
 	../libsystem/libsystem.la \
+	@LIBCRYPTO_LIBADD@ \
+	@LIBUUID_LIBADD@ \
 	@MEMWATCH_LIBADD@
 
 ewfacquirestream_SOURCES = \
@@ -60,6 +62,8 @@ ewfacquirestream_LDADD = \
 	../liberror/liberror.la \
 	../libewf/libewf.la \
 	../libsystem/libsystem.la \
+	@LIBCRYPTO_LIBADD@ \
+	@LIBUUID_LIBADD@ \
 	@MEMWATCH_LIBADD@
 
 ewfalter_SOURCES = \
@@ -109,6 +113,8 @@ ewfexport_LDADD = \
 	../liberror/liberror.la \
 	../libewf/libewf.la \
 	../libsystem/libsystem.la \
+	@LIBCRYPTO_LIBADD@ \
+	@LIBUUID_LIBADD@ \
 	@MEMWATCH_LIBADD@
 
 ewfinfo_SOURCES = \
@@ -124,6 +130,7 @@ ewfinfo_LDADD = \
 	../liberror/liberror.la \
 	../libewf/libewf.la \
 	../libsystem/libsystem.la \
+	@LIBUUID_LIBADD@ \
 	@MEMWATCH_LIBADD@
 
 ewfverify_SOURCES = \
@@ -144,6 +151,7 @@ ewfverify_LDADD = \
 	../liberror/liberror.la \
 	../libewf/libewf.la \
 	../libsystem/libsystem.la \
+	@LIBCRYPTO_LIBADD@ \
 	@MEMWATCH_LIBADD@
 
 distclean: clean
diff --git a/ewftools/Makefile.in b/ewftools/Makefile.in
index 37bcee8..061c44a 100644
--- a/ewftools/Makefile.in
+++ b/ewftools/Makefile.in
@@ -178,6 +178,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -185,6 +186,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
@@ -322,6 +324,8 @@ ewfacquire_LDADD = \
 	../liberror/liberror.la \
 	../libewf/libewf.la \
 	../libsystem/libsystem.la \
+	@LIBCRYPTO_LIBADD@ \
+	@LIBUUID_LIBADD@ \
 	@MEMWATCH_LIBADD@
 
 ewfacquirestream_SOURCES = \
@@ -344,6 +348,8 @@ ewfacquirestream_LDADD = \
 	../liberror/liberror.la \
 	../libewf/libewf.la \
 	../libsystem/libsystem.la \
+	@LIBCRYPTO_LIBADD@ \
+	@LIBUUID_LIBADD@ \
 	@MEMWATCH_LIBADD@
 
 ewfalter_SOURCES = \
@@ -393,6 +399,8 @@ ewfexport_LDADD = \
 	../liberror/liberror.la \
 	../libewf/libewf.la \
 	../libsystem/libsystem.la \
+	@LIBCRYPTO_LIBADD@ \
+	@LIBUUID_LIBADD@ \
 	@MEMWATCH_LIBADD@
 
 ewfinfo_SOURCES = \
@@ -408,6 +416,7 @@ ewfinfo_LDADD = \
 	../liberror/liberror.la \
 	../libewf/libewf.la \
 	../libsystem/libsystem.la \
+	@LIBUUID_LIBADD@ \
 	@MEMWATCH_LIBADD@
 
 ewfverify_SOURCES = \
@@ -428,6 +437,7 @@ ewfverify_LDADD = \
 	../liberror/liberror.la \
 	../libewf/libewf.la \
 	../libsystem/libsystem.la \
+	@LIBCRYPTO_LIBADD@ \
 	@MEMWATCH_LIBADD@
 
 all: all-am
diff --git a/ewftools/alteration_handle.c b/ewftools/alteration_handle.c
index 1b27583..6dd2102 100644
--- a/ewftools/alteration_handle.c
+++ b/ewftools/alteration_handle.c
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/alteration_handle.h b/ewftools/alteration_handle.h
index 583c673..34c7eec 100644
--- a/ewftools/alteration_handle.h
+++ b/ewftools/alteration_handle.h
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/device_handle.c b/ewftools/device_handle.c
index 6e1a4a5..c996b27 100644
--- a/ewftools/device_handle.c
+++ b/ewftools/device_handle.c
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/device_handle.h b/ewftools/device_handle.h
index eb9bfd6..978357d 100644
--- a/ewftools/device_handle.h
+++ b/ewftools/device_handle.h
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/export_handle.c b/ewftools/export_handle.c
index 76c4c2d..aa621ed 100644
--- a/ewftools/export_handle.c
+++ b/ewftools/export_handle.c
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/export_handle.h b/ewftools/export_handle.h
index cbdfc95..5e55424 100644
--- a/ewftools/export_handle.h
+++ b/ewftools/export_handle.h
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/imaging_handle.c b/ewftools/imaging_handle.c
index c172cef..9db670d 100644
--- a/ewftools/imaging_handle.c
+++ b/ewftools/imaging_handle.c
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/imaging_handle.h b/ewftools/imaging_handle.h
index 8cae43e..aa0ffe7 100644
--- a/ewftools/imaging_handle.h
+++ b/ewftools/imaging_handle.h
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/info_handle.c b/ewftools/info_handle.c
index 44bd7e2..192d1ae 100644
--- a/ewftools/info_handle.c
+++ b/ewftools/info_handle.c
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/info_handle.h b/ewftools/info_handle.h
index 8a74f58..7f41e23 100644
--- a/ewftools/info_handle.h
+++ b/ewftools/info_handle.h
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/storage_media_buffer.c b/ewftools/storage_media_buffer.c
index 996ad8d..054f019 100644
--- a/ewftools/storage_media_buffer.c
+++ b/ewftools/storage_media_buffer.c
@@ -10,12 +10,12 @@
  * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This software 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.
- * 
+ *
  * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
diff --git a/ewftools/storage_media_buffer.h b/ewftools/storage_media_buffer.h
index 77ab897..c8f5a7c 100644
--- a/ewftools/storage_media_buffer.h
+++ b/ewftools/storage_media_buffer.h
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/verification_handle.c b/ewftools/verification_handle.c
index 7531a51..c9bdab7 100644
--- a/ewftools/verification_handle.c
+++ b/ewftools/verification_handle.c
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/ewftools/verification_handle.h b/ewftools/verification_handle.h
index c4b11ba..e22f85e 100644
--- a/ewftools/verification_handle.h
+++ b/ewftools/verification_handle.h
@@ -7,7 +7,7 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
@@ -16,7 +16,7 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
diff --git a/include/Makefile.in b/include/Makefile.in
index f513f99..eb493bd 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -129,6 +129,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -136,6 +137,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/include/libewf/definitions.h b/include/libewf/definitions.h
index 2516c4e..54f4a1e 100644
--- a/include/libewf/definitions.h
+++ b/include/libewf/definitions.h
@@ -25,11 +25,11 @@
 
 #include <libewf/types.h>
 
-#define LIBEWF_VERSION				20090927
+#define LIBEWF_VERSION				20091003
 
 /* The libewf version string
  */
-#define LIBEWF_VERSION_STRING			"20090927"
+#define LIBEWF_VERSION_STRING			"20091003"
 
 /* The libewf file access
  * bit 1	set to 1 for read access
diff --git a/libbfio/Makefile.in b/libbfio/Makefile.in
index 9d3f325..64b34ac 100644
--- a/libbfio/Makefile.in
+++ b/libbfio/Makefile.in
@@ -136,6 +136,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -143,6 +144,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/libbfio/libbfio_definitions.h b/libbfio/libbfio_definitions.h
index ec53095..06a999e 100644
--- a/libbfio/libbfio_definitions.h
+++ b/libbfio/libbfio_definitions.h
@@ -34,11 +34,11 @@
  * for local use of libbfio
  */
 #else
-#define LIBBFIO_VERSION			20090927
+#define LIBBFIO_VERSION			20091003
 
 /* The libbfio version string
  */
-#define LIBBFIO_VERSION_STRING		"20090927"
+#define LIBBFIO_VERSION_STRING		"20091003"
 
 /* The libbfio file access
  * bit 1	set to 1 for read access
diff --git a/libbfio/libbfio_list_type.c b/libbfio/libbfio_list_type.c
index c442385..e1d6005 100644
--- a/libbfio/libbfio_list_type.c
+++ b/libbfio/libbfio_list_type.c
@@ -7,16 +7,16 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
- *
+ * 
  * This software 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.
- *
- * You should have received a copy of the GNU General Public License
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
@@ -389,7 +389,7 @@ int libbfio_list_clone(
 	else
 	{
 		*destination = (libbfio_list_t *) memory_allocate(
-		                                  sizeof( libbfio_list_t ) );
+		                                   sizeof( libbfio_list_t ) );
 
 		if( *destination == NULL )
 		{
@@ -477,6 +477,194 @@ int libbfio_list_clone(
 	return( 1 );
 }
 
+/* Retrieves the amount of elements in the list
+ * Returns 1 if successful or -1 on error
+ */
+int libbfio_list_get_amount_of_elements(
+     libbfio_list_t *list,
+     int *amount_of_elements,
+     liberror_error_t **error )
+{
+	static char *function = "libbfio_list_get_amount_of_elements";
+
+	if( list == NULL )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
+		 "%s: invalid list.",
+		 function );
+
+		return( -1 );
+	}
+	if( amount_of_elements == NULL )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
+		 "%s: invalid amount of elements.",
+		 function );
+
+		return( -1 );
+	}
+	*amount_of_elements = list->amount_of_elements;
+
+	return( 1 );
+}
+
+/* Retrieves a specific element from the list
+ * Returns 1 if successful, 0 if not available or -1 on error
+ */
+int libbfio_list_get_element(
+     libbfio_list_t *list,
+     int element_index,
+     libbfio_list_element_t **element,
+     liberror_error_t **error )
+{
+	libbfio_list_element_t *list_element = NULL;
+	static char *function                = "libbfio_list_get_element";
+	int iterator                         = 0;
+
+	if( list == NULL )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
+		 "%s: invalid list.",
+		 function );
+
+		return( -1 );
+	}
+	if( ( element_index < 0 )
+	 || ( element_index >= list->amount_of_elements ) )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_VALUE_OUT_OF_RANGE,
+		 "%s: invalid element index out of range.",
+		 function );
+
+		return( -1 );
+	}
+	if( element == NULL )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
+		 "%s: invalid element.",
+		 function );
+
+		return( -1 );
+	}
+	if( element_index < ( list->amount_of_elements / 2 ) )
+	{
+		list_element = list->first;
+
+		for( iterator = 0;
+		     iterator < element_index;
+		     iterator++ )
+		{
+			if( list_element == NULL )
+			{
+				liberror_error_set(
+				 error,
+				 LIBERROR_ERROR_DOMAIN_RUNTIME,
+				 LIBERROR_RUNTIME_ERROR_VALUE_MISSING,
+				 "%s: corruption detected in element: %d.",
+				 function,
+				 iterator + 1 );
+
+				return( -1 );
+			}
+			list_element = list_element->next;
+		}
+	}
+	else
+	{
+		list_element = list->last;
+
+		for( iterator = ( list->amount_of_elements - 1 );
+		     iterator > element_index;
+		     iterator-- )
+		{
+			if( list_element == NULL )
+			{
+				liberror_error_set(
+				 error,
+				 LIBERROR_ERROR_DOMAIN_RUNTIME,
+				 LIBERROR_RUNTIME_ERROR_VALUE_MISSING,
+				 "%s: corruption detected in element: %d.",
+				 function,
+				 iterator + 1 );
+
+				return( -1 );
+			}
+			list_element = list_element->previous;
+		}
+	}
+	*element = list_element;
+
+	if( list_element == NULL )
+	{
+		return( 0 );
+	}
+	return( 1 );
+}
+
+/* Retrieves a specific value from the list
+ * Returns 1 if successful, 0 if not available or -1 on error
+ */
+int libbfio_list_get_value(
+     libbfio_list_t *list,
+     int element_index,
+     intptr_t **value,
+     liberror_error_t **error )
+{
+	libbfio_list_element_t *list_element = NULL;
+	static char *function                = "libbfio_list_get_value";
+	int result                           = 0;
+
+	if( value == NULL )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
+		 "%s: invalid value.",
+		 function );
+
+		return( -1 );
+	}
+	result = libbfio_list_get_element(
+	          list,
+	          element_index,
+	          &list_element,
+	          error );
+
+	if( result == -1 )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_RUNTIME,
+		 LIBERROR_RUNTIME_ERROR_GET_FAILED,
+		 "%s: unable to retrieve list element for index: %d.",
+		 function,
+		 element_index );
+
+		return( -1 );
+	}
+	else if( result != 0 )
+	{
+		*value = list_element->value;
+	}
+	return( 1 );
+}
+
 /* Prepend an element to the list
  * Returns 1 if successful or -1 on error
  */
@@ -1043,142 +1231,3 @@ int libbfio_list_remove_element(
 	return( 1 );
 }
 
-/* Retrieves the amount of elements in the list
- * Returns 1 if successful or -1 on error
- */
-int libbfio_list_get_amount_of_elements(
-     libbfio_list_t *list,
-     int *amount_of_elements,
-     liberror_error_t **error )
-{
-	static char *function = "libbfio_list_get_amount_of_elements";
-
-	if( list == NULL )
-	{
-		liberror_error_set(
-		 error,
-		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
-		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
-		 "%s: invalid list.",
-		 function );
-
-		return( -1 );
-	}
-	if( amount_of_elements == NULL )
-	{
-		liberror_error_set(
-		 error,
-		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
-		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
-		 "%s: invalid amount of elements.",
-		 function );
-
-		return( -1 );
-	}
-	*amount_of_elements = list->amount_of_elements;
-
-	return( 1 );
-}
-
-/* Retrieves a specific element from the list
- * Returns 1 if successful, 0 if not available or -1 on error
- */
-int libbfio_list_get_element(
-     libbfio_list_t *list,
-     int element_index,
-     libbfio_list_element_t **element,
-     liberror_error_t **error )
-{
-	libbfio_list_element_t *list_element = NULL;
-	static char *function               = "libbfio_list_get_element";
-	int iterator                        = 0;
-
-	if( list == NULL )
-	{
-		liberror_error_set(
-		 error,
-		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
-		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
-		 "%s: invalid list.",
-		 function );
-
-		return( -1 );
-	}
-	if( ( element_index < 0 )
-	 || ( element_index >= list->amount_of_elements ) )
-	{
-		liberror_error_set(
-		 error,
-		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
-		 LIBERROR_ARGUMENT_ERROR_VALUE_OUT_OF_RANGE,
-		 "%s: invalid element index out of range.",
-		 function );
-
-		return( -1 );
-	}
-	if( element == NULL )
-	{
-		liberror_error_set(
-		 error,
-		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
-		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
-		 "%s: invalid element.",
-		 function );
-
-		return( -1 );
-	}
-	if( element_index < ( list->amount_of_elements / 2 ) )
-	{
-		list_element = list->first;
-
-		for( iterator = 0;
-		     iterator < element_index;
-		     iterator++ )
-		{
-			if( list_element == NULL )
-			{
-				liberror_error_set(
-				 error,
-				 LIBERROR_ERROR_DOMAIN_RUNTIME,
-				 LIBERROR_RUNTIME_ERROR_VALUE_MISSING,
-				 "%s: corruption detected in element: %d.",
-				 function,
-				 iterator + 1 );
-
-				return( -1 );
-			}
-			list_element = list_element->next;
-		}
-	}
-	else
-	{
-		list_element = list->last;
-
-		for( iterator = ( list->amount_of_elements - 1 );
-		     iterator > element_index;
-		     iterator-- )
-		{
-			if( list_element == NULL )
-			{
-				liberror_error_set(
-				 error,
-				 LIBERROR_ERROR_DOMAIN_RUNTIME,
-				 LIBERROR_RUNTIME_ERROR_VALUE_MISSING,
-				 "%s: corruption detected in element: %d.",
-				 function,
-				 iterator + 1 );
-
-				return( -1 );
-			}
-			list_element = list_element->previous;
-		}
-	}
-	*element = list_element;
-
-	if( list_element == NULL )
-	{
-		return( 0 );
-	}
-	return( 1 );
-}
-
diff --git a/libbfio/libbfio_list_type.h b/libbfio/libbfio_list_type.h
index 6fbf357..edf444f 100644
--- a/libbfio/libbfio_list_type.h
+++ b/libbfio/libbfio_list_type.h
@@ -7,16 +7,16 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
- *
+ * 
  * This software 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.
- *
- * You should have received a copy of the GNU General Public License
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
@@ -102,6 +102,23 @@ int libbfio_list_clone(
      int (*value_clone_function)( intptr_t **destination, intptr_t *source, liberror_error_t **error ),
      liberror_error_t **error );
 
+int libbfio_list_get_amount_of_elements(
+     libbfio_list_t *list,
+     int *amount_of_elements,
+     liberror_error_t **error );
+
+int libbfio_list_get_element(
+     libbfio_list_t *list,
+     int element_index,
+     libbfio_list_element_t **element,
+     liberror_error_t **error );
+
+int libbfio_list_get_value(
+     libbfio_list_t *list,
+     int element_index,
+     intptr_t **value,
+     liberror_error_t **error );
+
 int libbfio_list_prepend_element(
      libbfio_list_t *list,
      libbfio_list_element_t *element,
@@ -139,17 +156,6 @@ int libbfio_list_remove_element(
      libbfio_list_element_t *element,
      liberror_error_t **error );
 
-int libbfio_list_get_amount_of_elements(
-     libbfio_list_t *list,
-     int *amount_of_elements,
-     liberror_error_t **error );
-
-int libbfio_list_get_element(
-     libbfio_list_t *list,
-     int element_index,
-     libbfio_list_element_t **element,
-     liberror_error_t **error );
-
 #if defined( __cplusplus )
 }
 #endif
diff --git a/liberror/Makefile.in b/liberror/Makefile.in
index c9d608a..e788fe1 100644
--- a/liberror/Makefile.in
+++ b/liberror/Makefile.in
@@ -120,6 +120,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -127,6 +128,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/libewf.pc b/libewf.pc
index aca0d28..142300c 100644
--- a/libewf.pc
+++ b/libewf.pc
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: libewf
 Description: Library to support the Expert Witness Compression Format (EWF)
-Version: 20090927
+Version: 20091003
 Libs: -L${libdir} -lewf
 Libs.private: -lz  
 Cflags: -I${includedir}
diff --git a/libewf.spec b/libewf.spec
index f64534c..be7886c 100644
--- a/libewf.spec
+++ b/libewf.spec
@@ -1,5 +1,5 @@
 Name: libewf
-Version: 20090927
+Version: 20091003
 Release: 1
 Summary: Library to support the Expert Witness Compression Format
 Group: System Environment/Libraries
diff --git a/libewf/Makefile.in b/libewf/Makefile.in
index d098ac7..e8cf1db 100644
--- a/libewf/Makefile.in
+++ b/libewf/Makefile.in
@@ -159,6 +159,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -166,6 +167,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/libewf/libewf_definitions.h b/libewf/libewf_definitions.h
index ac053b2..b83772c 100644
--- a/libewf/libewf_definitions.h
+++ b/libewf/libewf_definitions.h
@@ -38,11 +38,11 @@
 #include <libewf/definitions.h>
 
 #else
-#define LIBEWF_VERSION				20090927
+#define LIBEWF_VERSION				20091003
 
 /* The libewf version string
  */
-#define LIBEWF_VERSION_STRING			"20090927"
+#define LIBEWF_VERSION_STRING			"20091003"
 
 /* The libewf file access
  * bit 1	set to 1 for read access
diff --git a/libewf/libewf_handle.c b/libewf/libewf_handle.c
index fee7d73..8493d9d 100644
--- a/libewf/libewf_handle.c
+++ b/libewf/libewf_handle.c
@@ -1813,7 +1813,7 @@ off64_t libewf_handle_seek_offset(
 	}
 #if defined( HAVE_VERBOSE_OUTPUT )
 	libnotify_verbose_printf(
-	 "%s: seeking offset: %" PRIjd ".\n",
+	 "%s: seeking offset: %" PRIi64 ".\n",
 	 function,
 	 offset );
 #endif
diff --git a/libewf/libewf_header_values.c b/libewf/libewf_header_values.c
index 0cba476..59c6419 100644
--- a/libewf/libewf_header_values.c
+++ b/libewf/libewf_header_values.c
@@ -1088,6 +1088,23 @@ int libewf_header_values_parse_header_string(
 	}
 	if( amount_of_lines > 0 )
 	{
+		if( ( lines[ 0 ][ 0 ] < (libewf_character_t) '0' )
+		 || ( lines[ 0 ][ 0 ] > (libewf_character_t) '9' ) )
+		{
+			liberror_error_set(
+			 error,
+			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
+			 "%s: header values string not supported.",
+			 function );
+
+			libewf_string_split_values_free(
+			 lines,
+			 amount_of_lines,
+			 NULL );
+
+			return( -1 );
+		}
 		types_line_size = ( lines[ 2 ] == NULL ) ? 0 : 1 + libewf_string_length(
 		                                                    lines[ 2 ] );
 
@@ -1150,7 +1167,9 @@ int libewf_header_values_parse_header_string(
 			 function );
 		}
 #endif
-		for( iterator = 0; iterator < amount_of_types; iterator++ )
+		for( iterator = 0;
+		     iterator < amount_of_types;
+		     iterator++ )
 		{
 			type_string_length = libewf_string_length(
 					      types[ iterator ] );
@@ -1421,13 +1440,18 @@ int libewf_header_values_parse_header_string(
 				       _LIBEWF_STRING( "u" ),
 				       type_string_length ) == 0 ) )
 				{
+					if( ( value_string == NULL )
+					 || ( value_string == (libewf_character_t *) _LIBEWF_STRING( "" ) ) )
+					{
+						/* the string search function is not NULL safe */
+					}
 					/* If the date time values string contains spaces it's in the old header
 					 * format otherwise is in new header2 format
 					 */
-					if( libewf_string_search(
-					     value_string,
-					     (libewf_character_t) ' ',
-					     value_string_length ) != NULL )
+					else if( libewf_string_search(
+					          value_string,
+					          (libewf_character_t) ' ',
+					          value_string_length ) != NULL )
 					{
 						result = libewf_convert_date_header_value(
 							  value_string,
diff --git a/libewf/libewf_list_type.c b/libewf/libewf_list_type.c
index 4b03c09..36db8ab 100644
--- a/libewf/libewf_list_type.c
+++ b/libewf/libewf_list_type.c
@@ -7,16 +7,16 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
- *
+ * 
  * This software 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.
- *
- * You should have received a copy of the GNU General Public License
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
@@ -477,6 +477,194 @@ int libewf_list_clone(
 	return( 1 );
 }
 
+/* Retrieves the amount of elements in the list
+ * Returns 1 if successful or -1 on error
+ */
+int libewf_list_get_amount_of_elements(
+     libewf_list_t *list,
+     int *amount_of_elements,
+     liberror_error_t **error )
+{
+	static char *function = "libewf_list_get_amount_of_elements";
+
+	if( list == NULL )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
+		 "%s: invalid list.",
+		 function );
+
+		return( -1 );
+	}
+	if( amount_of_elements == NULL )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
+		 "%s: invalid amount of elements.",
+		 function );
+
+		return( -1 );
+	}
+	*amount_of_elements = list->amount_of_elements;
+
+	return( 1 );
+}
+
+/* Retrieves a specific element from the list
+ * Returns 1 if successful, 0 if not available or -1 on error
+ */
+int libewf_list_get_element(
+     libewf_list_t *list,
+     int element_index,
+     libewf_list_element_t **element,
+     liberror_error_t **error )
+{
+	libewf_list_element_t *list_element = NULL;
+	static char *function               = "libewf_list_get_element";
+	int iterator                        = 0;
+
+	if( list == NULL )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
+		 "%s: invalid list.",
+		 function );
+
+		return( -1 );
+	}
+	if( ( element_index < 0 )
+	 || ( element_index >= list->amount_of_elements ) )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_VALUE_OUT_OF_RANGE,
+		 "%s: invalid element index out of range.",
+		 function );
+
+		return( -1 );
+	}
+	if( element == NULL )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
+		 "%s: invalid element.",
+		 function );
+
+		return( -1 );
+	}
+	if( element_index < ( list->amount_of_elements / 2 ) )
+	{
+		list_element = list->first;
+
+		for( iterator = 0;
+		     iterator < element_index;
+		     iterator++ )
+		{
+			if( list_element == NULL )
+			{
+				liberror_error_set(
+				 error,
+				 LIBERROR_ERROR_DOMAIN_RUNTIME,
+				 LIBERROR_RUNTIME_ERROR_VALUE_MISSING,
+				 "%s: corruption detected in element: %d.",
+				 function,
+				 iterator + 1 );
+
+				return( -1 );
+			}
+			list_element = list_element->next;
+		}
+	}
+	else
+	{
+		list_element = list->last;
+
+		for( iterator = ( list->amount_of_elements - 1 );
+		     iterator > element_index;
+		     iterator-- )
+		{
+			if( list_element == NULL )
+			{
+				liberror_error_set(
+				 error,
+				 LIBERROR_ERROR_DOMAIN_RUNTIME,
+				 LIBERROR_RUNTIME_ERROR_VALUE_MISSING,
+				 "%s: corruption detected in element: %d.",
+				 function,
+				 iterator + 1 );
+
+				return( -1 );
+			}
+			list_element = list_element->previous;
+		}
+	}
+	*element = list_element;
+
+	if( list_element == NULL )
+	{
+		return( 0 );
+	}
+	return( 1 );
+}
+
+/* Retrieves a specific value from the list
+ * Returns 1 if successful, 0 if not available or -1 on error
+ */
+int libewf_list_get_value(
+     libewf_list_t *list,
+     int element_index,
+     intptr_t **value,
+     liberror_error_t **error )
+{
+	libewf_list_element_t *list_element = NULL;
+	static char *function               = "libewf_list_get_value";
+	int result                          = 0;
+
+	if( value == NULL )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
+		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
+		 "%s: invalid value.",
+		 function );
+
+		return( -1 );
+	}
+	result = libewf_list_get_element(
+	          list,
+	          element_index,
+	          &list_element,
+	          error );
+
+	if( result == -1 )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_RUNTIME,
+		 LIBERROR_RUNTIME_ERROR_GET_FAILED,
+		 "%s: unable to retrieve list element for index: %d.",
+		 function,
+		 element_index );
+
+		return( -1 );
+	}
+	else if( result != 0 )
+	{
+		*value = list_element->value;
+	}
+	return( 1 );
+}
+
 /* Prepend an element to the list
  * Returns 1 if successful or -1 on error
  */
@@ -1043,142 +1231,3 @@ int libewf_list_remove_element(
 	return( 1 );
 }
 
-/* Retrieves the amount of elements in the list
- * Returns 1 if successful or -1 on error
- */
-int libewf_list_get_amount_of_elements(
-     libewf_list_t *list,
-     int *amount_of_elements,
-     liberror_error_t **error )
-{
-	static char *function = "libewf_list_get_amount_of_elements";
-
-	if( list == NULL )
-	{
-		liberror_error_set(
-		 error,
-		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
-		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
-		 "%s: invalid list.",
-		 function );
-
-		return( -1 );
-	}
-	if( amount_of_elements == NULL )
-	{
-		liberror_error_set(
-		 error,
-		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
-		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
-		 "%s: invalid amount of elements.",
-		 function );
-
-		return( -1 );
-	}
-	*amount_of_elements = list->amount_of_elements;
-
-	return( 1 );
-}
-
-/* Retrieves a specific element from the list
- * Returns 1 if successful, 0 if not available or -1 on error
- */
-int libewf_list_get_element(
-     libewf_list_t *list,
-     int element_index,
-     libewf_list_element_t **element,
-     liberror_error_t **error )
-{
-	libewf_list_element_t *list_element = NULL;
-	static char *function               = "libewf_list_get_element";
-	int iterator                        = 0;
-
-	if( list == NULL )
-	{
-		liberror_error_set(
-		 error,
-		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
-		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
-		 "%s: invalid list.",
-		 function );
-
-		return( -1 );
-	}
-	if( ( element_index < 0 )
-	 || ( element_index >= list->amount_of_elements ) )
-	{
-		liberror_error_set(
-		 error,
-		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
-		 LIBERROR_ARGUMENT_ERROR_VALUE_OUT_OF_RANGE,
-		 "%s: invalid element index out of range.",
-		 function );
-
-		return( -1 );
-	}
-	if( element == NULL )
-	{
-		liberror_error_set(
-		 error,
-		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
-		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
-		 "%s: invalid element.",
-		 function );
-
-		return( -1 );
-	}
-	if( element_index < ( list->amount_of_elements / 2 ) )
-	{
-		list_element = list->first;
-
-		for( iterator = 0;
-		     iterator < element_index;
-		     iterator++ )
-		{
-			if( list_element == NULL )
-			{
-				liberror_error_set(
-				 error,
-				 LIBERROR_ERROR_DOMAIN_RUNTIME,
-				 LIBERROR_RUNTIME_ERROR_VALUE_MISSING,
-				 "%s: corruption detected in element: %d.",
-				 function,
-				 iterator + 1 );
-
-				return( -1 );
-			}
-			list_element = list_element->next;
-		}
-	}
-	else
-	{
-		list_element = list->last;
-
-		for( iterator = ( list->amount_of_elements - 1 );
-		     iterator > element_index;
-		     iterator-- )
-		{
-			if( list_element == NULL )
-			{
-				liberror_error_set(
-				 error,
-				 LIBERROR_ERROR_DOMAIN_RUNTIME,
-				 LIBERROR_RUNTIME_ERROR_VALUE_MISSING,
-				 "%s: corruption detected in element: %d.",
-				 function,
-				 iterator + 1 );
-
-				return( -1 );
-			}
-			list_element = list_element->previous;
-		}
-	}
-	*element = list_element;
-
-	if( list_element == NULL )
-	{
-		return( 0 );
-	}
-	return( 1 );
-}
-
diff --git a/libewf/libewf_list_type.h b/libewf/libewf_list_type.h
index 875f52c..6b16249 100644
--- a/libewf/libewf_list_type.h
+++ b/libewf/libewf_list_type.h
@@ -7,16 +7,16 @@
  * Refer to AUTHORS for acknowledgements.
  *
  * This software is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
- *
+ * 
  * This software 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.
- *
- * You should have received a copy of the GNU General Public License
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
  * along with this software.  If not, see <http://www.gnu.org/licenses/>.
  */
 
@@ -102,6 +102,23 @@ int libewf_list_clone(
      int (*value_clone_function)( intptr_t **destination, intptr_t *source, liberror_error_t **error ),
      liberror_error_t **error );
 
+int libewf_list_get_amount_of_elements(
+     libewf_list_t *list,
+     int *amount_of_elements,
+     liberror_error_t **error );
+
+int libewf_list_get_element(
+     libewf_list_t *list,
+     int element_index,
+     libewf_list_element_t **element,
+     liberror_error_t **error );
+
+int libewf_list_get_value(
+     libewf_list_t *list,
+     int element_index,
+     intptr_t **value,
+     liberror_error_t **error );
+
 int libewf_list_prepend_element(
      libewf_list_t *list,
      libewf_list_element_t *element,
@@ -139,17 +156,6 @@ int libewf_list_remove_element(
      libewf_list_element_t *element,
      liberror_error_t **error );
 
-int libewf_list_get_amount_of_elements(
-     libewf_list_t *list,
-     int *amount_of_elements,
-     liberror_error_t **error );
-
-int libewf_list_get_element(
-     libewf_list_t *list,
-     int element_index,
-     libewf_list_element_t **element,
-     liberror_error_t **error );
-
 #if defined( __cplusplus )
 }
 #endif
diff --git a/libewf/libewf_offset_table.c b/libewf/libewf_offset_table.c
index e77ff8e..7b07f8e 100644
--- a/libewf/libewf_offset_table.c
+++ b/libewf/libewf_offset_table.c
@@ -1453,7 +1453,7 @@ off64_t libewf_offset_table_seek_chunk_offset(
 		 error,
 		 LIBERROR_ERROR_DOMAIN_IO,
 		 LIBERROR_IO_ERROR_SEEK_FAILED,
-		 "%s: unable to find chunk offset: %" PRIjd ".",
+		 "%s: unable to find chunk offset: %" PRIi64 ".",
 		 function,
 		 offset_table->chunk_offset[ chunk ].file_offset );
 
diff --git a/libewf/libewf_section.c b/libewf/libewf_section.c
index bce5c7d..7198304 100644
--- a/libewf/libewf_section.c
+++ b/libewf/libewf_section.c
@@ -428,7 +428,6 @@ ssize_t libewf_section_compressed_string_read(
          liberror_error_t **error )
 {
 	uint8_t *compressed_string = NULL;
-	uint8_t *uncompressed      = NULL;
 	static char *function      = "libewf_section_compressed_string_read";
 	void *reallocation         = NULL;
 	ssize_t read_count         = 0;
@@ -445,8 +444,7 @@ ssize_t libewf_section_compressed_string_read(
 
 		return( -1 );
 	}
-	if( ( uncompressed_string == NULL )
-	 || ( *uncompressed_string != NULL ) )
+	if( uncompressed_string == NULL )
 	{
 		liberror_error_set(
 		 error,
@@ -457,6 +455,17 @@ ssize_t libewf_section_compressed_string_read(
 
 		return( -1 );
 	}
+	if( *uncompressed_string != NULL )
+	{
+		liberror_error_set(
+		 error,
+		 LIBERROR_ERROR_DOMAIN_RUNTIME,
+		 LIBERROR_RUNTIME_ERROR_VALUE_ALREADY_SET,
+		 "%s: invalid uncompressed string value already set.",
+		 function );
+
+		return( -1 );
+	}
 	if( uncompressed_string_size == NULL )
 	{
 		liberror_error_set(
@@ -518,10 +527,10 @@ ssize_t libewf_section_compressed_string_read(
 	 */
 	*uncompressed_string_size = 2 * compressed_string_size;
 
-	uncompressed = (uint8_t *) memory_allocate(
-	                            sizeof( uint8_t ) * *uncompressed_string_size );
+	*uncompressed_string = (uint8_t *) memory_allocate(
+	                                    sizeof( uint8_t ) * *uncompressed_string_size );
 
-	if( uncompressed == NULL )
+	if( *uncompressed_string == NULL )
 	{
 		liberror_error_set(
 		 error,
@@ -536,7 +545,7 @@ ssize_t libewf_section_compressed_string_read(
 		return( -1 );
 	}
 	result = libewf_uncompress(
-	          uncompressed,
+	          *uncompressed_string,
 	          uncompressed_string_size,
 	          compressed_string,
 	          compressed_string_size,
@@ -549,7 +558,7 @@ ssize_t libewf_section_compressed_string_read(
 		 error );
 
 		reallocation = memory_reallocate(
-		                uncompressed,
+		                *uncompressed_string,
 		                sizeof( uint8_t ) * *uncompressed_string_size );
 
 		if( reallocation == NULL )
@@ -564,14 +573,16 @@ ssize_t libewf_section_compressed_string_read(
 			memory_free(
 			 compressed_string );
 			memory_free(
-			 uncompressed );
+			 *uncompressed_string );
+
+			*uncompressed_string = NULL;
 
 			return( -1 );
 		}
-		uncompressed = (uint8_t *) reallocation;
+		*uncompressed_string = (uint8_t *) reallocation;
 
 		result = libewf_uncompress(
-		          uncompressed,
+		          *uncompressed_string,
 		          uncompressed_string_size,
 		          compressed_string,
 		          compressed_string_size,
@@ -590,11 +601,20 @@ ssize_t libewf_section_compressed_string_read(
 		 function );
 
 		memory_free(
-		 uncompressed );
+		 *uncompressed_string );
+
+		*uncompressed_string = NULL;
 
 		return( -1 );
 	}
-	*uncompressed_string = uncompressed;
+#if defined( HAVE_DEBUG_OUTPUT )
+	libnotify_verbose_printf(
+	 "%s: uncompressed string:\n",
+	 function );
+	libnotify_verbose_print_data(
+	 *uncompressed_string,
+	 *uncompressed_string_size );
+#endif
 
 	return( read_count );
 }
@@ -4189,7 +4209,8 @@ ssize_t libewf_section_data_read(
 	 data->signature,
 	 5 );
 #endif
-	if( media_values->media_type != data->media_type )
+	if( ( data->media_type != 0 )
+	 && ( data->media_type != media_values->media_type ) )
 	{
 		liberror_error_set(
 		 error,
@@ -4207,7 +4228,8 @@ ssize_t libewf_section_data_read(
 	 amount_of_chunks,
 	 data->amount_of_chunks );
 
-	if( media_values->amount_of_chunks != amount_of_chunks )
+	if( ( amount_of_chunks != 0 )
+	 && ( amount_of_chunks != media_values->amount_of_chunks ) )
 	{
 		liberror_error_set(
 		 error,
@@ -4227,7 +4249,8 @@ ssize_t libewf_section_data_read(
 	 sectors_per_chunk,
 	 data->sectors_per_chunk );
 
-	if( media_values->sectors_per_chunk != sectors_per_chunk )
+	if( ( sectors_per_chunk != 0 )
+	 && ( sectors_per_chunk != media_values->sectors_per_chunk ) )
 	{
 		liberror_error_set(
 		 error,
@@ -4245,7 +4268,8 @@ ssize_t libewf_section_data_read(
 	 bytes_per_sector,
 	 data->bytes_per_sector );
 
-	if( media_values->bytes_per_sector != bytes_per_sector )
+	if( ( bytes_per_sector != 0 )
+	 && ( bytes_per_sector != media_values->bytes_per_sector ) )
 	{
 		liberror_error_set(
 		 error,
@@ -4263,7 +4287,8 @@ ssize_t libewf_section_data_read(
 	 amount_of_sectors,
 	 data->amount_of_sectors );
 
-	if( media_values->amount_of_sectors != amount_of_sectors )
+	if( ( amount_of_sectors != 0 )
+	 && ( amount_of_sectors != media_values->amount_of_sectors ) )
 	{
 		liberror_error_set(
 		 error,
@@ -4281,7 +4306,8 @@ ssize_t libewf_section_data_read(
 	 error_granularity,
 	 data->error_granularity );
 
-	if( media_values->error_granularity != error_granularity )
+	if( ( error_granularity != 0 )
+	 && ( error_granularity != media_values->error_granularity ) )
 	{
 		liberror_error_set(
 		 error,
@@ -4295,7 +4321,8 @@ ssize_t libewf_section_data_read(
 
 		return( -1 );
 	}
-	if( media_values->media_flags != data->media_flags )
+	if( ( data->media_flags != 0 )
+	 && ( data->media_flags != media_values->media_flags ) )
 	{
 		liberror_error_set(
 		 error,
@@ -4309,22 +4336,40 @@ ssize_t libewf_section_data_read(
 
 		return( -1 );
 	}
-	if( memory_compare(
-	     media_values->guid,
-	     data->guid,
-	     16 ) != 0 )
-	{
-		liberror_error_set(
-		 error,
-		 LIBERROR_ERROR_DOMAIN_INPUT,
-		 LIBERROR_INPUT_ERROR_VALUE_MISMATCH,
-		 "%s: GUID does not match in data section.",
-		 function );
+	if( ( data->guid[ 0 ] != 0 )
+	 || ( data->guid[ 1 ] != 0 )
+	 || ( data->guid[ 2 ] != 0 )
+	 || ( data->guid[ 3 ] != 0 )
+	 || ( data->guid[ 4 ] != 0 )
+	 || ( data->guid[ 5 ] != 0 )
+	 || ( data->guid[ 6 ] != 0 )
+	 || ( data->guid[ 7 ] != 0 )
+	 || ( data->guid[ 8 ] != 0 )
+	 || ( data->guid[ 9 ] != 0 )
+	 || ( data->guid[ 10 ] != 0 )
+	 || ( data->guid[ 11 ] != 0 )
+	 || ( data->guid[ 12 ] != 0 )
+	 || ( data->guid[ 13 ] != 0 )
+	 || ( data->guid[ 14 ] != 0 )
+	 || ( data->guid[ 15 ] != 0 ) )
+	{
+		if( memory_compare(
+		     media_values->guid,
+		     data->guid,
+		     16 ) != 0 )
+		{
+			liberror_error_set(
+			 error,
+			 LIBERROR_ERROR_DOMAIN_INPUT,
+			 LIBERROR_INPUT_ERROR_VALUE_MISMATCH,
+			 "%s: GUID does not match in data section.",
+			 function );
 
-		memory_free(
-		 data );
+			memory_free(
+			 data );
 
-		return( -1 );
+			return( -1 );
+		}
 	}
 	memory_free(
 	 data );
diff --git a/libewf/libewf_segment_file.c b/libewf/libewf_segment_file.c
index b33f6d3..ae9bd1a 100644
--- a/libewf/libewf_segment_file.c
+++ b/libewf/libewf_segment_file.c
@@ -1217,7 +1217,7 @@ ssize_t libewf_segment_file_write_chunks_section_correction(
 	{
 #if defined( HAVE_VERBOSE_OUTPUT )
 		libnotify_verbose_printf(
-		 "%s: correcting table section size: %" PRIu64 " offset: %" PRIjd ".\n",
+		 "%s: correcting table section size: %" PRIu64 " offset: %" PRIi64 ".\n",
 		 function,
 		 chunks_section_size,
 		 chunks_section_offset );
@@ -1256,7 +1256,7 @@ ssize_t libewf_segment_file_write_chunks_section_correction(
 	{
 #if defined( HAVE_VERBOSE_OUTPUT )
 		libnotify_verbose_printf(
-		 "%s: correcting sectors section size: %" PRIzu " offset: %" PRIjd ".\n",
+		 "%s: correcting sectors section size: %" PRIu64 " offset: %" PRIi64 ".\n",
 		 function,
 		 chunks_section_size,
 		 chunks_section_offset );
@@ -1518,7 +1518,7 @@ ssize_t libewf_segment_file_write_chunk(
 		chunk_type = "compressed";
 	}
 	libnotify_verbose_printf(
-	 "%s: writing %s chunk: %" PRIu32 " at offset: %" PRIjd " with size: %" PRIzu ", with CRC: %" PRIu32 ".\n",
+	 "%s: writing %s chunk: %" PRIu32 " at offset: %" PRIi64 " with size: %" PRIzu ", with CRC: %" PRIu32 ".\n",
 	 function,
 	 chunk_type,
 	 chunk,
@@ -1695,7 +1695,7 @@ ssize_t libewf_segment_file_write_delta_chunk(
 
 #if defined( HAVE_VERBOSE_OUTPUT )
 	libnotify_verbose_printf(
-	 "%s: writing uncompressed delta chunk: %" PRIu32 " at offset: %" PRIjd " with size: %" PRIzu ", with CRC: %" PRIu32 ".\n",
+	 "%s: writing uncompressed delta chunk: %" PRIu32 " at offset: %" PRIi64 " with size: %" PRIzu ", with CRC: %" PRIu32 ".\n",
 	 function,
 	 chunk,
 	 segment_file_offset,
diff --git a/libewf/libewf_string.c b/libewf/libewf_string.c
index c1d67d1..ce1a034 100644
--- a/libewf/libewf_string.c
+++ b/libewf/libewf_string.c
@@ -167,7 +167,7 @@ int libewf_string_split(
 		return( 1 );
 	}
 	*split_values = (libewf_character_t **) memory_allocate(
-	                                         ( sizeof( libewf_character_t * ) * *amount_of_split_values ) );
+	                                         sizeof( libewf_character_t * ) * *amount_of_split_values );
 
 	if( *split_values == NULL )
 	{
@@ -207,7 +207,9 @@ int libewf_string_split(
 
 	/* Empty values are stored as strings only containing the end of character
 	 */
-	for( split_value_iterator = 0; split_value_iterator < *amount_of_split_values; split_value_iterator++ )
+	for( split_value_iterator = 0;
+	     split_value_iterator < *amount_of_split_values;
+	     split_value_iterator++ )
 	{
 		if( split_value_end != string )
 		{
@@ -278,7 +280,7 @@ int libewf_string_split(
 
 				return( -1 );
 			}
-			( *split_values )[ split_value_iterator ][ split_value_size - 1 ] = 0;
+			( ( *split_values )[ split_value_iterator ] )[ split_value_size - 1 ] = 0;
 		}
 		/* Include delimiter character
 		 */
@@ -316,7 +318,9 @@ int libewf_string_split_values_free(
 
 		return( -1 );
 	}
-	for( split_value_iterator = 0; split_value_iterator < amount_of_split_values; split_value_iterator++ )
+	for( split_value_iterator = 0;
+	     split_value_iterator < amount_of_split_values;
+	     split_value_iterator++ )
 	{
 		if( split_values[ split_value_iterator ] != NULL )
 		{
diff --git a/libewf/libewf_write_io_handle.c b/libewf/libewf_write_io_handle.c
index fbd3186..661b373 100644
--- a/libewf/libewf_write_io_handle.c
+++ b/libewf/libewf_write_io_handle.c
@@ -2697,7 +2697,7 @@ ssize_t libewf_write_io_handle_write_existing_chunk(
 				 error,
 				 LIBERROR_ERROR_DOMAIN_IO,
 				 LIBERROR_IO_ERROR_SEEK_FAILED,
-				 "%s: cannot find offset: %" PRIjd ".",
+				 "%s: cannot find offset: %" PRIi64 ".",
 				 function,
 				 last_section_start_offset );
 
@@ -2871,7 +2871,7 @@ ssize_t libewf_write_io_handle_write_existing_chunk(
 		return( -1 );
 	}
 	libnotify_verbose_printf(
-	 "%s: writing chunk at offset: %" PRIjd ".\n",
+	 "%s: writing chunk at offset: %" PRIi64 ".\n",
 	 function,
 	 segment_file_offset );
 #endif
diff --git a/libnotify/Makefile.in b/libnotify/Makefile.in
index 1dba41e..1a1e746 100644
--- a/libnotify/Makefile.in
+++ b/libnotify/Makefile.in
@@ -120,6 +120,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -127,6 +128,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/libsystem/Makefile.in b/libsystem/Makefile.in
index 3cb1017..53ccdd2 100644
--- a/libsystem/Makefile.in
+++ b/libsystem/Makefile.in
@@ -123,6 +123,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -130,6 +131,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/libuna/Makefile.am b/libuna/Makefile.am
index 379a9b8..3aaab3f 100644
--- a/libuna/Makefile.am
+++ b/libuna/Makefile.am
@@ -26,6 +26,8 @@ libuna_la_SOURCES = \
 	libuna_codepage_iso_8859_14.c libuna_codepage_iso_8859_14.h \
 	libuna_codepage_iso_8859_15.c libuna_codepage_iso_8859_15.h \
 	libuna_codepage_iso_8859_16.c libuna_codepage_iso_8859_16.h \
+	libuna_codepage_koi8_r.c libuna_codepage_koi8_r.h \
+	libuna_codepage_koi8_u.c libuna_codepage_koi8_u.h \
 	libuna_codepage_windows_874.c libuna_codepage_windows_874.h \
 	libuna_codepage_windows_1250.c libuna_codepage_windows_1250.h \
 	libuna_codepage_windows_1251.c libuna_codepage_windows_1251.h \
diff --git a/libuna/Makefile.in b/libuna/Makefile.in
index 1cc603f..cb11edf 100644
--- a/libuna/Makefile.in
+++ b/libuna/Makefile.in
@@ -65,6 +65,8 @@ am__libuna_la_SOURCES_DIST = libuna_byte_stream.c libuna_byte_stream.h \
 	libuna_codepage_iso_8859_14.c libuna_codepage_iso_8859_14.h \
 	libuna_codepage_iso_8859_15.c libuna_codepage_iso_8859_15.h \
 	libuna_codepage_iso_8859_16.c libuna_codepage_iso_8859_16.h \
+	libuna_codepage_koi8_r.c libuna_codepage_koi8_r.h \
+	libuna_codepage_koi8_u.c libuna_codepage_koi8_u.h \
 	libuna_codepage_windows_874.c libuna_codepage_windows_874.h \
 	libuna_codepage_windows_1250.c libuna_codepage_windows_1250.h \
 	libuna_codepage_windows_1251.c libuna_codepage_windows_1251.h \
@@ -99,6 +101,8 @@ am__libuna_la_SOURCES_DIST = libuna_byte_stream.c libuna_byte_stream.h \
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_iso_8859_14.lo \
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_iso_8859_15.lo \
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_iso_8859_16.lo \
+ at HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_koi8_r.lo \
+ at HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_koi8_u.lo \
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_windows_874.lo \
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_windows_1250.lo \
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_windows_1251.lo \
@@ -188,6 +192,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -195,6 +200,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
@@ -321,6 +327,8 @@ top_srcdir = @top_srcdir@
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_iso_8859_14.c libuna_codepage_iso_8859_14.h \
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_iso_8859_15.c libuna_codepage_iso_8859_15.h \
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_iso_8859_16.c libuna_codepage_iso_8859_16.h \
+ at HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_koi8_r.c libuna_codepage_koi8_r.h \
+ at HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_koi8_u.c libuna_codepage_koi8_u.h \
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_windows_874.c libuna_codepage_windows_874.h \
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_windows_1250.c libuna_codepage_windows_1250.h \
 @HAVE_LOCAL_LIBUNA_TRUE@	libuna_codepage_windows_1251.c libuna_codepage_windows_1251.h \
@@ -411,6 +419,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libuna_codepage_iso_8859_7.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libuna_codepage_iso_8859_8.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libuna_codepage_iso_8859_9.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libuna_codepage_koi8_r.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libuna_codepage_koi8_u.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libuna_codepage_windows_1250.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libuna_codepage_windows_1251.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libuna_codepage_windows_1252.Plo at am__quote@
diff --git a/libuna/libuna_codepage_koi8_r.c b/libuna/libuna_codepage_koi8_r.c
new file mode 100644
index 0000000..63215d4
--- /dev/null
+++ b/libuna/libuna_codepage_koi8_r.c
@@ -0,0 +1,70 @@
+/*
+ * KOI8-R codepage (Russian Cyrillic) function
+ *
+ * Copyright (c) 2009, Joachim Metz <forensics at hoffmannbv.nl>,
+ * Hoffmann Investigations. All rights reserved.
+ *
+ * Refer to AUTHORS for acknowledgements.
+ *
+ * This software is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This software 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.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <common.h>
+#include <types.h>
+
+#include "libuna_codepage_koi8_r.h"
+
+/* Extended ASCII to Unicode character lookup table for KOI8-R codepage
+ * Unknown are filled with the Unicode replacement character 0xfffd
+ */
+const uint16_t libuna_codepage_koi8_r_byte_stream_to_unicode_base_0x80[ 128 ] = {
+	0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
+	0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
+	0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
+	0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
+	0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
+	0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e,
+	0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
+	0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9,
+	0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
+	0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
+	0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
+	0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
+	0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
+	0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
+	0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
+	0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
+};
+
+/* Unicode to ASCII character lookup table for KOI8-R codepage
+ * Unknown are filled with the ASCII replacement character 0x1a
+ */
+const uint8_t libuna_codepage_koi8_r_unicode_to_byte_stream_base_0x0410[ 64 ] = {
+	0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
+	0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
+	0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
+	0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
+	0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
+	0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
+	0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
+	0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1
+};
+
+const uint8_t libuna_codepage_koi8_r_unicode_to_byte_stream_base_0x2550[ 32 ] = {
+	0xa0, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8,
+	0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0,
+	0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,
+	0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0x1a, 0x1a, 0x1a
+};
+
diff --git a/libuna/libuna_codepage_koi8_r.h b/libuna/libuna_codepage_koi8_r.h
new file mode 100644
index 0000000..ba4db71
--- /dev/null
+++ b/libuna/libuna_codepage_koi8_r.h
@@ -0,0 +1,87 @@
+/*
+ * KOI8-R codepage (Russian Cyrillic) functions
+ *
+ * Copyright (c) 2009, Joachim Metz <forensics at hoffmannbv.nl>,
+ * Hoffmann Investigations. All rights reserved.
+ *
+ * Refer to AUTHORS for acknowledgements.
+ *
+ * This software is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This software 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.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined( _LIBUNA_CODEPAGE_KOI8_R_H )
+#define _LIBUNA_CODEPAGE_KOI8_R_H
+
+#include <common.h>
+#include <types.h>
+
+#if defined( __cplusplus )
+extern "C" {
+#endif
+
+extern const uint16_t libuna_codepage_koi8_r_byte_stream_to_unicode_base_0x80[ 128 ];
+
+extern const uint8_t libuna_codepage_koi8_r_unicode_to_byte_stream_base_0x0410[ 64 ];
+extern const uint8_t libuna_codepage_koi8_r_unicode_to_byte_stream_base_0x2550[ 32 ];
+
+#define libuna_codepage_koi8_r_byte_stream_to_unicode( byte_stream_character ) \
+	( byte_stream_character < 0x80 ) ? byte_stream_character : libuna_codepage_koi8_r_byte_stream_to_unicode_base_0x80[ byte_stream_character - 0x80 ]
+
+#define libuna_codepage_koi8_r_unicode_to_byte_stream( unicode_character ) \
+	( unicode_character < 0x0080 ) ? (uint8_t) unicode_character : \
+	( unicode_character == 0x00a0 ) ? 0x9a : \
+	( unicode_character == 0x00a9 ) ? 0xbf : \
+	( unicode_character == 0x00b0 ) ? 0x9c : \
+	( unicode_character == 0x00b2 ) ? 0x9d : \
+	( unicode_character == 0x00b8 ) ? 0x9e : \
+	( unicode_character == 0x00f8 ) ? 0x9f : \
+	( unicode_character == 0x0401 ) ? 0xb3 : \
+	( ( unicode_character >= 0x0410 ) && ( unicode_character < 0x0450 ) ) ? libuna_codepage_koi8_r_unicode_to_byte_stream_base_0x0410[ unicode_character - 0x0410 ] : \
+	( unicode_character == 0x0451 ) ? 0xa3 : \
+	( unicode_character == 0x2219 ) ? 0x95 : \
+	( unicode_character == 0x221a ) ? 0x96 : \
+	( unicode_character == 0x2248 ) ? 0x97 : \
+	( unicode_character == 0x2264 ) ? 0x98 : \
+	( unicode_character == 0x2265 ) ? 0x99 : \
+	( unicode_character == 0x2320 ) ? 0x93 : \
+	( unicode_character == 0x2321 ) ? 0x9b : \
+	( unicode_character == 0x2500 ) ? 0x80 : \
+	( unicode_character == 0x2502 ) ? 0x81 : \
+	( unicode_character == 0x250c ) ? 0x82 : \
+	( unicode_character == 0x2510 ) ? 0x83 : \
+	( unicode_character == 0x2514 ) ? 0x84 : \
+	( unicode_character == 0x2518 ) ? 0x85 : \
+	( unicode_character == 0x251c ) ? 0x86 : \
+	( unicode_character == 0x2524 ) ? 0x87 : \
+	( unicode_character == 0x252c ) ? 0x88 : \
+	( unicode_character == 0x2534 ) ? 0x89 : \
+	( unicode_character == 0x253c ) ? 0x8a : \
+	( ( unicode_character >= 0x2550 ) && ( unicode_character < 0x2570 ) ) ? libuna_codepage_koi8_r_unicode_to_byte_stream_base_0x2550[ unicode_character - 0x2550 ] : \
+	( unicode_character == 0x2580 ) ? 0x8b : \
+	( unicode_character == 0x2584 ) ? 0x8c : \
+	( unicode_character == 0x2588 ) ? 0x8d : \
+	( unicode_character == 0x258c ) ? 0x8e : \
+	( unicode_character == 0x2590 ) ? 0x8f : \
+	( unicode_character == 0x2591 ) ? 0x90 : \
+	( unicode_character == 0x2592 ) ? 0x91 : \
+	( unicode_character == 0x2593 ) ? 0x92 : \
+	( unicode_character == 0x25a0 ) ? 0x94 : \
+	0x1a
+
+#if defined( __cplusplus )
+}
+#endif
+
+#endif
+
diff --git a/libuna/libuna_codepage_koi8_u.c b/libuna/libuna_codepage_koi8_u.c
new file mode 100644
index 0000000..ec19b23
--- /dev/null
+++ b/libuna/libuna_codepage_koi8_u.c
@@ -0,0 +1,70 @@
+/*
+ * KOI8-U codepage (Ukrainian Cyrillic) function
+ *
+ * Copyright (c) 2009, Joachim Metz <forensics at hoffmannbv.nl>,
+ * Hoffmann Investigations. All rights reserved.
+ *
+ * Refer to AUTHORS for acknowledgements.
+ *
+ * This software is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This software 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.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <common.h>
+#include <types.h>
+
+#include "libuna_codepage_koi8_u.h"
+
+/* Extended ASCII to Unicode character lookup table for KOI8-U codepage
+ * Unknown are filled with the Unicode replacement character 0xfffd
+ */
+const uint16_t libuna_codepage_koi8_u_byte_stream_to_unicode_base_0x80[ 128 ] = {
+	0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
+	0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
+	0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
+	0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
+	0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
+	0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e,
+	0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
+	0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9,
+	0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
+	0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
+	0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
+	0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
+	0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
+	0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
+	0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
+	0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
+};
+
+/* Unicode to ASCII character lookup table for KOI8-U codepage
+ * Unknown are filled with the ASCII replacement character 0x1a
+ */
+const uint8_t libuna_codepage_koi8_u_unicode_to_byte_stream_base_0x0410[ 64 ] = {
+	0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
+	0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
+	0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
+	0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
+	0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
+	0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
+	0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
+	0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1
+};
+
+const uint8_t libuna_codepage_koi8_u_unicode_to_byte_stream_base_0x2550[ 32 ] = {
+	0xa0, 0xa1, 0xa2, 0x1a, 0xa5, 0x1a, 0x1a, 0xa8,
+	0xa9, 0xaa, 0xab, 0xac, 0x1a, 0xae, 0xaf, 0xb0,
+	0xb1, 0xb2, 0x1a, 0xb5, 0x1a, 0x1a, 0xb8, 0xb9,
+	0xba, 0xbb, 0xbc, 0x1a, 0xbe, 0x1a, 0x1a, 0x1a
+};
+
diff --git a/libuna/libuna_codepage_koi8_u.h b/libuna/libuna_codepage_koi8_u.h
new file mode 100644
index 0000000..20c26bf
--- /dev/null
+++ b/libuna/libuna_codepage_koi8_u.h
@@ -0,0 +1,95 @@
+/*
+ * KOI8-U codepage (Ukrainian Cyrillic) functions
+ *
+ * Copyright (c) 2009, Joachim Metz <forensics at hoffmannbv.nl>,
+ * Hoffmann Investigations. All rights reserved.
+ *
+ * Refer to AUTHORS for acknowledgements.
+ *
+ * This software is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This software 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.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined( _LIBUNA_CODEPAGE_KOI8_U_H )
+#define _LIBUNA_CODEPAGE_KOI8_U_H
+
+#include <common.h>
+#include <types.h>
+
+#if defined( __cplusplus )
+extern "C" {
+#endif
+
+extern const uint16_t libuna_codepage_koi8_u_byte_stream_to_unicode_base_0x80[ 128 ];
+
+extern const uint8_t libuna_codepage_koi8_u_unicode_to_byte_stream_base_0x0410[ 64 ];
+extern const uint8_t libuna_codepage_koi8_u_unicode_to_byte_stream_base_0x2550[ 32 ];
+
+#define libuna_codepage_koi8_u_byte_stream_to_unicode( byte_stream_character ) \
+	( byte_stream_character < 0x80 ) ? byte_stream_character : libuna_codepage_koi8_u_byte_stream_to_unicode_base_0x80[ byte_stream_character - 0x80 ]
+
+#define libuna_codepage_koi8_u_unicode_to_byte_stream( unicode_character ) \
+	( unicode_character < 0x0080 ) ? (uint8_t) unicode_character : \
+	( unicode_character == 0x00a0 ) ? 0x9a : \
+	( unicode_character == 0x00a9 ) ? 0xbf : \
+	( unicode_character == 0x00b0 ) ? 0x9c : \
+	( unicode_character == 0x00b2 ) ? 0x9d : \
+	( unicode_character == 0x00b8 ) ? 0x9e : \
+	( unicode_character == 0x00f8 ) ? 0x9f : \
+	( unicode_character == 0x0401 ) ? 0xb3 : \
+	( unicode_character == 0x0404 ) ? 0xb4 : \
+	( unicode_character == 0x0406 ) ? 0xb6 : \
+	( unicode_character == 0x0407 ) ? 0xb7 : \
+	( ( unicode_character >= 0x0410 ) && ( unicode_character < 0x0450 ) ) ? libuna_codepage_koi8_u_unicode_to_byte_stream_base_0x0410[ unicode_character - 0x0410 ] : \
+	( unicode_character == 0x0451 ) ? 0xa3 : \
+	( unicode_character == 0x0454 ) ? 0xa4 : \
+	( unicode_character == 0x0456 ) ? 0xa6 : \
+	( unicode_character == 0x0457 ) ? 0xa7 : \
+	( unicode_character == 0x0490 ) ? 0xbd : \
+	( unicode_character == 0x0491 ) ? 0xad : \
+	( unicode_character == 0x2219 ) ? 0x95 : \
+	( unicode_character == 0x221a ) ? 0x96 : \
+	( unicode_character == 0x2248 ) ? 0x97 : \
+	( unicode_character == 0x2264 ) ? 0x98 : \
+	( unicode_character == 0x2265 ) ? 0x99 : \
+	( unicode_character == 0x2320 ) ? 0x93 : \
+	( unicode_character == 0x2321 ) ? 0x9b : \
+	( unicode_character == 0x2500 ) ? 0x80 : \
+	( unicode_character == 0x2502 ) ? 0x81 : \
+	( unicode_character == 0x250c ) ? 0x82 : \
+	( unicode_character == 0x2510 ) ? 0x83 : \
+	( unicode_character == 0x2514 ) ? 0x84 : \
+	( unicode_character == 0x2518 ) ? 0x85 : \
+	( unicode_character == 0x251c ) ? 0x86 : \
+	( unicode_character == 0x2524 ) ? 0x87 : \
+	( unicode_character == 0x252c ) ? 0x88 : \
+	( unicode_character == 0x2534 ) ? 0x89 : \
+	( unicode_character == 0x253c ) ? 0x8a : \
+	( ( unicode_character >= 0x2550 ) && ( unicode_character < 0x2570 ) ) ? libuna_codepage_koi8_u_unicode_to_byte_stream_base_0x2550[ unicode_character - 0x2550 ] : \
+	( unicode_character == 0x2580 ) ? 0x8b : \
+	( unicode_character == 0x2584 ) ? 0x8c : \
+	( unicode_character == 0x2588 ) ? 0x8d : \
+	( unicode_character == 0x258c ) ? 0x8e : \
+	( unicode_character == 0x2590 ) ? 0x8f : \
+	( unicode_character == 0x2591 ) ? 0x90 : \
+	( unicode_character == 0x2592 ) ? 0x91 : \
+	( unicode_character == 0x2593 ) ? 0x92 : \
+	( unicode_character == 0x25a0 ) ? 0x94 : \
+	0x1a
+
+#if defined( __cplusplus )
+}
+#endif
+
+#endif
+
diff --git a/libuna/libuna_definitions.h b/libuna/libuna_definitions.h
index 9af2f5e..5e0b148 100644
--- a/libuna/libuna_definitions.h
+++ b/libuna/libuna_definitions.h
@@ -36,11 +36,11 @@
 #else
 #include <endian.h>
 
-#define LIBUNA_VERSION					20090901
+#define LIBUNA_VERSION					20090928
 
 /* The libuna version string
  */
-#define LIBUNA_VERSION_STRING				"20090901"
+#define LIBUNA_VERSION_STRING				"20090928"
 
 /* The endian definitions
  */
@@ -69,6 +69,9 @@ enum LIBUNA_CODEPAGE
 	LIBUNA_CODEPAGE_ISO_8859_15			= 28605,
 	LIBUNA_CODEPAGE_ISO_8859_16			= 28606,
 
+	LIBUNA_CODEPAGE_KOI8_R				= 20866,
+	LIBUNA_CODEPAGE_KOI8_U				= 21866,
+
 	LIBUNA_CODEPAGE_WINDOWS_874			= 874,
 	LIBUNA_CODEPAGE_WINDOWS_1250			= 1250,
 	LIBUNA_CODEPAGE_WINDOWS_1251			= 1251,
@@ -108,6 +111,9 @@ enum LIBUNA_CODEPAGE
 #define LIBUNA_CODEPAGE_ISO_LATIN_9			LIBUNA_CODEPAGE_ISO_8859_15
 #define LIBUNA_CODEPAGE_ISO_LATIN_10			LIBUNA_CODEPAGE_ISO_8859_16
 
+#define LIBUNA_CODEPAGE_KOI8_RUSSIAN			LIBUNA_CODEPAGE_KOI8_R
+#define LIBUNA_CODEPAGE_KOI8_UKRAINIAN			LIBUNA_CODEPAGE_KOI8_U
+
 #define LIBUNA_CODEPAGE_WINDOWS_THAI			LIBUNA_CODEPAGE_WINDOWS_874
 #define LIBUNA_CODEPAGE_WINDOWS_CENTRAL_EUROPEAN	LIBUNA_CODEPAGE_WINDOWS_1250
 #define LIBUNA_CODEPAGE_WINDOWS_CYRILLIC		LIBUNA_CODEPAGE_WINDOWS_1251
diff --git a/libuna/libuna_unicode_character.c b/libuna/libuna_unicode_character.c
index c692574..a08cdca 100644
--- a/libuna/libuna_unicode_character.c
+++ b/libuna/libuna_unicode_character.c
@@ -41,6 +41,8 @@
 #include "libuna_codepage_iso_8859_14.h"
 #include "libuna_codepage_iso_8859_15.h"
 #include "libuna_codepage_iso_8859_16.h"
+#include "libuna_codepage_koi8_r.h"
+#include "libuna_codepage_koi8_u.h"
 #include "libuna_codepage_windows_874.h"
 #include "libuna_codepage_windows_1250.h"
 #include "libuna_codepage_windows_1251.h"
@@ -99,6 +101,8 @@ LIBUNA_INLINE int libuna_unicode_character_size_to_byte_stream(
 		case LIBUNA_CODEPAGE_ISO_8859_14:
 		case LIBUNA_CODEPAGE_ISO_8859_15:
 		case LIBUNA_CODEPAGE_ISO_8859_16:
+		case LIBUNA_CODEPAGE_KOI8_R:
+		case LIBUNA_CODEPAGE_KOI8_U:
 		case LIBUNA_CODEPAGE_WINDOWS_874:
 		case LIBUNA_CODEPAGE_WINDOWS_1250:
 		case LIBUNA_CODEPAGE_WINDOWS_1251:
@@ -278,6 +282,16 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_byte_stream(
 			                      byte_stream[ *byte_stream_index ] );
 			break;
 
+		case LIBUNA_CODEPAGE_KOI8_R:
+			*unicode_character = libuna_codepage_koi8_r_byte_stream_to_unicode(
+			                      byte_stream[ *byte_stream_index ] );
+			break;
+
+		case LIBUNA_CODEPAGE_KOI8_U:
+			*unicode_character = libuna_codepage_koi8_u_byte_stream_to_unicode(
+			                      byte_stream[ *byte_stream_index ] );
+			break;
+
 		case LIBUNA_CODEPAGE_WINDOWS_874:
 			*unicode_character = libuna_codepage_windows_874_byte_stream_to_unicode(
 			                      byte_stream[ *byte_stream_index ] );
@@ -483,6 +497,16 @@ LIBUNA_INLINE int libuna_unicode_character_copy_to_byte_stream(
 			                                     unicode_character );
 			break;
 
+		case LIBUNA_CODEPAGE_KOI8_R:
+			byte_stream[ *byte_stream_index ] = libuna_codepage_koi8_r_unicode_to_byte_stream(
+			                                     unicode_character );
+			break;
+
+		case LIBUNA_CODEPAGE_KOI8_U:
+			byte_stream[ *byte_stream_index ] = libuna_codepage_koi8_u_unicode_to_byte_stream(
+			                                     unicode_character );
+			break;
+
 		case LIBUNA_CODEPAGE_WINDOWS_874:
 			byte_stream[ *byte_stream_index ] = libuna_codepage_windows_874_unicode_to_byte_stream(
 			                                     unicode_character );
@@ -734,8 +758,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 		 error,
 		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 		 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-		 "%s: invalid 1st UTF-8 character byte.",
-		 function );
+		 "%s: invalid 1st UTF-8 character byte: 0x%02" PRIx8 ".",
+		 function,
+		 utf8_string[ *utf8_string_index ] );
 
 		return( -1 );
 	}
@@ -750,8 +775,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 			 error,
 			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-			 "%s: invalid 1st UTF-8 character byte.",
-			 function );
+			 "%s: invalid 1st UTF-8 character byte: 0x%02" PRIx8 ".",
+			 function,
+			 utf8_string[ *utf8_string_index ] );
 
 			return( -1 );
 		}
@@ -764,8 +790,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 			 error,
 			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-			 "%s: invalid 2nd UTF-8 character byte.",
-			 function );
+			 "%s: invalid 2nd UTF-8 character byte: 0x%02" PRIx8 ".",
+			 function,
+			 utf8_string[ *utf8_string_index + 1 ] );
 
 			return( -1 );
 		}
@@ -776,8 +803,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 			 error,
 			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-			 "%s: invalid 2nd UTF-8 character byte.",
-			 function );
+			 "%s: invalid 2nd UTF-8 character byte: 0x%02" PRIx8 ".",
+			 function,
+			 utf8_string[ *utf8_string_index + 1 ] );
 
 			return( -1 );
 		}
@@ -788,8 +816,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 			 error,
 			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-			 "%s: invalid 2nd UTF-8 character byte.",
-			 function );
+			 "%s: invalid 2nd UTF-8 character byte: 0x%02" PRIx8 ".",
+			 function,
+			 utf8_string[ *utf8_string_index + 1 ] );
 
 			return( -1 );
 		}
@@ -800,8 +829,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 			 error,
 			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-			 "%s: invalid 2nd UTF-8 character byte.",
-			 function );
+			 "%s: invalid 2nd UTF-8 character byte: 0x%02" PRIx8 ".",
+			 function,
+			 utf8_string[ *utf8_string_index + 1 ] );
 
 			return( -1 );
 		}
@@ -812,8 +842,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 			 error,
 			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-			 "%s: invalid 2nd UTF-8 character byte.",
-			 function );
+			 "%s: invalid 2nd UTF-8 character byte: 0x%02" PRIx8 ".",
+			 function,
+			 utf8_string[ *utf8_string_index + 1 ] );
 
 			return( -1 );
 		}
@@ -823,8 +854,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 			 error,
 			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-			 "%s: invalid 2nd UTF-8 character byte.",
-			 function );
+			 "%s: invalid 2nd UTF-8 character byte: 0x%02" PRIx8 ".",
+			 function,
+			 utf8_string[ *utf8_string_index + 1 ] );
 
 			return( -1 );
 		}
@@ -845,8 +877,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 			 error,
 			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-			 "%s: invalid 3rd UTF-8 character byte.",
-			 function );
+			 "%s: invalid 3rd UTF-8 character byte: 0x%02" PRIx8 ".",
+			 function,
+			 utf8_string[ *utf8_string_index + 2 ] );
 
 			return( -1 );
 		}
@@ -867,8 +900,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 			 error,
 			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-			 "%s: invalid 4th UTF-8 character byte.",
-			 function );
+			 "%s: invalid 4th UTF-8 character byte: 0x%02" PRIx8 ".",
+			 function,
+			 utf8_string[ *utf8_string_index + 3 ] );
 
 			return( -1 );
 		}
@@ -889,8 +923,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 			 error,
 			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-			 "%s: invalid 5th UTF-8 character byte.",
-			 function );
+			 "%s: invalid 5th UTF-8 character byte: 0x%02" PRIx8 ".",
+			 function,
+			 utf8_string[ *utf8_string_index + 4 ] );
 
 			return( -1 );
 		}
@@ -911,8 +946,9 @@ LIBUNA_INLINE int libuna_unicode_character_copy_from_utf8(
 			 error,
 			 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
 			 LIBERROR_ARGUMENT_ERROR_UNSUPPORTED_VALUE,
-			 "%s: invalid 6th UTF-8 character byte.",
-			 function );
+			 "%s: invalid 6th UTF-8 character byte: 0x%02" PRIx8 ".",
+			 function,
+			 utf8_string[ *utf8_string_index + 5 ] );
 
 			return( -1 );
 		}
diff --git a/macosx/Introduction.rtf b/macosx/Introduction.rtf
index 812a598..2158712 100644
--- a/macosx/Introduction.rtf
+++ b/macosx/Introduction.rtf
@@ -4,4 +4,4 @@
 \margl1440\margr1440\vieww9880\viewh13400\viewkind0
 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
 
-\f0\fs24 \cf0 This will install a universal build of libewf 20090927 and the ewftools.}
+\f0\fs24 \cf0 This will install a universal build of libewf 20091003 and the ewftools.}
diff --git a/macosx/Makefile.in b/macosx/Makefile.in
index 612ef06..d73c878 100644
--- a/macosx/Makefile.in
+++ b/macosx/Makefile.in
@@ -101,6 +101,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -108,6 +109,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/manuals/Makefile.in b/manuals/Makefile.in
index 62fb316..0d7b668 100644
--- a/manuals/Makefile.in
+++ b/manuals/Makefile.in
@@ -126,6 +126,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -133,6 +134,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/manuals/ewfacquire.1 b/manuals/ewfacquire.1
index 2a2a8e4..86ffea7 100644
--- a/manuals/ewfacquire.1
+++ b/manuals/ewfacquire.1
@@ -1,4 +1,4 @@
-.Dd Sep 27, 2009
+.Dd October 3, 2009
 .Dt ewfacquire
 .Os libewf
 .Sh NAME
diff --git a/manuals/ewfacquirestream.1 b/manuals/ewfacquirestream.1
index 87abe25..3eefe1b 100644
--- a/manuals/ewfacquirestream.1
+++ b/manuals/ewfacquirestream.1
@@ -1,4 +1,4 @@
-.Dd Sep 27, 2009
+.Dd October 3, 2009
 .Dt ewfacquirestream
 .Os libewf
 .Sh NAME
@@ -112,7 +112,7 @@ None
 None
 .Sh EXAMPLES
 .Bd -literal
-# ewfacquirestream -C 1 -D Floppy -E 1.1 -e 'John D.' -N 'Just a floppy in my system' -m removable -M physical -t floppy </dev/fd0
+# ewfacquirestream \-C 1 \-D Floppy \-E 1.1 \-e 'John D.' \-N 'Just a floppy in my system' \-m removable \-M physical \-t floppy </dev/fd0
 ewfacquirestream 20090229 (libewf 20090229, libuna 20090124, zlib 1.2.3, libcrypto 0.9.8g, libuuid)
 
 Using the following acquiry parameters:
diff --git a/manuals/ewfexport.1 b/manuals/ewfexport.1
index 7dea432..4773165 100644
--- a/manuals/ewfexport.1
+++ b/manuals/ewfexport.1
@@ -1,4 +1,4 @@
-.Dd June 9, 2009
+.Dd October 3, 2009
 .Dt ewfexport
 .Os libewf
 .Sh NAME
@@ -63,7 +63,7 @@ swap byte pairs of the media data (from AB to BA) (use this for big to little en
 .It Fl S Ar segment_file_size
 the segment file size in bytes (default is 1.4 GiB) (minimum is 1.0 MiB, maximum is 7.9 EiB for encase6 format and 1.9 GiB for other formats) (not used for raw format)
 .It Fl t Ar target
-the target file to export to, use - for stdout (default is export) stdout is only supported for the raw format
+the target file to export to, use \- for stdout (default is export) stdout is only supported for the raw format
 .It Fl u
 unattended mode (disables user interaction)
 .It Fl v
@@ -86,7 +86,7 @@ ewfexport 20090229 (libewf 20090229, libuna 20090124, zlib 1.2.3, libcrypto 0.9.
 
 Information for export required, please provide the necessary input
 Export to file format (raw, ewf, smart, ftk, encase1, encase2, encase3, encase4, encase5, encase6, linen5, linen6, ewfx) [raw]:
-Target path and filename with extension or - for stdout: floppy.raw
+Target path and filename with extension or \- for stdout: floppy.raw
 Start export at offset (0 >= value >= 1474560) [0]:
 Amount of bytes to export (0 >= value >= 1474560) [1474560]:
 
diff --git a/manuals/ewfinfo.1 b/manuals/ewfinfo.1
index 3d686c1..5a1748b 100644
--- a/manuals/ewfinfo.1
+++ b/manuals/ewfinfo.1
@@ -1,4 +1,4 @@
-.Dd August 28, 2009
+.Dd October 3, 2009
 .Dt ewfinfo
 .Os libewf
 .Sh NAME
@@ -55,7 +55,7 @@ None
 None
 .Sh EXAMPLES
 .Bd -literal
-# ewfinfo -d dm floppy.E01
+# ewfinfo \-d dm floppy.E01
 ewfinfo 20090427 (libewf 20090427, libuna 20090427, libbfio 20090426, zlib 1.2.3, libcrypto 0.9.8g, libuuid)
 
 Acquiry information
diff --git a/manuals/ewfverify.1 b/manuals/ewfverify.1
index 4e4d65e..5a1459f 100644
--- a/manuals/ewfverify.1
+++ b/manuals/ewfverify.1
@@ -1,4 +1,4 @@
-.Dd April 4, 2009
+.Dd October 3, 2009
 .Dt ewfverify
 .Os libewf
 .Sh NAME
diff --git a/manuals/libewf.3 b/manuals/libewf.3
index 71c0ed4..67a7f6e 100644
--- a/manuals/libewf.3
+++ b/manuals/libewf.3
@@ -1,4 +1,4 @@
-.Dd August 29, 2009
+.Dd October 3, 2009
 .Dt libewf 3
 .Os libewf
 .Sh NAME
@@ -664,7 +664,7 @@ The
 .Fn libewf_set_notify_values
 function can be used to direct the warning, verbose and debug output from the library.
 .Sh RETURN VALUES
-Most of the functions return NULL or -1 on error, dependent on the return type. For the actual return values refer to libewf.h
+Most of the functions return NULL or \-1 on error, dependent on the return type. For the actual return values refer to libewf.h
 .Sh ENVIRONMENT
 None
 .Sh FILES
diff --git a/msvscpp/Makefile.in b/msvscpp/Makefile.in
index 16d1c00..991c11a 100644
--- a/msvscpp/Makefile.in
+++ b/msvscpp/Makefile.in
@@ -100,6 +100,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -107,6 +108,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff --git a/msvscpp/libuna/libuna.vcproj b/msvscpp/libuna/libuna.vcproj
index dd2e7e7..2071486 100644
--- a/msvscpp/libuna/libuna.vcproj
+++ b/msvscpp/libuna/libuna.vcproj
@@ -89,59 +89,63 @@
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_2.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_10.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_3.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_13.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_4.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_14.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_5.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_15.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_6.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_16.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_7.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_2.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_8.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_3.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_9.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_4.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_10.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_5.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_13.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_6.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_14.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_7.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_15.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_8.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_16.c"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_9.c"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_windows_874.c"
+				RelativePath="..\..\libuna\libuna_codepage_koi8_r.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libuna\libuna_codepage_koi8_u.c"
 				>
 			</File>
 			<File
@@ -181,6 +185,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\libuna\libuna_codepage_windows_874.c"
+				>
+			</File>
+			<File
 				RelativePath="..\..\libuna\libuna_compare.c"
 				>
 			</File>
@@ -235,63 +243,67 @@
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_2.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_10.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_3.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_11.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_4.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_13.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_5.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_14.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_6.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_15.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_7.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_16.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_8.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_2.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_9.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_3.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_10.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_4.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_11.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_5.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_13.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_6.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_14.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_7.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_15.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_8.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_iso_8859_16.h"
+				RelativePath="..\..\libuna\libuna_codepage_iso_8859_9.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\libuna\libuna_codepage_windows_874.h"
+				RelativePath="..\..\libuna\libuna_codepage_koi8_r.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libuna\libuna_codepage_koi8_u.h"
 				>
 			</File>
 			<File
@@ -331,6 +343,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\libuna\libuna_codepage_windows_874.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\libuna\libuna_compare.h"
 				>
 			</File>
diff --git a/pyewf/Makefile.in b/pyewf/Makefile.in
index 995af55..415ceb8 100644
--- a/pyewf/Makefile.in
+++ b/pyewf/Makefile.in
@@ -148,6 +148,7 @@ LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBFIO_CPPFLAGS = @LIBBFIO_CPPFLAGS@
 LIBBFIO_LIBADD = @LIBBFIO_LIBADD@
+LIBCRYPTO_LIBADD = @LIBCRYPTO_LIBADD@
 LIBEWF_DLL_IMPORT = @LIBEWF_DLL_IMPORT@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
@@ -155,6 +156,7 @@ LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 LIBUNA_CPPFLAGS = @LIBUNA_CPPFLAGS@
 LIBUNA_LIBADD = @LIBUNA_LIBADD@
+LIBUUID_LIBADD = @LIBUUID_LIBADD@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@

-- 
debian-forensics/libewf



More information about the forensics-changes mailing list