The unified diff between revisions [680184b3..] and [1ab29301..] is displayed below. It can also be downloaded as a raw diff.

#
#
# rename "Attic/misc/gtk/GNUmakefile"
#     to "Attic/misc/gtk/Makefile"
#
# patch "Attic/checks/check.cpp"
#  from [0d02e5ec66b09896d807c65c15227341bc163fff]
#    to [73acdead18be7ece2112d96d83ea125593322960]
#
# patch "Attic/checks/getopt.cpp"
#  from [32c4280c8341ffb0d8cb6c25366d2bdbff5cef3a]
#    to [47acae93d069ef558e34bba575cd03079b2ba31c]
#
# patch "Attic/checks/getopt.h"
#  from [31f5543404651ebf13c2eb67a896b9dd89b38bc6]
#    to [c5c2fc58b021e91133898e30742cf6078fd96e1d]
#
# patch "Attic/checks/pk_bench.cpp"
#  from [b582c96d8ff536e33d520bc93c2089515f88c880]
#    to [35b3cb0885e93f496427f3e742a3627daf7d202a]
#
# patch "Attic/configure.pl"
#  from [1abd92d286db7a648c92e655b9f640ce2cc5706f]
#    to [c54756992630666254605641134fcc0c56f5f337]
#
# patch "Attic/doc/log.txt"
#  from [d75bc0744e1a390fde91e8b7a322801a77750032]
#    to [c835983bdf8864f607bf4dd57a1b2d699a1158a2]
#
# patch "Attic/misc/config/arch/amd64"
#  from [3bda1ee7f9267f5af7c95766e9eee95c7e5dbb5d]
#    to [e99af0aae34e6c83886d5386e79380471b977fe9]
#
# patch "Attic/misc/config/cc/ekopath"
#  from [fcbf959e44c10427ea1868d5193271c8a9916b07]
#    to [54df4f6c355b56ff537db7e429024428da3a6300]
#
# patch "Attic/misc/config/cc/gcc"
#  from [b8325689146701fd42f035c20d39185cdc5772a6]
#    to [53a2886a580529bc110fa57601059c7e335807ea]
#
# patch "Attic/misc/gtk/Makefile"
#  from [d52f8093982af036e6df3cee4635b90f7eac7a1b]
#    to [10999a0650770e6880072f29726dcb3c7e30f143]
#
# patch "Attic/misc/python/src/pk.cpp"
#  from [9c722a74d36029b3a202e0671d31c49ac9e62104]
#    to [2fe597d3617538be1f7c2b447be091db87c7b1ee]
#
# patch "Attic/modules/alg_amd64/modinfo.txt"
#  from [83447af5a29d3658432b2743cac69524880f749e]
#    to [d73e9033b08859e5e94970c0beafae394437ce0f]
#
# patch "Attic/modules/alg_ia32/modinfo.txt"
#  from [b3acc5a44e02b99f69e4916e957a48dfa8b008d8]
#    to [95bbfd7319fdc36a8a2f5fe843001a53bbaf55af]
#
# patch "Attic/modules/comp_bzip2/bzip2.cpp"
#  from [eeaa5981f9ccc3f6bb9c1a7f9c274da27b8fca6b]
#    to [9428fd47a6b3a8ef3e36048fc746becea6e0f50e]
#
# patch "Attic/modules/comp_zlib/zlib.cpp"
#  from [d3fba64825d528376f05abfbed84d8b60c979b22]
#    to [6c9406aff51381ad31d0624b76e5be347207dfc4]
#
# patch "Attic/modules/eng_gmp/gmp_mem.cpp"
#  from [b0395a39eb4fa971b420d41d189fe0fb1d6d3980]
#    to [c8f90c432a0cd8a842a2ddc38b8b1b3c9c944153]
#
# patch "Attic/readme.txt"
#  from [3aa822b0912a9b71bd4adc097f98443b96f717f5]
#    to [03d624dc2b7958f3d790715aedc0ea71385e1878]
#
# patch "make_prm.cpp"
#  from [e9f4a2387ea8bd55d93d4c93ba73fc8ebf028212]
#    to [133075e517d2f68f4b4370fdae3898422c33a5d6]
#
============================================================
--- Attic/checks/check.cpp	0d02e5ec66b09896d807c65c15227341bc163fff
+++ Attic/checks/check.cpp	73acdead18be7ece2112d96d83ea125593322960
@@ -27,7 +27,6 @@ int validate();
 void bench_pk(const std::string&, bool html, double seconds);
 u32bit bench_algo(const std::string&, double);
 int validate();
