[libntl] 05/12: merge patched into master

Julien Puydt julien.puydt at laposte.net
Thu Aug 28 08:42:48 UTC 2014


This is an automated email from the git hooks/post-receive script.

jpuydt-guest pushed a commit to branch master
in repository libntl.

commit 07746e17a9223798002da3b3c45df3739056ca98
Merge: ae9262b 376187d
Author: Julien Puydt <julien.puydt at laposte.net>
Date:   Tue Aug 26 15:50:57 2014 +0200

    merge patched into master

 README                                             |    4 +-
 debian/.git-dpm                                    |    6 +-
 debian/patches/0001-gcc-4.5-mips.patch             |    6 +-
 debian/patches/0002-a-callback-for-sage.patch      |   16 +-
 .../patches/0003-replace-md5-implementation.patch  |   30 +-
 doc/GF2.cpp.html                                   |  266 ++
 doc/GF2.txt                                        |   46 +
 doc/GF2E.cpp.html                                  |  432 +++
 doc/GF2E.txt                                       |  173 +-
 doc/GF2EX.cpp.html                                 |  914 +++++
 doc/GF2EX.txt                                      |  157 +-
 doc/GF2EXFactoring.cpp.html                        |  254 ++
 doc/GF2EXFactoring.txt                             |    2 +-
 doc/GF2X.cpp.html                                  |  840 +++++
 doc/GF2X.txt                                       |  145 +-
 doc/GF2XFactoring.cpp.html                         |  143 +
 doc/GF2XVec.cpp.html                               |   89 +
 doc/HNF.cpp.html                                   |   54 +
 doc/LLL.cpp.html                                   |  458 +++
 doc/RR.cpp.html                                    |  562 ++++
 doc/RR.txt                                         |    4 +
 doc/ZZ.cpp.html                                    |  933 +++++
 doc/ZZ.txt                                         |   25 +-
 doc/ZZVec.cpp.html                                 |   91 +
 doc/ZZX.cpp.html                                   |  624 ++++
 doc/ZZX.txt                                        |  153 +-
 doc/ZZXFactoring.cpp.html                          |  197 ++
 doc/ZZ_p.cpp.html                                  |  430 +++
 doc/ZZ_p.txt                                       |  180 +-
 doc/ZZ_pE.cpp.html                                 |  417 +++
 doc/ZZ_pE.txt                                      |  157 +-
 doc/ZZ_pEX.cpp.html                                |  915 +++++
 doc/ZZ_pEX.txt                                     |  158 +-
 doc/ZZ_pEXFactoring.cpp.html                       |  215 ++
 doc/ZZ_pEXFactoring.txt                            |    3 +-
 doc/ZZ_pX.cpp.html                                 |  919 +++++
 doc/ZZ_pX.txt                                      |  156 +-
 doc/ZZ_pXFactoring.cpp.html                        |  224 ++
 doc/ZZ_pXFactoring.txt                             |    2 +-
 doc/config.txt                                     |  117 +-
 doc/conversions.txt                                |  160 +-
 doc/copying.txt                                    |    2 +-
 doc/lzz_p.cpp.html                                 |  432 +++
 doc/lzz_p.txt                                      |  183 +-
 doc/lzz_pE.cpp.html                                |  415 +++
 doc/lzz_pE.txt                                     |  157 +-
 doc/lzz_pEX.cpp.html                               |  909 +++++
 doc/lzz_pEX.txt                                    |  150 +-
 doc/lzz_pEXFactoring.cpp.html                      |  214 ++
 doc/lzz_pEXFactoring.txt                           |    2 +-
 doc/lzz_pX.cpp.html                                |  917 +++++
 doc/lzz_pX.txt                                     |  145 +-
 doc/lzz_pXFactoring.cpp.html                       |  203 ++
 doc/mat_GF2.cpp.html                               |  279 ++
 doc/mat_GF2E.cpp.html                              |  192 ++
 doc/mat_GF2E.txt                                   |    6 +-
 doc/mat_RR.cpp.html                                |  168 +
 doc/mat_RR.txt                                     |    4 +-
 doc/mat_ZZ.cpp.html                                |  204 ++
 doc/mat_ZZ.txt                                     |    4 +-
 doc/mat_ZZ_p.cpp.html                              |  184 +
 doc/mat_ZZ_p.txt                                   |    5 +-
 doc/mat_ZZ_pE.cpp.html                             |  189 ++
 doc/mat_ZZ_pE.txt                                  |    5 +-
 doc/mat_lzz_p.cpp.html                             |  181 +
 doc/mat_lzz_p.txt                                  |    5 +-
 doc/mat_lzz_pE.cpp.html                            |  189 ++
 doc/mat_lzz_pE.txt                                 |    5 +-
 doc/mat_poly_ZZ.cpp.html                           |   46 +
 doc/mat_poly_ZZ_p.cpp.html                         |   45 +
 doc/mat_poly_lzz_p.cpp.html                        |   46 +
 doc/matrix.cpp.html                                |  172 +
 doc/matrix.txt                                     |  106 +-
 doc/pair.cpp.html                                  |  105 +
 doc/pair.txt                                       |   60 +-
 doc/quad_float.cpp.html                            |  407 +++
 doc/quad_float.txt                                 |    3 +
 doc/tools.cpp.html                                 |  141 +
 doc/tools.txt                                      |    1 +
 doc/tour-changes.html                              |  245 ++
 doc/tour-ex1.html                                  |   48 +-
 doc/tour-ex2.html                                  |   84 +-
 doc/tour-ex3.html                                  |   52 +-
 doc/tour-ex4.html                                  |  112 +-
 doc/tour-ex5.html                                  |    2 +-
 doc/tour-gmp.html                                  |  122 +-
 doc/tour-impl.html                                 |   31 +-
 doc/tour-modules.html                              |  134 +-
 doc/tour-roadmap.html                              |   10 +-
 doc/tour-stdcxx.html                               |   55 +-
 doc/tour-struct.html                               |  244 +-
 doc/tour-time.html                                 |  449 +--
 doc/tour-tips.html                                 |    6 +-
 doc/tour-unix.html                                 |   16 +-
 doc/vec_GF2.cpp.html                               |  246 ++
 doc/vec_GF2.txt                                    |  121 +-
 doc/vec_GF2E.cpp.html                              |  128 +
 doc/vec_GF2E.txt                                   |    7 +-
 doc/vec_RR.cpp.html                                |  102 +
 doc/vec_RR.txt                                     |    7 +-
 doc/vec_ZZ.cpp.html                                |  101 +
 doc/vec_ZZ.txt                                     |    7 +-
 doc/vec_ZZ_p.cpp.html                              |  123 +
 doc/vec_ZZ_p.txt                                   |    7 +-
 doc/vec_ZZ_pE.cpp.html                             |  118 +
 doc/vec_ZZ_pE.txt                                  |    8 +-
 doc/vec_lzz_p.cpp.html                             |  119 +
 doc/vec_lzz_p.txt                                  |    8 +-
 doc/vec_lzz_pE.cpp.html                            |  118 +
 doc/vec_lzz_pE.txt                                 |    8 +-
 doc/vector.cpp.html                                |  345 ++
 doc/vector.txt                                     |  203 +-
 doc/version.cpp.html                               |   50 +
 doc/xdouble.cpp.html                               |  231 ++
 doc/xdouble.txt                                    |    2 +
 include/NTL/FFT.h                                  |  156 +-
 include/NTL/FacVec.h                               |    2 +-
 include/NTL/GF2.h                                  |  491 ++-
 include/NTL/GF2E.h                                 |   67 +-
 include/NTL/GF2EX.h                                |   65 +-
 include/NTL/GF2EXFactoring.h                       |    6 +-
 include/NTL/GF2X.h                                 |   98 +-
 include/NTL/LLL.h                                  |    4 +-
 include/NTL/RR.h                                   |   18 +-
 include/NTL/WordVector.h                           |   11 +-
 include/NTL/ZZ.h                                   |  319 +-
 include/NTL/ZZX.h                                  |   56 +-
 include/NTL/ZZXFactoring.h                         |   12 +-
 include/NTL/ZZ_p.h                                 |  124 +-
 include/NTL/ZZ_pE.h                                |   59 +-
 include/NTL/ZZ_pEX.h                               |   71 +-
 include/NTL/ZZ_pEXFactoring.h                      |    7 +-
 include/NTL/ZZ_pX.h                                |   58 +-
 include/NTL/ZZ_pXFactoring.h                       |    8 +-
 include/NTL/c_lip.h                                |   83 +-
 include/NTL/ctools.h                               |   28 +-
 include/NTL/def_config.h                           |  133 +-
 include/NTL/fileio.h                               |    4 +-
 include/NTL/g_lip.h                                |   26 +-
 include/NTL/lzz_p.h                                |   90 +-
 include/NTL/lzz_pE.h                               |   53 +-
 include/NTL/lzz_pEX.h                              |   72 +-
 include/NTL/lzz_pEXFactoring.h                     |    6 +-
 include/NTL/lzz_pX.h                               |   97 +-
 include/NTL/lzz_pXFactoring.h                      |    4 +-
 include/NTL/mat_GF2.h                              |   80 +-
 include/NTL/mat_GF2E.h                             |    4 +-
 include/NTL/mat_RR.h                               |    4 +-
 include/NTL/mat_ZZ.h                               |    4 +-
 include/NTL/mat_ZZ_p.h                             |    4 +-
 include/NTL/mat_ZZ_pE.h                            |    6 +-
 include/NTL/mat_lzz_p.h                            |    4 +-
 include/NTL/mat_lzz_pE.h                           |    6 +-
 include/NTL/matrix.h                               |  394 +--
 include/NTL/pair.h                                 |  162 +-
 include/NTL/pair_GF2EX_long.h                      |    9 +-
 include/NTL/pair_GF2X_long.h                       |    9 +-
 include/NTL/pair_ZZX_long.h                        |    9 +-
 include/NTL/pair_ZZ_pEX_long.h                     |   10 +-
 include/NTL/pair_ZZ_pX_long.h                      |    9 +-
 include/NTL/pair_lzz_pEX_long.h                    |   10 +-
 include/NTL/pair_lzz_pX_long.h                     |    9 +-
 include/NTL/quad_float.h                           |   23 +-
 include/NTL/tools.h                                |   81 +-
 include/NTL/vec_GF2.h                              |  135 +-
 include/NTL/vec_GF2E.h                             |    7 +-
 include/NTL/vec_GF2XVec.h                          |    2 +-
 include/NTL/vec_RR.h                               |    6 +-
 include/NTL/vec_ZZ.h                               |    6 +-
 include/NTL/vec_ZZVec.h                            |    2 +-
 include/NTL/vec_ZZ_p.h                             |    5 +-
 include/NTL/vec_ZZ_pE.h                            |    6 +-
 include/NTL/vec_double.h                           |    6 +-
 include/NTL/vec_long.h                             |    6 +-
 include/NTL/vec_lzz_p.h                            |    6 +-
 include/NTL/vec_lzz_pE.h                           |    6 +-
 include/NTL/vec_quad_float.h                       |    6 +-
 include/NTL/vec_ulong.h                            |    6 +-
 include/NTL/vec_vec_GF2.h                          |    6 +-
 include/NTL/vec_vec_GF2E.h                         |    6 +-
 include/NTL/vec_vec_RR.h                           |    6 +-
 include/NTL/vec_vec_ZZ.h                           |    6 +-
 include/NTL/vec_vec_ZZ_p.h                         |    6 +-
 include/NTL/vec_vec_ZZ_pE.h                        |    6 +-
 include/NTL/vec_vec_long.h                         |    6 +-
 include/NTL/vec_vec_lzz_p.h                        |    6 +-
 include/NTL/vec_vec_lzz_pE.h                       |    6 +-
 include/NTL/vec_vec_ulong.h                        |    6 +-
 include/NTL/vec_xdouble.h                          |    5 +-
 include/NTL/vector.h                               | 1023 +++---
 include/NTL/version.h                              |    8 +-
 include/NTL/xdouble.h                              |   18 +-
 src/DIRNAME                                        |    2 +-
 src/DispSettings.c                                 |   16 +-
 src/DoConfig                                       |   12 +-
 src/FFT.c                                          | 1044 +++++-
 src/FacVec.c                                       |    2 -
 src/GF2.c                                          |   37 +-
 src/GF2E.c                                         |    5 +-
 src/GF2EX.c                                        |   40 +-
 src/GF2EXFactoring.c                               |   19 +-
 src/GF2X.c                                         |   94 +-
 src/GF2X1.c                                        |  265 +-
 src/GF2XFactoring.c                                |    2 +-
 src/GF2XTest.c                                     |    2 +-
 src/G_LLL_FP.c                                     |   27 +-
 src/G_LLL_QP.c                                     |   29 +-
 src/G_LLL_RR.c                                     |   23 +-
 src/G_LLL_XD.c                                     |   23 +-
 src/GetTime1.c                                     |   18 +-
 src/GetTime2.c                                     |   11 +-
 src/GetTime3.c                                     |    9 +-
 src/GetTime4.c                                     |   22 +-
 src/GetTime5.c                                     |   11 +-
 src/InitSettings.c                                 |   11 -
 src/LLL.c                                          |   39 +-
 src/LLL_FP.c                                       |   28 +-
 src/LLL_QP.c                                       |   30 +-
 src/LLL_RR.c                                       |   23 +-
 src/LLL_XD.c                                       |   25 +-
 src/MakeDesc.c                                     |   48 +-
 src/MakeGetTime                                    |   23 +-
 src/MulTimeTest.c                                  |    3 -
 src/NOTES                                          |   18 +-
 src/Poly1TimeTest.c                                |   38 +-
 src/PolyTimeTest.c                                 |    2 -
 src/QuickTest.c                                    |   81 +-
 src/RR.c                                           |  105 +-
 src/RemoveProg                                     |    9 +-
 src/TestGetTime.c                                  |    6 +-
 src/TestScript                                     |   16 +-
 src/Timing.c                                       |  194 ++
 src/VERSION_INFO                                   |    2 +-
 src/WINDIR                                         |    2 +-
 src/Wizard                                         |    2 -
 src/WizardAux                                      |   72 +-
 src/WordVector.c                                   |    4 +-
 src/ZZ.c                                           |  140 +-
 src/ZZX.c                                          |   28 +-
 src/ZZX1.c                                         |  105 +-
 src/ZZXFactoring.c                                 |   17 +-
 src/ZZ_p.c                                         |  105 +-
 src/ZZ_pE.c                                        |   11 +-
 src/ZZ_pEX.c                                       |   73 +-
 src/ZZ_pEXFactoring.c                              |   19 +-
 src/ZZ_pX.c                                        |  171 +-
 src/ZZ_pX1.c                                       |   24 +-
 src/ZZ_pXFactoring.c                               |   20 +-
 src/c_lip_impl.h                                   | 3548 ++++++--------------
 src/cfile                                          |  133 +-
 src/ctools.c                                       |   32 +-
 src/def_makefile                                   |  165 +-
 src/dosify                                         |    1 -
 src/fileio.c                                       |    8 +-
 src/g_lip_impl.h                                   |  220 +-
 src/gen_lip_gmp_aux.c                              |  529 ---
 src/lip.c                                          |    3 -
 src/lzz_p.c                                        |   99 +-
 src/lzz_pE.c                                       |   12 +-
 src/lzz_pEX.c                                      |   74 +-
 src/lzz_pEXFactoring.c                             |   19 +-
 src/lzz_pX.c                                       |  285 +-
 src/lzz_pX1.c                                      |   15 +-
 src/lzz_pXFactoring.c                              |   15 +-
 src/mat_GF2.c                                      |  127 +-
 src/mat_GF2E.c                                     |    5 -
 src/mat_RR.c                                       |    7 +-
 src/mat_ZZ.c                                       |    5 -
 src/mat_ZZ_p.c                                     |    7 -
 src/mat_ZZ_pE.c                                    |    7 -
 src/mat_lzz_p.c                                    |   18 +-
 src/mat_lzz_pE.c                                   |    7 -
 src/mfile                                          |  161 +-
 src/pair_GF2EX_long.c                              |   16 -
 src/pair_GF2X_long.c                               |   16 -
 src/pair_ZZX_long.c                                |   16 -
 src/pair_ZZ_pEX_long.c                             |   17 -
 src/pair_ZZ_pX_long.c                              |   16 -
 src/pair_lzz_pEX_long.c                            |   16 -
 src/pair_lzz_pX_long.c                             |   16 -
 src/ppscript                                       |   14 +
 src/quad_float.c                                   |   18 +-
 src/tools.c                                        |    4 +-
 src/vec_GF2.c                                      |   66 +-
 src/vec_GF2E.c                                     |   60 +-
 src/vec_GF2XVec.c                                  |   10 -
 src/vec_RR.c                                       |    9 +-
 src/vec_ZZ.c                                       |    8 -
 src/vec_ZZVec.c                                    |   10 -
 src/vec_ZZ_p.c                                     |   59 +-
 src/vec_ZZ_pE.c                                    |    8 -
 src/vec_double.c                                   |   21 -
 src/vec_long.c                                     |   21 -
 src/vec_lzz_p.c                                    |   10 +-
 src/vec_lzz_pE.c                                   |    9 -
 src/vec_quad_float.c                               |   15 -
 src/vec_ulong.c                                    |   21 -
 src/vec_vec_GF2.c                                  |   16 -
 src/vec_vec_GF2E.c                                 |   14 -
 src/vec_vec_RR.c                                   |   15 -
 src/vec_vec_ZZ.c                                   |   15 -
 src/vec_vec_ZZ_p.c                                 |   14 -
 src/vec_vec_ZZ_pE.c                                |   14 -
 src/vec_vec_long.c                                 |   15 -
 src/vec_vec_lzz_p.c                                |   14 -
 src/vec_vec_lzz_pE.c                               |   14 -
 src/vec_vec_ulong.c                                |   15 -
 src/vec_xdouble.c                                  |   14 -
 src/xdouble.c                                      |   14 +-
 309 files changed, 25540 insertions(+), 9030 deletions(-)

