diff options
Diffstat (limited to 'src')
29 files changed, 220 insertions, 172 deletions
diff --git a/src/build-data/arch/ia32 b/src/build-data/arch/ia32 index 9ac41b74b..aafcf9a77 100644 --- a/src/build-data/arch/ia32 +++ b/src/build-data/arch/ia32 @@ -35,6 +35,9 @@ pentiumii -> pentium2 pentium3 -> pentium3 pentiumiii -> pentium3 +x86family5 -> i586 +x86family6 -> i686 + pentiumm -> pentium-m intelpentiumm -> pentium-m diff --git a/src/build-data/botan-config.in b/src/build-data/botan-config.in index 28b494254..f3fa3db94 100644 --- a/src/build-data/botan-config.in +++ b/src/build-data/botan-config.in @@ -2,15 +2,15 @@ # For normal builds: guess_prefix=`dirname \`dirname $0\`` -includedir=@{var:includedir} -libdir=@{var:libdir} +includedir=%{includedir} +libdir=%{libdir} # For workspace builds: #guess_prefix=`dirname $0` #includedir=build/include #libdir= -install_prefix=@{var:prefix} +install_prefix=%{prefix} prefix= usage() @@ -42,7 +42,7 @@ while test $# -gt 0; do echo $prefix ;; --version) - echo @{var:version} + echo %{version} exit 0 ;; --cflags) @@ -54,9 +54,9 @@ while test $# -gt 0; do --libs) if [ $prefix != "/usr" -a $prefix != "/usr/local" ] then - echo -L$prefix/$libdir -lbotan @{var:link_to} + echo -L$prefix/$libdir -lbotan %{link_to} else - echo -lbotan @{var:link_to} + echo -lbotan %{link_to} fi ;; *) diff --git a/src/build-data/botan.doxy.in b/src/build-data/botan.doxy.in index 82796a272..2da5e1244 100644 --- a/src/build-data/botan.doxy.in +++ b/src/build-data/botan.doxy.in @@ -5,7 +5,7 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = Botan -PROJECT_NUMBER = @{var:version} +PROJECT_NUMBER = %{version} OUTPUT_DIRECTORY = doc/doxygen CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English diff --git a/src/build-data/botan.pc.in b/src/build-data/botan.pc.in index 6fbf43862..70ed65d70 100644 --- a/src/build-data/botan.pc.in +++ b/src/build-data/botan.pc.in @@ -1,12 +1,12 @@ -prefix=@{var:prefix} +prefix=%{prefix} exec_prefix=${prefix} -libdir=${prefix}/@{var:libdir} +libdir=${prefix}/%{libdir} includedir=${prefix}/include Name: Botan Description: Multi-platform C++ crypto library -Version: @{var:version} +Version: %{version} Libs: -L${libdir} -lbotan -Libs.private: @{var:link_to} +Libs.private: %{link_to} Cflags: -I${includedir} diff --git a/src/build-data/buildh.in b/src/build-data/buildh.in index d49f976fb..e4ab0f44b 100644 --- a/src/build-data/buildh.in +++ b/src/build-data/buildh.in @@ -2,14 +2,14 @@ #ifndef BOTAN_BUILD_CONFIG_H__ #define BOTAN_BUILD_CONFIG_H__ -/* This file was automatically generated @{var:timestamp} UTC */ +/* This file was automatically generated %{timestamp} UTC */ -#define BOTAN_VERSION_MAJOR @{var:version_major} -#define BOTAN_VERSION_MINOR @{var:version_minor} -#define BOTAN_VERSION_PATCH @{var:version_patch} +#define BOTAN_VERSION_MAJOR %{version_major} +#define BOTAN_VERSION_MINOR %{version_minor} +#define BOTAN_VERSION_PATCH %{version_patch} #ifndef BOTAN_DLL - #define BOTAN_DLL @{var:dll_export_flags} + #define BOTAN_DLL %{dll_export_flags} #endif /* Chunk sizes */ @@ -17,7 +17,7 @@ #define BOTAN_MEM_POOL_CHUNK_SIZE 64*1024 /* BigInt toggles */ -#define BOTAN_MP_WORD_BITS @{var:mp_bits} +#define BOTAN_MP_WORD_BITS %{mp_bits} #define BOTAN_KARAT_MUL_THRESHOLD 32 #define BOTAN_KARAT_SQR_THRESHOLD 32 #define BOTAN_PRIVATE_KEY_OP_BLINDING_BITS 64 @@ -37,22 +37,30 @@ #endif /* Target identification and feature test macros */ +%{target_os_defines} -@{var:defines} -@{var:local_config} +%{target_cpu_defines} + +%{target_compiler_defines} + +/* Module definitions */ +%{module_defines} + +/* Local configuration options */ +%{local_config} /* -@{var:user}@@{var:hostname} ran '@{var:command-line}' +%{user}@%{hostname} ran '%{command_line}' Target ------- -Compiler: @{var:cc} @{var:lib_opt} @{var:mach_opt} -Arch: @{var:submodel}/@{var:arch} -OS: @{var:os} +Compiler: %{cc} %{lib_opt} %{mach_opt} +Arch: %{submodel}/%{arch} +OS: %{os} Modules ------- -@{var:mod-list} +%{mod_list} */ #endif diff --git a/src/build-data/makefile/nmake.in b/src/build-data/makefile/nmake.in index b730beab1..34c864e93 100644 --- a/src/build-data/makefile/nmake.in +++ b/src/build-data/makefile/nmake.in @@ -1,40 +1,36 @@ ################################################## # Compiler Options # ################################################## -CXX = @{var:cc} -LIB_OPT = @{var:lib_opt} -CHECK_OPT = @{var:check_opt} -MACH_OPT = @{var:mach_opt} -LANG_FLAGS = @{var:lang_flags} -WARN_FLAGS = @{var:warn_flags} -LINK_TO = @{var:link_to} +CXX = %{cc} +LIB_OPT = %{lib_opt} +CHECK_OPT = %{check_opt} +MACH_OPT = %{mach_opt} +LANG_FLAGS = %{lang_flags} +WARN_FLAGS = %{warn_flags} +LINK_TO = %{link_to} ################################################## # Version Numbers # ################################################## -MAJOR = @{var:version_major} -MINOR = @{var:version_minor} -PATCH = @{var:version_patch} - -VERSION = $(MAJOR).$(MINOR).$(PATCH) +VERSION = %{version} ################################################## # Installation Settings # ################################################## -DESTDIR = @{var:prefix} +DESTDIR = %{prefix} -LIBDIR = $(DESTDIR)\@{var:libdir} -HEADERDIR = $(DESTDIR)\@{var:includedir}\botan -DOCDIR = $(DESTDIR)\@{var:docdir}\Botan-$(VERSION) +LIBDIR = $(DESTDIR)\%{libdir} +HEADERDIR = $(DESTDIR)\%{includedir}\botan +DOCDIR = $(DESTDIR)\%{docdir}\Botan-$(VERSION) ################################################## # Aliases for Common Programs # ################################################## -AR = @{var:ar_command} +AR = %{ar_command} CD = @cd ECHO = @echo -INSTALL = @{var:install_cmd_exec} -INSTALL_CMD = @{var:install_cmd_exec} +INSTALL = %{install_cmd_exec} +INSTALL_CMD = %{install_cmd_exec} MKDIR = @md MKDIR_INSTALL = @md RM = @del /Q @@ -45,13 +41,13 @@ RMDIR = @rmdir ################################################## CHECK = check -DOCS = @{var:doc_files} +DOCS = %{doc_files} -HEADERS = @{var:include_files} +HEADERS = %{include_files} -LIBOBJS = @{var:lib_objs} +LIBOBJS = %{lib_objs} -CHECKOBJS = @{var:check_objs} +CHECKOBJS = %{check_objs} LIB_FLAGS = $(LIB_OPT) $(MACH_OPT) $(LANG_FLAGS) $(WARN_FLAGS) CHECK_FLAGS = $(CHECK_OPT) $(LANG_FLAGS) $(WARN_FLAGS) @@ -59,16 +55,16 @@ CHECK_FLAGS = $(CHECK_OPT) $(LANG_FLAGS) $(WARN_FLAGS) LIBRARIES = $(STATIC_LIB) LIBNAME = libbotan -STATIC_LIB = $(LIBNAME).@{var:static_suffix} +STATIC_LIB = $(LIBNAME).%{static_suffix} all: $(LIBRARIES) ################################################## # Build Commands # ################################################## -@{var:lib_build_cmds} +%{lib_build_cmds} -@{var:check_build_cmds} +%{check_build_cmds} ################################################## # Link Commands # @@ -93,15 +89,15 @@ static: $(STATIC_LIB) # Fake Targets # ################################################## clean: - $(RM) @{var:build-dir}\lib\* @{var:build-dir}\checks\* + $(RM) %{build_dir}\lib\* %{build_dir}\checks\* $(RM) $(LIBRARIES) $(CHECK) distclean: clean - $(RM) @{var:build-dir}\build.h - $(RM) @{var:build-dir}\include\botan\* - $(RMDIR) @{var:build-dir}\include\botan @{var:build-dir}\include - $(RMDIR) @{var:build-dir}\lib @{var:build-dir}\checks - $(RMDIR) @{var:build-dir} + $(RM) %{build_dir}\build.h + $(RM) %{build_dir}\include\botan\* + $(RMDIR) %{build_dir}\include\botan %{build_dir}\include + $(RMDIR) %{build_dir}\lib %{build_dir}\checks + $(RMDIR) %{build_dir} $(RM) Makefile ################################################## diff --git a/src/build-data/makefile/unix.in b/src/build-data/makefile/unix.in index 4025eed29..a48a5a17e 100644 --- a/src/build-data/makefile/unix.in +++ b/src/build-data/makefile/unix.in @@ -1,67 +1,67 @@ ################################################## # Compiler Options # ################################################## -CXX = @{var:cc} -LIB_OPT = @{var:lib_opt} -CHECK_OPT = @{var:check_opt} -MACH_OPT = @{var:mach_opt} -LANG_FLAGS = @{var:lang_flags} -WARN_FLAGS = @{var:warn_flags} -LINK_TO = @{var:link_to} +CXX = %{cc} +LIB_OPT = %{lib_opt} +CHECK_OPT = %{check_opt} +MACH_OPT = %{mach_opt} +LANG_FLAGS = %{lang_flags} +WARN_FLAGS = %{warn_flags} +LINK_TO = %{link_to} ################################################## # Version Numbers # ################################################## -VERSION = @{var:version} +VERSION = %{version} ################################################## # Installation Settings # ################################################## -DESTDIR = @{var:prefix} +DESTDIR = %{prefix} BINDIR = $(DESTDIR)/bin -LIBDIR = $(DESTDIR)/@{var:libdir} -HEADERDIR = $(DESTDIR)/@{var:includedir}/botan -DOCDIR = $(DESTDIR)/@{var:docdir}/Botan-$(VERSION) +LIBDIR = $(DESTDIR)/%{libdir} +HEADERDIR = $(DESTDIR)/%{includedir}/botan +DOCDIR = $(DESTDIR)/%{docdir}/Botan-$(VERSION) PKGCONF_DIR = $(LIBDIR)/pkgconfig -CONFIG_SCRIPT = @{var:botan-config} -PKGCONFIG = @{var:botan-pkgconfig} +CONFIG_SCRIPT = %{botan_config} +PKGCONFIG = %{botan_pkgconfig} ################################################## # Aliases for Common Programs # ################################################## -AR = @{var:ar_command} +AR = %{ar_command} CD = @cd ECHO = @echo -INSTALL_CMD_EXEC = @{var:install_cmd_exec} -INSTALL_CMD_DATA = @{var:install_cmd_data} +INSTALL_CMD_EXEC = %{install_cmd_exec} +INSTALL_CMD_DATA = %{install_cmd_data} LN = ln -fs MKDIR = @mkdir MKDIR_INSTALL = @umask 022; mkdir -p -m 755 -RANLIB = @{var:ranlib_command} +RANLIB = %{ranlib_command} RM = @rm -f RM_R = @rm -rf ################################################## # File Lists # ################################################## -CHECK = @{var:check_prefix}check +CHECK = %{check_prefix}check -DOCS = @{var:doc_files} +DOCS = %{doc_files} -HEADERS = @{var:include_files} +HEADERS = %{include_files} -LIBOBJS = @{var:lib_objs} +LIBOBJS = %{lib_objs} -CHECKOBJS = @{var:check_objs} +CHECKOBJS = %{check_objs} LIB_FLAGS = $(LIB_OPT) $(MACH_OPT) $(LANG_FLAGS) $(WARN_FLAGS) CHECK_FLAGS = $(CHECK_OPT) $(LANG_FLAGS) $(WARN_FLAGS) LIBRARIES = $(STATIC_LIB) -LIBNAME = @{var:lib_prefix}libbotan +LIBNAME = %{lib_prefix}libbotan STATIC_LIB = $(LIBNAME).a all: $(LIBRARIES) @@ -69,9 +69,9 @@ all: $(LIBRARIES) ################################################## # Build Commands # ################################################## -@{var:lib_build_cmds} +%{lib_build_cmds} -@{var:check_build_cmds} +%{check_build_cmds} ################################################## # Link Commands # @@ -92,15 +92,15 @@ $(STATIC_LIB): $(LIBOBJS) static: $(STATIC_LIB) doxygen: - doxygen @{var:doc-dir}/botan.doxy + doxygen %{doc_src_dir}/botan.doxy clean: - $(RM_R) @{var:build-dir}/lib/* @{var:build-dir}/checks/* + $(RM_R) %{build_dir}/lib/* %{build_dir}/checks/* $(RM) $(LIBRARIES) $(SYMLINK) $(CHECK) distclean: clean - $(RM_R) @{var:build-dir} - $(RM_R) @{var:doc-dir}/doxygen @{var:doc-dir}/botan.doxy + $(RM_R) %{build_dir} + $(RM_R) %{doc_src_dir}/doxygen %{doc_src_dir}/botan.doxy $(RM) Makefile $(CONFIG_SCRIPT) $(PKGCONFIG) install: $(LIBRARIES) diff --git a/src/build-data/makefile/unix_shr.in b/src/build-data/makefile/unix_shr.in index fec3a3654..f718d1160 100644 --- a/src/build-data/makefile/unix_shr.in +++ b/src/build-data/makefile/unix_shr.in @@ -1,91 +1,91 @@ ################################################## # Compiler Options # ################################################## -CXX = @{var:cc} -LIB_OPT = @{var:lib_opt} -CHECK_OPT = @{var:check_opt} -MACH_OPT = @{var:mach_opt} -LANG_FLAGS = @{var:lang_flags} -WARN_FLAGS = @{var:warn_flags} -SO_OBJ_FLAGS = @{var:shared_flags} -SO_LINK_CMD = @{var:so_link} -LINK_TO = @{var:link_to} +CXX = %{cc} +LIB_OPT = %{lib_opt} +CHECK_OPT = %{check_opt} +MACH_OPT = %{mach_opt} +LANG_FLAGS = %{lang_flags} +WARN_FLAGS = %{warn_flags} +SO_OBJ_FLAGS = %{shared_flags} +SO_LINK_CMD = %{so_link} +LINK_TO = %{link_to} ################################################## # Version Numbers # ################################################## -VERSION = @{var:version} -SO_VERSION = @{var:so_version} +VERSION = %{version} +SO_VERSION = %{so_version} ################################################## # Installation Settings # ################################################## -DESTDIR = @{var:prefix} +DESTDIR = %{prefix} BINDIR = $(DESTDIR)/bin -LIBDIR = $(DESTDIR)/@{var:libdir} -HEADERDIR = $(DESTDIR)/@{var:includedir}/botan -DOCDIR = $(DESTDIR)/@{var:docdir}/Botan-$(VERSION) +LIBDIR = $(DESTDIR)/%{libdir} +HEADERDIR = $(DESTDIR)/%{includedir}/botan +DOCDIR = $(DESTDIR)/%{docdir}/Botan-$(VERSION) PKGCONF_DIR = $(LIBDIR)/pkgconfig -CONFIG_SCRIPT = @{var:botan-config} -PKGCONFIG = @{var:botan-pkgconfig} +CONFIG_SCRIPT = %{botan_config} +PKGCONFIG = %{botan_pkgconfig} ################################################## # Aliases for Common Programs # ################################################## -AR = @{var:ar_command} +AR = %{ar_command} CD = @cd ECHO = @echo -INSTALL_CMD_EXEC = @{var:install_cmd_exec} -INSTALL_CMD_DATA = @{var:install_cmd_data} +INSTALL_CMD_EXEC = %{install_cmd_exec} +INSTALL_CMD_DATA = %{install_cmd_data} LN = ln -fs MKDIR = @mkdir MKDIR_INSTALL = @umask 022; mkdir -p -m 755 -RANLIB = @{var:ranlib_command} +RANLIB = %{ranlib_command} RM = @rm -f RM_R = @rm -rf ################################################## # File Lists # ################################################## -CHECK = @{var:check_prefix}check +CHECK = %{check_prefix}check -DOCS = @{var:doc_files} +DOCS = %{doc_files} -HEADERS = @{var:include_files} +HEADERS = %{include_files} -LIBOBJS = @{var:lib_objs} +LIBOBJS = %{lib_objs} -CHECKOBJS = @{var:check_objs} +CHECKOBJS = %{check_objs} LIB_FLAGS = $(LIB_OPT) $(MACH_OPT) $(LANG_FLAGS) $(WARN_FLAGS) $(SO_OBJ_FLAGS) CHECK_FLAGS = $(CHECK_OPT) $(LANG_FLAGS) $(WARN_FLAGS) LIBRARIES = $(STATIC_LIB) $(SHARED_LIB) -LIBNAME = @{var:lib_prefix}libbotan +LIBNAME = %{lib_prefix}libbotan STATIC_LIB = $(LIBNAME).a -SHARED_LIB = $(LIBNAME)-$(SO_VERSION).@{var:so_suffix} -SONAME = $(LIBNAME)-$(SO_VERSION).@{var:so_suffix} +SHARED_LIB = $(LIBNAME)-$(SO_VERSION).%{so_suffix} +SONAME = $(LIBNAME)-$(SO_VERSION).%{so_suffix} -SYMLINK = libbotan.@{var:so_suffix} +SYMLINK = libbotan.%{so_suffix} all: $(LIBRARIES) ################################################## # Build Commands # ################################################## -@{var:lib_build_cmds} +%{lib_build_cmds} -@{var:check_build_cmds} +%{check_build_cmds} ################################################## # Link Commands # ################################################## $(CHECK): $(LIBRARIES) $(CHECKOBJS) - $(CXX) $(CHECKOBJS) -L. -lbotan $(LINK_TO) -o $(CHECK) + $(CXX) $(LDFLAGS) $(CHECKOBJS) -o $(CHECK) -L. -lbotan-%{so_version} $(LINK_TO) $(STATIC_LIB): $(LIBOBJS) $(RM) $(STATIC_LIB) @@ -93,7 +93,7 @@ $(STATIC_LIB): $(LIBOBJS) $(RANLIB) $(STATIC_LIB) $(SHARED_LIB): $(LIBOBJS) - $(SO_LINK_CMD) $(LINK_TO) $(LIBOBJS) -o $(SHARED_LIB) + $(SO_LINK_CMD) $(LDFLAGS) $(LIBOBJS) -o $(SHARED_LIB) $(LINK_TO) $(LN) $(SHARED_LIB) $(SYMLINK) ################################################## @@ -106,15 +106,15 @@ static: $(STATIC_LIB) shared: $(SHARED_LIB) doxygen: - doxygen @{var:doc-dir}/botan.doxy + doxygen %{doc_src_dir}/botan.doxy clean: - $(RM_R) @{var:build-dir}/lib/* @{var:build-dir}/checks/* + $(RM_R) %{build_dir}/lib/* %{build_dir}/checks/* $(RM) $(LIBRARIES) $(SYMLINK) $(CHECK) distclean: clean - $(RM_R) @{var:build-dir} - $(RM_R) @{var:doc-dir}/doxygen @{var:doc-dir}/botan.doxy + $(RM_R) %{build_dir} + $(RM_R) %{doc_src_dir}/doxygen %{doc_src_dir}/botan.doxy $(RM) Makefile $(CONFIG_SCRIPT) $(PKGCONFIG) install: $(LIBRARIES) diff --git a/src/build-data/os/darwin b/src/build-data/os/darwin index aa28dc59b..298621216 100644 --- a/src/build-data/os/darwin +++ b/src/build-data/os/darwin @@ -14,13 +14,6 @@ doc_dir doc all </supports_shared> -<arch> -ia32 -amd64 -ppc -ppc64 # g5! -</arch> - <aliases> macosx </aliases> diff --git a/src/build-data/os/defaults b/src/build-data/os/defaults index 88fd82252..5648643a9 100644 --- a/src/build-data/os/defaults +++ b/src/build-data/os/defaults @@ -15,5 +15,5 @@ header_dir include lib_dir lib doc_dir share/doc -install_cmd_data install -m 644 -install_cmd_exec install -m 755 +install_cmd_data "install -m 644" +install_cmd_exec "install -m 755" diff --git a/src/build-data/os/mingw b/src/build-data/os/mingw index 8c41fbc21..eb25017fc 100644 --- a/src/build-data/os/mingw +++ b/src/build-data/os/mingw @@ -13,8 +13,8 @@ header_dir include lib_dir lib doc_dir share/doc -install_cmd_data install -m 644 -install_cmd_exec install -m 755 +install_cmd_data "install -m 644" +install_cmd_exec "install -m 755" <aliases> msys diff --git a/src/build-data/os/windows b/src/build-data/os/windows index 823c60d6c..a04d609b8 100644 --- a/src/build-data/os/windows +++ b/src/build-data/os/windows @@ -9,8 +9,8 @@ static_suffix lib install_root c:\Botan doc_dir docs -install_cmd_data copy -install_cmd_exec copy +install_cmd_data "copy" +install_cmd_exec "copy" <target_features> win32_virtual_lock diff --git a/src/entropy/cryptoapi_rng/info.txt b/src/entropy/cryptoapi_rng/info.txt index 40104664b..643c67d2e 100644 --- a/src/entropy/cryptoapi_rng/info.txt +++ b/src/entropy/cryptoapi_rng/info.txt @@ -17,5 +17,5 @@ cygwin </os> <libs> -windows -> advapi32 +windows -> advapi32.lib </libs> diff --git a/src/entropy/dev_random/es_dev.cpp b/src/entropy/dev_random/es_dev.cpp index 6fcdcbfea..ef3074194 100644 --- a/src/entropy/dev_random/es_dev.cpp +++ b/src/entropy/dev_random/es_dev.cpp @@ -40,8 +40,9 @@ u32bit Device_EntropySource::Device_Reader::get(byte out[], u32bit length, FD_SET(fd, &read_set); struct ::timeval timeout; - timeout.tv_sec = 0; - timeout.tv_usec = ms_wait_time * 1000; + + timeout.tv_sec = (ms_wait_time / 1000); + timeout.tv_usec = (ms_wait_time % 1000) * 1000; if(::select(fd + 1, &read_set, 0, 0, &timeout) < 0) return 0; @@ -103,10 +104,9 @@ Device_EntropySource::~Device_EntropySource() */ void Device_EntropySource::poll(Entropy_Accumulator& accum) { - u32bit go_get = std::min<u32bit>(accum.desired_remaining_bits() / 8, 16); - - u32bit read_wait_ms = go_get / 16; + u32bit go_get = std::min<u32bit>(accum.desired_remaining_bits() / 8, 48); + u32bit read_wait_ms = std::max<u32bit>(go_get, 1000); MemoryRegion<byte>& io_buffer = accum.get_io_buffer(go_get); for(size_t i = 0; i != devices.size(); ++i) diff --git a/src/entropy/win32_stats/info.txt b/src/entropy/win32_stats/info.txt index 825765539..ca7100923 100644 --- a/src/entropy/win32_stats/info.txt +++ b/src/entropy/win32_stats/info.txt @@ -20,5 +20,5 @@ mingw </os> <libs> -windows -> user32 +windows -> user32.lib </libs> diff --git a/src/hash/skein/skein_512.cpp b/src/hash/skein/skein_512.cpp index c8a26ae82..eaef641ed 100644 --- a/src/hash/skein/skein_512.cpp +++ b/src/hash/skein/skein_512.cpp @@ -132,6 +132,7 @@ void initial_block(u64bit H[9], u64bit T[3], u32bit output_bits, { clear_mem(H, 9); + // ASCII("SHA3") followed by version (0x0001) code byte config_str[32] = { 0x53, 0x48, 0x41, 0x33, 0x01, 0x00, 0 }; store_le(output_bits, config_str + 8); @@ -140,6 +141,11 @@ void initial_block(u64bit H[9], u64bit T[3], u32bit output_bits, if(personalization != "") { + /* + This is a limitation of this implementation, and not of the + algorithm specification. Could be fixed relatively easily, but + doesn't seem worth the trouble. + */ if(personalization.length() > 64) throw Invalid_Argument("Skein personalization must be <= 64 bytes"); diff --git a/src/hash/skein/skein_512.h b/src/hash/skein/skein_512.h index 2192767ca..fa558fc0d 100644 --- a/src/hash/skein/skein_512.h +++ b/src/hash/skein/skein_512.h @@ -5,8 +5,8 @@ * Distributed under the terms of the Botan license */ -#ifndef BOTAN_SKEIN_H__ -#define BOTAN_SKEIN_H__ +#ifndef BOTAN_SKEIN_512_H__ +#define BOTAN_SKEIN_512_H__ #include <botan/secmem.h> #include <botan/hash.h> @@ -14,7 +14,7 @@ namespace Botan { -class Skein_512 : public HashFunction +class BOTAN_DLL Skein_512 : public HashFunction { public: Skein_512(u32bit output_bits = 512, diff --git a/src/kdf/kdf.h b/src/kdf/kdf.h index aa6cd94cd..70f636b6c 100644 --- a/src/kdf/kdf.h +++ b/src/kdf/kdf.h @@ -19,17 +19,23 @@ namespace Botan { class BOTAN_DLL KDF { public: - SecureVector<byte> derive_key(u32bit, const MemoryRegion<byte>&, - const std::string& = "") const; - SecureVector<byte> derive_key(u32bit, const MemoryRegion<byte>&, - const MemoryRegion<byte>&) const; - SecureVector<byte> derive_key(u32bit, const MemoryRegion<byte>&, - const byte[], u32bit) const; - - SecureVector<byte> derive_key(u32bit, const byte[], u32bit, - const std::string& = "") const; - SecureVector<byte> derive_key(u32bit, const byte[], u32bit, - const byte[], u32bit) const; + SecureVector<byte> derive_key(u32bit key_len, + const MemoryRegion<byte>& secret, + const std::string& salt = "") const; + SecureVector<byte> derive_key(u32bit key_len, + const MemoryRegion<byte>& secret, + const MemoryRegion<byte>& salt) const; + + SecureVector<byte> derive_key(u32bit key_len, + const MemoryRegion<byte>& secret, + const byte salt[], u32bit salt_len) const; + + SecureVector<byte> derive_key(u32bit key_len, + const byte secret[], u32bit secret_len, + const std::string& salt = "") const; + SecureVector<byte> derive_key(u32bit key_len, + const byte secret[], u32bit secret_len, + const byte salt[], u32bit salt_len) const; virtual ~KDF() {} private: @@ -43,7 +49,9 @@ class BOTAN_DLL KDF class BOTAN_DLL MGF { public: - virtual void mask(const byte[], u32bit, byte[], u32bit) const = 0; + virtual void mask(const byte in[], u32bit in_len, + byte out[], u32bit out_len) const = 0; + virtual ~MGF() {} }; diff --git a/src/math/bigint/mulop_amd64/info.txt b/src/math/bigint/mulop_amd64/info.txt index 670780d9c..0960ac4d6 100644 --- a/src/math/bigint/mulop_amd64/info.txt +++ b/src/math/bigint/mulop_amd64/info.txt @@ -2,7 +2,7 @@ realname "BigInt Multiply-Add (x86-64)" mp_bits 64 -load_on dep +load_on request <add> mp_mulop_amd64.S diff --git a/src/mutex/info.txt b/src/mutex/info.txt new file mode 100644 index 000000000..ff79bf753 --- /dev/null +++ b/src/mutex/info.txt @@ -0,0 +1,9 @@ +realname "Mutex Wrappers" + +define MUTEX_WRAPPERS + +load_on auto + +<add> +mutex.h +</add> diff --git a/src/rng/auto_rng/auto_rng.cpp b/src/rng/auto_rng/auto_rng.cpp index 578047afc..171c83cca 100644 --- a/src/rng/auto_rng/auto_rng.cpp +++ b/src/rng/auto_rng/auto_rng.cpp @@ -93,7 +93,7 @@ void add_entropy_sources(RandomNumberGenerator* rng) #if defined(BOTAN_HAS_ENTROPY_SRC_DEVICE) rng->add_entropy_source( new Device_EntropySource( - split_on("/dev/random:/dev/srandom:/dev/urandom", ':') + split_on("/dev/urandom:/dev/random:/dev/srandom", ':') ) ); #endif diff --git a/src/rng/hmac_rng/hmac_rng.cpp b/src/rng/hmac_rng/hmac_rng.cpp index 757f59037..113489db3 100644 --- a/src/rng/hmac_rng/hmac_rng.cpp +++ b/src/rng/hmac_rng/hmac_rng.cpp @@ -72,12 +72,15 @@ void HMAC_RNG::reseed_with_input(u32bit poll_bits, Entropy_Accumulator_BufferedComputation accum(*extractor, poll_bits); - for(u32bit i = 0; i < entropy_sources.size(); ++i) + if(!entropy_sources.empty()) { - if(accum.polling_goal_achieved()) - break; + u32bit poll_attempt = 0; - entropy_sources[i]->poll(accum); + while(!accum.polling_goal_achieved() && poll_attempt < poll_bits) + { + entropy_sources[poll_attempt % entropy_sources.size()]->poll(accum); + ++poll_attempt; + } } // And now add the user-provided input, if any diff --git a/src/rng/randpool/randpool.cpp b/src/rng/randpool/randpool.cpp index f9e05c246..77a5228c6 100644 --- a/src/rng/randpool/randpool.cpp +++ b/src/rng/randpool/randpool.cpp @@ -105,12 +105,15 @@ void Randpool::reseed(u32bit poll_bits) { Entropy_Accumulator_BufferedComputation accum(*mac, poll_bits); - for(u32bit i = 0; i != entropy_sources.size(); ++i) + if(!entropy_sources.empty()) { - entropy_sources[i]->poll(accum); + u32bit poll_attempt = 0; - if(accum.polling_goal_achieved()) - break; + while(!accum.polling_goal_achieved() && poll_attempt < poll_bits) + { + entropy_sources[poll_attempt % entropy_sources.size()]->poll(accum); + ++poll_attempt; + } } SecureVector<byte> mac_val = mac->final(); diff --git a/src/stream/salsa20/info.txt b/src/stream/salsa20/info.txt index de1683643..db938307b 100644 --- a/src/stream/salsa20/info.txt +++ b/src/stream/salsa20/info.txt @@ -4,6 +4,10 @@ define SALSA20 load_on auto +<requires> +stream +</requires> + <add> salsa20.cpp salsa20.h diff --git a/src/stream/turing/info.txt b/src/stream/turing/info.txt index 95ae2cf48..c251a0a30 100644 --- a/src/stream/turing/info.txt +++ b/src/stream/turing/info.txt @@ -4,6 +4,10 @@ define TURING load_on auto +<requires> +stream +</requires> + <add> tur_tab.cpp turing.cpp diff --git a/src/stream/wid_wake/info.txt b/src/stream/wid_wake/info.txt index 299ebfdd7..94416417e 100644 --- a/src/stream/wid_wake/info.txt +++ b/src/stream/wid_wake/info.txt @@ -4,6 +4,10 @@ define WID_WAKE load_on auto +<requires> +stream +</requires> + <add> wid_wake.cpp wid_wake.h diff --git a/src/timer/win32_query_perf_ctr/info.txt b/src/timer/win32_query_perf_ctr/info.txt index e74259184..4bb1ddb34 100644 --- a/src/timer/win32_query_perf_ctr/info.txt +++ b/src/timer/win32_query_perf_ctr/info.txt @@ -17,7 +17,7 @@ mingw </os> <libs> -windows -> user32 +windows -> user32.lib </libs> <requires> diff --git a/src/utils/data_src.cpp b/src/utils/data_src.cpp index 4164a6dd3..e6387c4ba 100644 --- a/src/utils/data_src.cpp +++ b/src/utils/data_src.cpp @@ -38,7 +38,7 @@ u32bit DataSource::discard_next(u32bit n) u32bit discarded = 0; byte dummy; for(u32bit j = 0; j != n; ++j) - discarded = read_byte(dummy); + discarded += read_byte(dummy); return discarded; } diff --git a/src/utils/mem_ops.h b/src/utils/mem_ops.h index f6557c744..0fcf34ba8 100644 --- a/src/utils/mem_ops.h +++ b/src/utils/mem_ops.h @@ -26,7 +26,14 @@ template<typename T> inline void set_mem(T* ptr, u32bit n, byte val) { std::memset(ptr, val, sizeof(T)*n); } template<typename T> inline bool same_mem(const T* p1, const T* p2, u32bit n) - { return (std::memcmp(p1, p2, sizeof(T)*n) == 0); } + { + bool is_same = true; + + for(u32bit i = 0; i != n; ++i) + is_same &= (p1[i] == p2[i]); + + return is_same; + } } |