aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorlloyd <[email protected]>2009-07-03 04:46:47 +0000
committerlloyd <[email protected]>2009-07-03 04:46:47 +0000
commite0555387e440c708294a3593c90d3066ae4a0a55 (patch)
tree1f81e36cd8a919d512acf9ffc61e785d48669177 /src
parentce5cab439b617800f48c94ebaeeb7cd3bd786cfe (diff)
parentd9fea92eecbad7863518bd07f2b80ead41494894 (diff)
propagate from branch 'net.randombit.botan' (head d6d32791adfa878b6fc0dd3a5b65a665b7bbb549)
to branch 'net.randombit.botan.c++0x' (head 54deb0e078aab8cd91c8fd8819d1e6668fc762da)
Diffstat (limited to 'src')
-rw-r--r--src/build-data/arch/ia323
-rw-r--r--src/build-data/botan-config.in12
-rw-r--r--src/build-data/botan.doxy.in2
-rw-r--r--src/build-data/botan.pc.in8
-rw-r--r--src/build-data/buildh.in34
-rw-r--r--src/build-data/makefile/nmake.in60
-rw-r--r--src/build-data/makefile/unix.in60
-rw-r--r--src/build-data/makefile/unix_shr.in76
-rw-r--r--src/build-data/os/darwin7
-rw-r--r--src/build-data/os/defaults4
-rw-r--r--src/build-data/os/mingw4
-rw-r--r--src/build-data/os/windows4
-rw-r--r--src/entropy/cryptoapi_rng/info.txt2
-rw-r--r--src/entropy/dev_random/es_dev.cpp10
-rw-r--r--src/entropy/win32_stats/info.txt2
-rw-r--r--src/hash/skein/skein_512.cpp6
-rw-r--r--src/hash/skein/skein_512.h6
-rw-r--r--src/kdf/kdf.h32
-rw-r--r--src/math/bigint/mulop_amd64/info.txt2
-rw-r--r--src/mutex/info.txt9
-rw-r--r--src/rng/auto_rng/auto_rng.cpp2
-rw-r--r--src/rng/hmac_rng/hmac_rng.cpp11
-rw-r--r--src/rng/randpool/randpool.cpp11
-rw-r--r--src/stream/salsa20/info.txt4
-rw-r--r--src/stream/turing/info.txt4
-rw-r--r--src/stream/wid_wake/info.txt4
-rw-r--r--src/timer/win32_query_perf_ctr/info.txt2
-rw-r--r--src/utils/data_src.cpp2
-rw-r--r--src/utils/mem_ops.h9
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;
+ }
}