diff --cc debian/.git-dpm
index 53e0259,0000000..05af436
mode 100644,000000..100644
--- a/debian/.git-dpm
+++ b/debian/.git-dpm
@@@ -1,8 -1,0 +1,8 @@@
 +# see git-dpm(1) from git-dpm package
- 0f2b338f9fafa054732b30a3296eb93262b53645
- 0f2b338f9fafa054732b30a3296eb93262b53645
- 234ecb0054229e0458d9bfaa3c8672e84ff8f477
++376187d3ceac20252b83e63fe68b41153eaac762
++376187d3ceac20252b83e63fe68b41153eaac762
++bed8daaf6832befb18fc3afd4366a07bfaa6becf
 +bed8daaf6832befb18fc3afd4366a07bfaa6becf
 +ntl_6.2.0.orig.tar.gz
 +57a53add0dbc78d0793ce000913991af9b97d44f
 +814301
diff --cc debian/patches/0001-gcc-4.5-mips.patch
index e196c05,0000000..a86b845
mode 100644,000000..100644
--- a/debian/patches/0001-gcc-4.5-mips.patch
+++ b/debian/patches/0001-gcc-4.5-mips.patch
@@@ -1,48 -1,0 +1,48 @@@
- From 167bf8e15c7475babc0782c2fe8b3af5bcf1ddbd Mon Sep 17 00:00:00 2001
++From 01b217229965b4da77d98d999989af8ef6c2c02c Mon Sep 17 00:00:00 2001
 +From: Aurelien Jarno <aurel32 at debian.org>
 +Date: Sun, 17 Apr 2011 23:41:31 +0200
 +Subject: gcc-4.5-mips
 +
 +Bug-Debian: 623162
 +
 +Since GCC 4.4 it's not possible anymore to use the 'h' constraints for
 +MIPS inline assembly code when doing a multiplication. That's why sprng
 +fails to build from source on mips and mipsel.
 +
 +That said GCC supports 32x32 => 64 multiplication on 32-bit architecture
 +for a lot of time, so there is no need to use assembly code for that.
 +The patch below fixes the problem by using standard multiplication
 +instead of assembly code. I have also included the code for MIPS64 using
 +128-bit hints for reference (the second hunk), though it is not used in
 +Debian.
 +---