-void print_help();

 int main(int argc, char* argv[])
    {
@@ -37,13 +36,23 @@ int main(int argc, char* argv[])
                         "benchmark|bench-type=|bench-algo=|seconds=");
       opts.parse(argv);

-      std::string init_flags = (opts.is_set("init") ? opts.value("init") : "");
-
-      Botan::InitializerOptions init_options(init_flags);
+      Botan::InitializerOptions init_options(opts.value_if_set("init"));
       Botan::LibraryInitializer init(init_options);

       if(opts.is_set("help") || argc <= 1)
-         { print_help(); return 1; }
+         {
+         std::cerr << Botan::version_string() << " test driver\n"
+                   << "Options:\n"
+                   << "  --validate: Check test vectors\n"
+                   << "  --benchmark: Benchmark everything\n"
+                   << "  --bench-type={block,mode,stream,hash,mac,rng,pk}:\n"
+                   << "         Benchmark only algorithms of a particular type\n"
+                   << "  --html: Produce HTML output for benchmarks\n"
+                   << "  --seconds=n: Benchmark for n seconds\n"
+                   << "  --help: Print this message\n";
+         return 1;
+         }
+
       if(opts.is_set("validate"))
          return validate();

@@ -117,19 +126,6 @@ int main(int argc, char* argv[])
    return 0;
    }