-  include/NTL/SPMM_ASM.h |    9 +++++----
-  1 files changed, 5 insertions(+), 4 deletions(-)
++ include/NTL/SPMM_ASM.h | 9 +++++----
++ 1 file changed, 5 insertions(+), 4 deletions(-)
 +
 +diff --git a/include/NTL/SPMM_ASM.h b/include/NTL/SPMM_ASM.h
 +index dc0bfb9..9ff7942 100644
 +--- a/include/NTL/SPMM_ASM.h
 ++++ b/include/NTL/SPMM_ASM.h
 +@@ -147,8 +147,8 @@ static inline unsigned long MulHiUL(unsigned long a, unsigned long b)
 + 
 + static inline unsigned long MulHiUL(unsigned long a, unsigned long b)
 + {
 +-   unsigned long hi, lo;
 +-   __asm__ ("multu %2,%3" : "=l" (lo), "=h" (hi) : "d" (a), "d" (b));
 ++   unsigned long hi;
 ++   hi = ((unsigned long long) a * b) >> 32;
 +    return hi;
 + } 
 + 
 +@@ -159,8 +159,9 @@ static inline unsigned long MulHiUL(unsigned long a, unsigned long b)
 + 
 + static inline unsigned long MulHiUL(unsigned long a, unsigned long b)
 + {
 +-   unsigned long hi, lo;
 +-   __asm__ ("dmultu %2,%3" : "=l" (lo), "=h" (hi) : "d" (a), "d" (b));
 ++   typedef unsigned int uint128_t __attribute__((mode(TI)));
 ++   unsigned long hi;
 ++   hi = ((uint128_t) a * b) >> 64;
 +    return hi;
 + }
 + 
diff --cc debian/patches/0002-a-callback-for-sage.patch
index 8f9beb3,0000000..493946f
mode 100644,000000..100644
--- a/debian/patches/0002-a-callback-for-sage.patch
+++ b/debian/patches/0002-a-callback-for-sage.patch
@@@ -1,77 -1,0 +1,77 @@@
- From 657ad2a8f5e44518df3907208157303dae478898 Mon Sep 17 00:00:00 2001
++From 7aeb914141b0e1ba327a6b55535d32133e96c262 Mon Sep 17 00:00:00 2001
 +From: Felix Salfelder <salfelder at em.cs.uni-frankfurt.de>
 +Date: Thu, 26 Jan 2012 21:34:21 +0100
 +Subject: a callback for sage
 +
 +(from sage-4.7.tar/spkg/ntl/dist/debian)
 +
 + We add a SetErrorCallbackFunction(). This sets a global callback function _function_,
 + which gets called with parameter _context_ and an error message string whenever Error()
 + gets called.
 +
 + Note that if the custom error handler *returns*, then NTL will dump the error message
 + back to stderr and abort() as it habitually does.
 +
 + -- David Harvey (2008-04-12)
 +---
-  include/NTL/tools.h |    6 ++++++
-  src/tools.c         |   27 +++++++++++++++++++++++++++
-  2 files changed, 33 insertions(+), 0 deletions(-)
++ include/NTL/tools.h |  6 ++++++
++ src/tools.c         | 27 +++++++++++++++++++++++++++
++ 2 files changed, 33 insertions(+)
 +
 +diff --git a/include/NTL/tools.h b/include/NTL/tools.h