-void print_help()
-   {
-   std::cout << Botan::version_string() << " test driver" << std::endl
-      << "Usage:\n"
-      << "  --validate: Check test vectors\n"
-      << "  --benchmark: Benchmark everything\n"
-      << "  --bench-type={block,mode,stream,hash,mac,rng,pk}:\n"
-      << "         Benchmark only algorithms of a particular type\n"
-      << "  --html: Produce HTML output for benchmarks\n"
-      << "  --seconds=n: Benchmark for n seconds\n"
-      << "  --help: Print this message\n";
-   }
-
 int validate()
    {
    void test_types();
============================================================
--- Attic/checks/getopt.cpp	32c4280c8341ffb0d8cb6c25366d2bdbff5cef3a
+++ Attic/checks/getopt.cpp	47acae93d069ef558e34bba575cd03079b2ba31c
@@ -12,7 +12,8 @@ OptionParser::OptionParser(const std::st
       flags.push_back(OptionFlag(opts[j]));
    }

-OptionParser::OptionFlag OptionParser::find_option(const std::string& name) const
+OptionParser::OptionFlag
+OptionParser::find_option(const std::string& name) const
    {
    for(size_t j = 0; j != flags.size(); j++)
       if(flags[j].name() == name)
@@ -33,6 +34,11 @@ std::string OptionParser::value(const st
    return i->second;
    }

+std::string OptionParser::value_if_set(const std::string& key) const
+   {
+   return is_set(key) ? value(key) : "";
+   }
+
 void OptionParser::parse(char* argv[])
    {
    std::vector<std::string> args;
============================================================
--- Attic/checks/getopt.h	31f5543404651ebf13c2eb67a896b9dd89b38bc6
+++ Attic/checks/getopt.h	c5c2fc58b021e91133898e30742cf6078fd96e1d
@@ -11,7 +11,9 @@ class OptionParser
    public:
       std::vector<std::string> leftovers() const { return leftover; }
       bool is_set(const std::string&) const;
+
       std::string value(const std::string&) const;
+      std::string value_if_set(const std::string&) const;

       void parse(char*[]);
       OptionParser(const std::string&);
============================================================
--- Attic/checks/pk_bench.cpp	b582c96d8ff536e33d520bc93c2089515f88c880
+++ Attic/checks/pk_bench.cpp	35b3cb0885e93f496427f3e742a3627daf7d202a
@@ -264,11 +264,10 @@ void print_result(bool html, u32bit runs
       {
       std::cout << "   <TR><TH>" << algo_name << " (" << op << ") <TH>";

-#if PRINT_MS_PER_OP
-      std::cout << mseconds_per_run;
-#else
-      std::cout << runs_per_sec;
-#endif
+      if(PRINT_MS_PER_OP)
+         std::cout << mseconds_per_run;
+      else
+         std::cout << runs_per_sec;

       std::cout << std::endl;
       }
@@ -279,11 +278,10 @@ void print_result(bool html, u32bit runs
       std::cout.setf(std::ios::fixed, std::ios::floatfield);
       std::cout.precision(2);

-#if PRINT_MS_PER_OP
-      std::cout << mseconds_per_run << " ms / " << op << std::endl;
-#else
-      std::cout << runs_per_sec << " ops / second (" << op << ")" << std::endl;
-#endif
+      if(PRINT_MS_PER_OP)
+         std::cout << mseconds_per_run << " ms / " << op << std::endl;
+      else
+         std::cout << runs_per_sec << " ops / second (" << op << ")" << std::endl;
       }
    }

============================================================
--- Attic/configure.pl	1abd92d286db7a648c92e655b9f640ce2cc5706f
+++ Attic/configure.pl	c54756992630666254605641134fcc0c56f5f337
@@ -9,7 +9,7 @@ my $MINOR_VERSION = 5;

 my $MAJOR_VERSION = 1;
 my $MINOR_VERSION = 5;
-my $PATCH_VERSION = 12;
+my $PATCH_VERSION = 13;

 my $VERSION_STRING = "$MAJOR_VERSION.$MINOR_VERSION.$PATCH_VERSION";

============================================================
--- Attic/doc/log.txt	d75bc0744e1a390fde91e8b7a322801a77750032
+++ Attic/doc/log.txt	c835983bdf8864f607bf4dd57a1b2d699a1158a2
@@ -1,4 +1,8 @@

+* 1.5.13, December 10, 2006
+ - Compilation fixes for the bzip2, zlib, and GNU MP modules
+ - Better support for Intel C++ and EKOpath C++ on x86-64
+
 * 1.5.12, October 27, 2006
  - Cleanups in the initialization routines
  - Add some x86-64 assembly for multiply-add
============================================================
--- Attic/misc/config/arch/amd64	3bda1ee7f9267f5af7c95766e9eee95c7e5dbb5d
+++ Attic/misc/config/arch/amd64	e99af0aae34e6c83886d5386e79380471b977fe9
@@ -3,11 +3,18 @@ default_submodel amd64
 default_submodel amd64

 <aliases>
-k8
 x86-64
 x86_64 # for RPM
-athlon64
+</aliases>
+
+<submodels>
 opteron
 em64t
 core2duo
+</submodels>
+
+<submodel_aliases>
+core -> core2duo
+athlon64 -> opteron
+k8 -> opteron
+</submodel_aliases>
-</aliases>
============================================================
--- Attic/misc/config/cc/ekopath	fcbf959e44c10427ea1868d5193271c8a9916b07
+++ Attic/misc/config/cc/ekopath	54df4f6c355b56ff537db7e429024428da3a6300
@@ -13,6 +13,8 @@ warning_flags "-W -Wall"
 lang_flags "-D_REENTRANT -ansi -Wno-long-long"
 warning_flags "-W -Wall"

+ar_command "pathCC -ar -o"
+
 so_obj_flags "-fPIC"
 debug_flags "-g"

@@ -23,14 +25,14 @@ default -> "$(CXX) -shared -fPIC -Wl,-so
 </so_link_flags>

 <mach_opt>
-i386     -> "-mcpu=anyx86"
 athlon   -> "-mcpu=athlon"
+pentium4 -> "-mcpu=pentium4"
+
 opteron  -> "-mcpu=opteron"
 em64t    -> "-mcpu=em64t"
-athlon64 -> "-mcpu=athlon64"
-pentium4 -> "-mcpu=pentium4"
+core2duo -> "-mcpu=core"

-# Reasonable default
+ia32     -> "-mcpu=anyx86"
 amd64    -> "-mcpu=athlon64"
 </mach_opt>

============================================================
--- Attic/misc/config/cc/gcc	b8325689146701fd42f035c20d39185cdc5772a6
+++ Attic/misc/config/cc/gcc	53a2886a580529bc110fa57601059c7e335807ea
@@ -42,6 +42,9 @@ sparc64-ultra3 -> "-mcpu=v9 -mtune=ultra
 ppc601         -> "-mpowerpc -mcpu=601"
 sparc64-ultra3 -> "-mcpu=v9 -mtune=ultrasparc3"

+core2duo       -> "-march=nocona -momit-leaf-frame-pointer"
+em64t          -> "-march=nocona -momit-leaf-frame-pointer"
+
 # Default family options (SUBMODEL is substitued with the real submodel)
 # Anything after the quotes is what should be *removed* from the submodel name
 # before it's put into SUBMODEL.
============================================================
--- Attic/misc/gtk/GNUmakefile	d52f8093982af036e6df3cee4635b90f7eac7a1b
+++ Attic/misc/gtk/Makefile	10999a0650770e6880072f29726dcb3c7e30f143
@@ -1,24 +1,18 @@

-CC = g++
-
 LIBS=$(shell botan-config --libs) $(shell pkg-config --libs gtk+-2.0)
 IFLAGS=$(shell botan-config --cflags) $(shell pkg-config --cflags gtk+-2.0)
-FLAGS=-Wall -W $(IFLAGS)

-SOURCE=$(wildcard *.cpp)
-HEADERS=$(wildcard *.h)
+CXX = g++
+CXXFLAGS=-Wall -W $(IFLAGS)

-OBJS=$(patsubst %.cpp,%.o,$(SOURCE))
+dsa: gtk_ui.o dsa.o
+	$(CXX) $^ $(LIBS) -o $@

-APP=dsa
+gtk_ui.o: gtk_ui.cpp gtk_ui.h
+	$(CXX) $(CXXFLAGS) -c $< -o $@

-all: $(APP)
+dsa.o: dsa.cpp gtk_ui.h
+	$(CXX) $(CXXFLAGS) -c $< -o $@

-$(APP): $(OBJS)
-	$(CC) $(OBJS) $(LIBS) -o $(APP)
-
-%.o: %.cpp $(HEADERS)
-	$(CC) $(FLAGS) -c $<
-
 clean:
+	rm -f dsa *.o
-	rm -f $(APP) $(OBJS)
============================================================
--- Attic/misc/python/src/pk.cpp	9c722a74d36029b3a202e0671d31c49ac9e62104
+++ Attic/misc/python/src/pk.cpp	2fe597d3617538be1f7c2b447be091db87c7b1ee
@@ -103,11 +103,13 @@ void export_pk()
       .def("__init__",
            python::make_constructor(get_pk_encryptor,
                                     python::with_custodian_and_ward_postcall<0, 1>()))
-      .def("max_input", &PK_Encryptor::maximum_input_size).
-      def("encrypt", encrypt_string);
+      .def("max_input", &PK_Encryptor::maximum_input_size)
+      .def("encrypt", encrypt_string);

+   /*
    python::class_<PK_Decryptor, boost::noncopyable>
       ("PK_Decryptor", python::no_init)
       .def("__init__", python::make_constructor(get_pk_decryptor))
       .def("decrypt", decrypt_string);
+   */
    }
============================================================
--- Attic/modules/alg_amd64/modinfo.txt	83447af5a29d3658432b2743cac69524880f749e
+++ Attic/modules/alg_amd64/modinfo.txt	d73e9033b08859e5e94970c0beafae394437ce0f
@@ -22,6 +22,7 @@

 <cc>
 gcc
+icc
 </cc>

 # ELF systems
============================================================
--- Attic/modules/alg_ia32/modinfo.txt	b3acc5a44e02b99f69e4916e957a48dfa8b008d8
+++ Attic/modules/alg_ia32/modinfo.txt	95bbfd7319fdc36a8a2f5fe843001a53bbaf55af
@@ -28,6 +28,7 @@

 <cc>
 gcc
+icc
 </cc>

 # ELF systems
============================================================
--- Attic/modules/comp_bzip2/bzip2.cpp	eeaa5981f9ccc3f6bb9c1a7f9c274da27b8fca6b
+++ Attic/modules/comp_bzip2/bzip2.cpp	9428fd47a6b3a8ef3e36048fc746becea6e0f50e
@@ -22,7 +22,7 @@ class Bzip_Alloc_Info
       std::map<void*, u32bit> current_allocs;
       Allocator* alloc;

-      Bzip_Alloc_Info() { alloc = get_allocator(); }
+      Bzip_Alloc_Info() { alloc = Allocator::get(false); }
    };

 /*************************************************
============================================================
--- Attic/modules/comp_zlib/zlib.cpp	d3fba64825d528376f05abfbed84d8b60c979b22
+++ Attic/modules/comp_zlib/zlib.cpp	6c9406aff51381ad31d0624b76e5be347207dfc4
@@ -21,7 +21,7 @@ class Zlib_Alloc_Info
       std::map<void*, u32bit> current_allocs;
       Allocator* alloc;

-      Zlib_Alloc_Info() { alloc = get_allocator(); }
+      Zlib_Alloc_Info() { alloc = Allocator::get(false); }
    };

 /*************************************************
============================================================
--- Attic/modules/eng_gmp/gmp_mem.cpp	b0395a39eb4fa971b420d41d189fe0fb1d6d3980
+++ Attic/modules/eng_gmp/gmp_mem.cpp	c8f90c432a0cd8a842a2ddc38b8b1b3c9c944153
@@ -52,7 +52,7 @@ void GMP_Engine::set_memory_hooks()
    {
    if(gmp_alloc == 0)
       {
-      gmp_alloc = get_allocator();
+      gmp_alloc = Allocator::get(true);
       mp_set_memory_functions(gmp_malloc, gmp_realloc, gmp_free);
       }
    }
============================================================
--- Attic/readme.txt	3aa822b0912a9b71bd4adc097f98443b96f717f5
+++ Attic/readme.txt	03d624dc2b7958f3d790715aedc0ea71385e1878
@@ -1,9 +1,10 @@

-Please note that this is an experimental / development version of Botan.
-Don't be surprised by bugs. No, the documentation hasn't been updated
-(yet). Feedback and critical analysis is highly appreciated. If this
-sounds scary, use the latest 1.4 release instead. You can file bugs at
-http://www.randombit.net/bugzilla
+This is the first release candidate for Botan 1.6.0. Please test with
+your applications and report problems. Note that some APIs have
+changed, in some cases dramatically. However most code that works
+against Botan 1.4.x should work with minimal or no modifications.

+You can file bugs at http://www.randombit.net/bugzilla
+
 Jack
 (lloyd@randombit.net)
============================================================
--- make_prm.cpp	e9f4a2387ea8bd55d93d4c93ba73fc8ebf028212
+++ make_prm.cpp	133075e517d2f68f4b4370fdae3898422c33a5d6
@@ -111,7 +111,7 @@ BigInt random_prime(u32bit bits, const B
 BigInt random_prime(u32bit bits, const BigInt& coprime,
                     u32bit equiv, u32bit modulo)
    {
-   if(bits <= 48)
+   if(bits < 48)
       throw Invalid_Argument("random_prime: Can't make a prime of " +
                              to_string(bits) + " bits");