- index 3f32fe7..c4708e8 100644
++index d79ea43..ca41173 100644
 +--- a/include/NTL/tools.h
 ++++ b/include/NTL/tools.h
- @@ -252,6 +252,12 @@ long CharToIntVal(long c);
++@@ -310,6 +310,12 @@ long CharToIntVal(long c);
 + char IntValToChar(long a);
 + 
 + 
 ++/*
 ++  This function is not present in vanilla NTL 5.4.2.
 ++  See tools.c for documentation.
 ++ */
 ++void SetErrorCallbackFunction(void (*func)(const char *s, void *context), void *context);
 ++
 + 
 + void Error(const char *s);
 + 
 +diff --git a/src/tools.c b/src/tools.c
- index c617ae1..86af374 100644
++index 36c956b..f05f557 100644
 +--- a/src/tools.c
 ++++ b/src/tools.c
 +@@ -18,8 +18,35 @@ NTL_START_IMPL
-  void (*ErrorCallback)() = 0;
++ NTL_THREAD_LOCAL void (*ErrorCallback)() = 0;
 + 
 + 
 ++/*
 ++   The following code differs from vanilla NTL 5.4.2.
 ++
 ++   We add a SetErrorCallbackFunction(). This sets a global callback function _function_,
 ++   which gets called with parameter _context_ and an error message string whenever Error()
 ++   gets called.
 ++
 ++   Note that if the custom error handler *returns*, then NTL will dump the error message
 ++   back to stderr and abort() as it habitually does.
 ++
 ++   -- David Harvey (2008-04-12)
 ++*/
 ++
 ++void (*ErrorCallbackFunction)(const char*, void*) = NULL;
 ++void *ErrorCallbackContext = NULL;
 ++
 ++
 ++void SetErrorCallbackFunction(void (*function)(const char*, void*), void *context)
 ++{
 ++   ErrorCallbackFunction = function;
 ++   ErrorCallbackContext = context;
 ++}
 ++
 ++
 + void Error(const char *s)
 + {
 ++   if (ErrorCallbackFunction != NULL)
 ++      ErrorCallbackFunction(s, ErrorCallbackContext);
 ++
 +    cerr << s << "\n";
 +    _ntl_abort();
 + }
diff --cc debian/patches/0003-replace-md5-implementation.patch
index e562b10,0000000..0f77b23
mode 100644,000000..100644
--- a/debian/patches/0003-replace-md5-implementation.patch
+++ b/debian/patches/0003-replace-md5-implementation.patch
@@@ -1,402 -1,0 +1,402 @@@
- From 0f2b338f9fafa054732b30a3296eb93262b53645 Mon Sep 17 00:00:00 2001
++From 376187d3ceac20252b83e63fe68b41153eaac762 Mon Sep 17 00:00:00 2001
 +From: "Bernhard R. Link" <brlink at debian.org>
 +Date: Sat, 11 Feb 2012 10:35:46 +0100
 +Subject: replace md5 implementation
 +
 +Replace RSA's md5 implementation with a public domain one to
 +get rid of the advertisement clause.
 +---
-  src/ZZ.c |  316 ++++++++++++++++++++++++++------------------------------------
-  1 files changed, 133 insertions(+), 183 deletions(-)
++ src/ZZ.c | 316 +++++++++++++++++++++++++++------------------------------------
++ 1 file changed, 133 insertions(+), 183 deletions(-)
 +
 +diff --git a/src/ZZ.c b/src/ZZ.c
- index 86340a7..3a38177 100644
++index 054259b..4af7952 100644
 +--- a/src/ZZ.c
 ++++ b/src/ZZ.c
- @@ -1353,207 +1353,157 @@ long power_long(long a, long e)
++@@ -1331,207 +1331,157 @@ long power_long(long a, long e)
 + // which I've modified to work on 64-bit machines
 + 
 + 
 ++#ifndef uint32
 ++# if NTL_BITS_PER_INT == 32
 ++typedef unsigned int uint32;
 ++# elif NTL_BITS_PER_LONG == 32
 ++typedef unsigned long uint32;
 ++# else
 ++#  error unable to find 32 bit type
 ++# endif
 ++#endif
 + /*
 +- *  BEGIN RSA's md5 stuff
 ++ *  BEGIN md5 stuff
 +  *
 +  */
 + 
 + /*
 +- **********************************************************************
 +- ** md5.c                                                            **
 +- ** RSA Data Security, Inc. MD5 Message Digest Algorithm             **
 +- ** Created: 2/17/90 RLR                                             **
 +- ** Revised: 1/91 SRD,AJ,BSK,JT Reference C Version                  **
 +- **********************************************************************
 ++ * This code implements the MD5 message-digest algorithm.
 ++ * The algorithm is due to Ron Rivest.  This code was
 ++ * written by Colin Plumb in 1993, no copyright is claimed.
 ++ * This code is in the public domain; do with it what you wish.
 ++ *
 ++ * Equivalent code is available from RSA Data Security, Inc.
 ++ * This code has been tested against that, and is equivalent,
 ++ * except that you don't need to include two pages of legalese
 ++ * with every copy.
 ++ *
 ++ Modified to only contain the functions needed here.
 +  */
 + 
 + /*
 +- **********************************************************************
 +- ** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. **
 +- **                                                                  **
 +- ** License to copy and use this software is granted provided that   **
 +- ** it is identified as the "RSA Data Security, Inc. MD5 Message     **
 +- ** Digest Algorithm" in all material mentioning or referencing this **
 +- ** software or this function.                                       **
 +- **                                                                  **
 +- ** License is also granted to make and use derivative works         **
 +- ** provided that such works are identified as "derived from the RSA **
 +- ** Data Security, Inc. MD5 Message Digest Algorithm" in all         **
 +- ** material mentioning or referencing the derived work.             **
 +- **                                                                  **
 +- ** RSA Data Security, Inc. makes no representations concerning      **
 +- ** either the merchantability of this software or the suitability   **
 +- ** of this software for any particular purpose.  It is provided "as **
 +- ** is" without express or implied warranty of any kind.             **
 +- **                                                                  **
 +- ** These notices must be retained in any copies of any part of this **
 +- ** documentation and/or software.                                   **
 +- **********************************************************************
 ++ * Start MD5 accumulation.  Set bit count to 0 and buffer to mysterious
 ++ * initialization constants.
 +  */
 +-
 +-
 +-#if (NTL_BITS_PER_LONG <= 32)
 +-#define TRUNC32(x) (x)
 +-#else
 +-#define TRUNC32(x) ((x) & ((1UL << 32)-1UL))
 +-#endif
 +-
 +-/* F, G and H are basic MD5 functions: selection, majority, parity */
 +-#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
 +-#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
 +-#define H(x, y, z) ((x) ^ (y) ^ (z))
 +-#define I(x, y, z) (TRUNC32((y) ^ ((x) | (~z)))) 
 +-
 +-/* ROTATE_LEFT rotates x left n bits */
 +-#define ROTATE_LEFT(x, n) (TRUNC32(((x) << (n)) | ((x) >> (32-(n)))))
 +-
 +-/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4 */
 +-/* Rotation is separate from addition to prevent recomputation */
 +-#define FF(a, b, c, d, x, s, ac) \
 +-  {(a) = TRUNC32((a) + F((b), (c), (d)) + (x) + (ac)); \
 +-   (a) = ROTATE_LEFT((a), (s)); \
 +-   (a) = TRUNC32((a) + (b)); \
 +-  }
 +-#define GG(a, b, c, d, x, s, ac) \
 +-  {(a) = TRUNC32((a) + G((b), (c), (d)) + (x) + (ac)); \
 +-   (a) = ROTATE_LEFT((a), (s)); \
 +-   (a) = TRUNC32((a) + (b)); \
 +-  }
 +-#define HH(a, b, c, d, x, s, ac) \
 +-  {(a) = TRUNC32((a) + H((b), (c), (d)) + (x) + (ac)); \
 +-   (a) = ROTATE_LEFT((a), (s)); \
 +-   (a) = TRUNC32((a) + (b)); \
 +-  }
 +-#define II(a, b, c, d, x, s, ac) \
 +-  {(a) = TRUNC32((a) + I((b), (c), (d)) + (x) + (ac)); \
 +-   (a) = ROTATE_LEFT((a), (s)); \
 +-   (a) = TRUNC32((a) + (b)); \
 +-  }
 +-
 +-
 +-
 + static
 +-void MD5_default_IV(unsigned long *buf)
 ++void MD5Init(uint32 buf[4])
 + {
 +-   buf[0] = 0x67452301UL;
 +-   buf[1] = 0xefcdab89UL;
 +-   buf[2] = 0x98badcfeUL;
 +-   buf[3] = 0x10325476UL;
 ++    buf[0] = 0x67452301U;
 ++    buf[1] = 0xefcdab89U;
 ++    buf[2] = 0x98badcfeU;
 ++    buf[3] = 0x10325476U;
 + }
 + 
 ++/* The four core functions - F1 is optimized somewhat */
 + 
 ++/* #define F1(x, y, z) (x & y | ~x & z) */
 ++#define F1(x, y, z) (z ^ (x & (y ^ z)))
 ++#define F2(x, y, z) F1(z, x, y)
 ++#define F3(x, y, z) (x ^ y ^ z)
 ++#define F4(x, y, z) (y ^ (x | ~z))
 + 
 +-/* Basic MD5 step. Transform buf based on in.
 +- */
 ++/* This is the central step in the MD5 algorithm. */
 ++#define MD5STEP(f, w, x, y, z, data, s) \
 ++	( w += f(x, y, z) + data,  w = w<<s | w>>(32-s),  w += x )
 + 
 ++/*
 ++ * The core of the MD5 algorithm, this alters an existing MD5 hash to
 ++ * reflect the addition of 16 longwords of new data.  MD5Update blocks
 ++ * the data and converts bytes into longwords for this routine.
 ++ */
 + static
 +-void MD5_compress(unsigned long *buf, unsigned long *in)
 +-{
 +-  unsigned long a = buf[0], b = buf[1], c = buf[2], d = buf[3];
 +-
 +-  /* Round 1 */
 +-#define S11 7
 +-#define S12 12
 +-#define S13 17
 +-#define S14 22
 +-  FF ( a, b, c, d, in[ 0], S11, 3614090360UL); /* 1 */
 +-  FF ( d, a, b, c, in[ 1], S12, 3905402710UL); /* 2 */
 +-  FF ( c, d, a, b, in[ 2], S13,  606105819UL); /* 3 */
 +-  FF ( b, c, d, a, in[ 3], S14, 3250441966UL); /* 4 */
 +-  FF ( a, b, c, d, in[ 4], S11, 4118548399UL); /* 5 */
 +-  FF ( d, a, b, c, in[ 5], S12, 1200080426UL); /* 6 */
 +-  FF ( c, d, a, b, in[ 6], S13, 2821735955UL); /* 7 */
 +-  FF ( b, c, d, a, in[ 7], S14, 4249261313UL); /* 8 */
 +-  FF ( a, b, c, d, in[ 8], S11, 1770035416UL); /* 9 */
 +-  FF ( d, a, b, c, in[ 9], S12, 2336552879UL); /* 10 */
 +-  FF ( c, d, a, b, in[10], S13, 4294925233UL); /* 11 */
 +-  FF ( b, c, d, a, in[11], S14, 2304563134UL); /* 12 */
 +-  FF ( a, b, c, d, in[12], S11, 1804603682UL); /* 13 */
 +-  FF ( d, a, b, c, in[13], S12, 4254626195UL); /* 14 */
 +-  FF ( c, d, a, b, in[14], S13, 2792965006UL); /* 15 */
 +-  FF ( b, c, d, a, in[15], S14, 1236535329UL); /* 16 */
 +-
 +-  /* Round 2 */
 +-#define S21 5
 +-#define S22 9
 +-#define S23 14
 +-#define S24 20
 +-  GG ( a, b, c, d, in[ 1], S21, 4129170786UL); /* 17 */
 +-  GG ( d, a, b, c, in[ 6], S22, 3225465664UL); /* 18 */
 +-  GG ( c, d, a, b, in[11], S23,  643717713UL); /* 19 */
 +-  GG ( b, c, d, a, in[ 0], S24, 3921069994UL); /* 20 */
 +-  GG ( a, b, c, d, in[ 5], S21, 3593408605UL); /* 21 */
 +-  GG ( d, a, b, c, in[10], S22,   38016083UL); /* 22 */
 +-  GG ( c, d, a, b, in[15], S23, 3634488961UL); /* 23 */
 +-  GG ( b, c, d, a, in[ 4], S24, 3889429448UL); /* 24 */
 +-  GG ( a, b, c, d, in[ 9], S21,  568446438UL); /* 25 */
 +-  GG ( d, a, b, c, in[14], S22, 3275163606UL); /* 26 */
 +-  GG ( c, d, a, b, in[ 3], S23, 4107603335UL); /* 27 */
 +-  GG ( b, c, d, a, in[ 8], S24, 1163531501UL); /* 28 */
 +-  GG ( a, b, c, d, in[13], S21, 2850285829UL); /* 29 */
 +-  GG ( d, a, b, c, in[ 2], S22, 4243563512UL); /* 30 */
 +-  GG ( c, d, a, b, in[ 7], S23, 1735328473UL); /* 31 */
 +-  GG ( b, c, d, a, in[12], S24, 2368359562UL); /* 32 */
 +-
 +-  /* Round 3 */
 +-#define S31 4
 +-#define S32 11
 +-#define S33 16
 +-#define S34 23
 +-  HH ( a, b, c, d, in[ 5], S31, 4294588738UL); /* 33 */
 +-  HH ( d, a, b, c, in[ 8], S32, 2272392833UL); /* 34 */
 +-  HH ( c, d, a, b, in[11], S33, 1839030562UL); /* 35 */
 +-  HH ( b, c, d, a, in[14], S34, 4259657740UL); /* 36 */
 +-  HH ( a, b, c, d, in[ 1], S31, 2763975236UL); /* 37 */
 +-  HH ( d, a, b, c, in[ 4], S32, 1272893353UL); /* 38 */
 +-  HH ( c, d, a, b, in[ 7], S33, 4139469664UL); /* 39 */
 +-  HH ( b, c, d, a, in[10], S34, 3200236656UL); /* 40 */
 +-  HH ( a, b, c, d, in[13], S31,  681279174UL); /* 41 */
 +-  HH ( d, a, b, c, in[ 0], S32, 3936430074UL); /* 42 */
 +-  HH ( c, d, a, b, in[ 3], S33, 3572445317UL); /* 43 */
 +-  HH ( b, c, d, a, in[ 6], S34,   76029189UL); /* 44 */
 +-  HH ( a, b, c, d, in[ 9], S31, 3654602809UL); /* 45 */
 +-  HH ( d, a, b, c, in[12], S32, 3873151461UL); /* 46 */
 +-  HH ( c, d, a, b, in[15], S33,  530742520UL); /* 47 */
 +-  HH ( b, c, d, a, in[ 2], S34, 3299628645UL); /* 48 */
 +-
 +-  /* Round 4 */
 +-#define S41 6
 +-#define S42 10
 +-#define S43 15
 +-#define S44 21
 +-  II ( a, b, c, d, in[ 0], S41, 4096336452UL); /* 49 */
 +-  II ( d, a, b, c, in[ 7], S42, 1126891415UL); /* 50 */
 +-  II ( c, d, a, b, in[14], S43, 2878612391UL); /* 51 */
 +-  II ( b, c, d, a, in[ 5], S44, 4237533241UL); /* 52 */
 +-  II ( a, b, c, d, in[12], S41, 1700485571UL); /* 53 */
 +-  II ( d, a, b, c, in[ 3], S42, 2399980690UL); /* 54 */
 +-  II ( c, d, a, b, in[10], S43, 4293915773UL); /* 55 */
 +-  II ( b, c, d, a, in[ 1], S44, 2240044497UL); /* 56 */
 +-  II ( a, b, c, d, in[ 8], S41, 1873313359UL); /* 57 */
 +-  II ( d, a, b, c, in[15], S42, 4264355552UL); /* 58 */
 +-  II ( c, d, a, b, in[ 6], S43, 2734768916UL); /* 59 */
 +-  II ( b, c, d, a, in[13], S44, 1309151649UL); /* 60 */
 +-  II ( a, b, c, d, in[ 4], S41, 4149444226UL); /* 61 */
 +-  II ( d, a, b, c, in[11], S42, 3174756917UL); /* 62 */
 +-  II ( c, d, a, b, in[ 2], S43,  718787259UL); /* 63 */
 +-  II ( b, c, d, a, in[ 9], S44, 3951481745UL); /* 64 */
 +-
 +-  buf[0] = TRUNC32(buf[0] + a);
 +-  buf[1] = TRUNC32(buf[1] + b);
 +-  buf[2] = TRUNC32(buf[2] + c);
 +-  buf[3] = TRUNC32(buf[3] + d);
 ++void MD5Transform(uint32 buf[4], uint32 const in[16])
 ++{
 ++    register uint32 a, b, c, d;
 ++
 ++    a = buf[0];
 ++    b = buf[1];
 ++    c = buf[2];
 ++    d = buf[3];
 ++
 ++    MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478U, 7);
 ++    MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756U, 12);
 ++    MD5STEP(F1, c, d, a, b, in[2] + 0x242070dbU, 17);
 ++    MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceeeU, 22);
 ++    MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0fafU, 7);
 ++    MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62aU, 12);
 ++    MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613U, 17);
 ++    MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501U, 22);
 ++    MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8U, 7);
 ++    MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7afU, 12);
 ++    MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1U, 17);
 ++    MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7beU, 22);
 ++    MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122U, 7);
 ++    MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193U, 12);
 ++    MD5STEP(F1, c, d, a, b, in[14] + 0xa679438eU, 17);
 ++    MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821U, 22);
 ++
 ++    MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562U, 5);
 ++    MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340U, 9);
 ++    MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51U, 14);
 ++    MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aaU, 20);
 ++    MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105dU, 5);
 ++    MD5STEP(F2, d, a, b, c, in[10] + 0x02441453U, 9);
 ++    MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
 ++    MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8U, 20);
 ++    MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6U, 5);
 ++    MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6U, 9);
 ++    MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87U, 14);
 ++    MD5STEP(F2, b, c, d, a, in[8] + 0x455a14edU, 20);
 ++    MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905U, 5);
 ++    MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8U, 9);
 ++    MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9U, 14);
 ++    MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8aU, 20);
 ++
 ++    MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942U, 4);
 ++    MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681U, 11);
 ++    MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122U, 16);
 ++    MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380cU, 23);
 ++    MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44U, 4);
 ++    MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9U, 11);
 ++    MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60U, 16);
 ++    MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70U, 23);
 ++    MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6U, 4);
 ++    MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127faU, 11);
 ++    MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085U, 16);
 ++    MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05U, 23);
 ++    MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039U, 4);
 ++    MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5U, 11);
 ++    MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8U, 16);
 ++    MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665U, 23);
 ++
 ++    MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244U, 6);
 ++    MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97U, 10);
 ++    MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7U, 15);
 ++    MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039U, 21);
 ++    MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3U, 6);
 ++    MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92U, 10);
 ++    MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47dU, 15);
 ++    MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1U, 21);
 ++    MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4fU, 6);
 ++    MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0U, 10);
 ++    MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314U, 15);
 ++    MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1U, 21);
 ++    MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82U, 6);
 ++    MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235U, 10);
 ++    MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bbU, 15);
 ++    MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391U, 21);
 ++
 ++    buf[0] += a;
 ++    buf[1] += b;
 ++    buf[2] += c;
 ++    buf[3] += d;
 + }
 + 
 + 
 + /*
 +- *  END RSA's md5 stuff
 ++ *  END md5 stuff
 +  *
 +  */
 + 
 + 
 + static
- -void words_from_bytes(unsigned long *txtl, unsigned char *txtc, long n)
++-void words_from_bytes(unsigned long *txtl, const unsigned char *txtc, long n)
 ++void words_from_bytes(uint32 *txtl, unsigned char *txtc, long n)
 + {
 +    long i;
 +    unsigned long v;
- @@ -1568,7 +1518,7 @@ void words_from_bytes(unsigned long *txtl, unsigned char *txtc, long n)
++@@ -1546,7 +1496,7 @@ void words_from_bytes(unsigned long *txtl, const unsigned char *txtc, long n)
 + }
 + 
 + static 
- -void bytes_from_words(unsigned char *txtc, unsigned long *txtl, long n)
++-void bytes_from_words(unsigned char *txtc, const unsigned long *txtl, long n)
 ++void bytes_from_words(unsigned char *txtc, uint32 *txtl, long n)
 + {
 +    long i;
 +    unsigned long v;
- @@ -1587,9 +1537,9 @@ void bytes_from_words(unsigned char *txtc, unsigned long *txtl, long n)
++@@ -1565,9 +1515,9 @@ void bytes_from_words(unsigned char *txtc, const unsigned long *txtl, long n)
 + 
 + 
 + static
 +-void MD5_compress1(unsigned long *buf, unsigned char *in, long n)
 ++void MD5_compress1(uint32 *buf, unsigned char *in, long n)
 + {
 +-   unsigned long txtl[16];
 ++   uint32 txtl[16];
 +    unsigned char txtc[64]; 
 +    long i, j, k;
 + 
- @@ -1604,7 +1554,7 @@ void MD5_compress1(unsigned long *buf, unsigned char *in, long n)
++@@ -1582,7 +1532,7 @@ void MD5_compress1(unsigned long *buf, unsigned char *in, long n)
 +       for (; j < 64; j++)
 +          txtc[j] = 0;
 +       words_from_bytes(txtl, txtc, 16);
 +-      MD5_compress(buf, txtl);
 ++      MD5Transform(buf, txtl);
 +       i += k;
 +    }
 + }
- @@ -1689,7 +1639,7 @@ void arc4(unsigned char *buffer_ptr, long buffer_len, _ZZ_arc4_key *key)
-  static long ran_initialized = 0;
-  static _ZZ_arc4_key ran_key;
++@@ -1667,7 +1617,7 @@ void arc4(unsigned char *buffer_ptr, long buffer_len, _ZZ_arc4_key *key)
++ NTL_THREAD_LOCAL static long ran_initialized = 0;
++ NTL_THREAD_LOCAL static _ZZ_arc4_key ran_key;
 + 
- -static unsigned long default_md5_tab[16] = {
++-static const unsigned long default_md5_tab[16] = {
 ++static uint32 default_md5_tab[16] = {
 + 744663023UL, 1011602954UL, 3163087192UL, 3383838527UL, 
 + 3305324122UL, 3197458079UL, 2266495600UL, 2760303563UL, 
 + 346234297UL, 1919920720UL, 1896169861UL, 2192176675UL, 
- @@ -1713,11 +1663,11 @@ void build_arc4_tab(unsigned char *seed_bytes, const ZZ& s)
++@@ -1691,11 +1641,11 @@ void build_arc4_tab(unsigned char *seed_bytes, const ZZ& s)
 + 
 +    bytes_from_words(txt + nb + 4, default_md5_tab, 16);
 + 
 +-   unsigned long buf[4];
 ++   uint32 buf[4];
 + 
 +-   unsigned long i;
 ++   uint32 i;
 +    for (i = 0; i < 16; i++) {
 +-      MD5_default_IV(buf);
 ++      MD5Init(buf);
 +       bytes_from_words(txt, &i, 1);
 + 
 +       MD5_compress1(buf, txt, nb + 68);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/libntl.git



More information about the debian-science-commits mailing list