No, please go ahead an upload directly.

Thanks for the NMU.

Ondrej

On 9 October 2017 at 11:33, <[email protected]> wrote:

> Control: tags 877436 + pending
>
> Dear Ondřej,
>
> I've prepared an NMU for botan1.10 (versioned as 1.10.17-0.1) and
> will upload it to DELAYED/4. Please feel free to tell me if I
> should delay it longer.
>
> Cheers,
> Chris
>
>
> diff -Nru botan1.10-1.10.16/botan_version.py botan1.10-1.10.17/botan_
> version.py
> --- botan1.10-1.10.16/botan_version.py  2017-04-05 01:07:02.000000000
> +0000
> +++ botan1.10-1.10.17/botan_version.py  2017-10-02 06:00:00.000000000
> +0000
> @@ -1,11 +1,11 @@
>
>  release_major = 1
>  release_minor = 10
> -release_patch = 16
> +release_patch = 17
>
>  release_so_abi_rev = 1
>
>  # These are set by the distribution script
> -release_vc_rev = 'git:3756c97d295d06ac19cec6736e05003afb10623e'
> -release_datestamp = 20170404
> -release_type = 'released'
> +release_vc_rev = 'git:f7fe6beb5b3b6f944aa7bac491a3455e48ef6ebb'
> +release_datestamp = 20171002
> +release_type = 'release'
> diff -Nru botan1.10-1.10.16/configure.py botan1.10-1.10.17/configure.py
> --- botan1.10-1.10.16/configure.py      2017-04-05 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/configure.py      2017-10-02 06:00:00.000000000 +0000
> @@ -59,9 +59,6 @@
>          logging.debug('Monotone reported revision %s' % (rev))
>
>          return 'mtn:' + rev
> -    except OSError as e:
> -        logging.debug('Error getting rev from monotone - %s' % (e[1]))
> -        return 'unknown'
>      except Exception as e:
>          logging.debug('Error getting rev from monotone - %s' % (e))
>          return 'unknown'
> diff -Nru botan1.10-1.10.16/debian/changelog botan1.10-1.10.17/debian/
> changelog
> --- botan1.10-1.10.16/debian/changelog  2017-05-29 11:45:02.000000000
> +0000
> +++ botan1.10-1.10.17/debian/changelog  2017-10-09 09:19:15.000000000
> +0000
> @@ -1,3 +1,13 @@
> +botan1.10 (1.10.17-0.1) unstable; urgency=medium
> +
> +  * Non-maintainer upload.
> +  * New upstream release 1.10.17 (Closes: #877436)
> +    + [CVE-2017-14737]: Side channel affecting modular exponentiation
> +    + Upstream has imported Debian architecture support patches, removed
> +      them.
> +
> + -- Christian Hofstaedtler <[email protected]>  Mon, 09 Oct 2017 09:19:15
> +0000
> +
>  botan1.10 (1.10.16-1) unstable; urgency=high
>
>    * Update d/watch to match new upstream download directory
> diff -Nru 
> botan1.10-1.10.16/debian/patches/0001-add-mips64-mipsn32-support.patch
> botan1.10-1.10.17/debian/patches/0001-add-mips64-mipsn32-support.patch
> --- botan1.10-1.10.16/debian/patches/0001-add-mips64-mipsn32-support.patch
>     2017-05-29 11:45:02.000000000 +0000
> +++ botan1.10-1.10.17/debian/patches/0001-add-mips64-mipsn32-support.patch
>     1970-01-01 00:00:00.000000000 +0000
> @@ -1,64 +0,0 @@
> -From: =?utf-8?q?Ond=C5=99ej_Sur=C3=BD?= <[email protected]>
> -Date: Tue, 29 Nov 2016 15:10:20 +0100
> -Subject: add-mips64-mipsn32-support
> -
> ----
> - src/build-data/arch/mipsn32.txt | 22 ++++++++++++++++++++++
> - src/build-data/cc/clang.txt     |  2 ++
> - src/build-data/cc/gcc.txt       |  1 +
> - 3 files changed, 25 insertions(+)
> - create mode 100644 src/build-data/arch/mipsn32.txt
> -
> -diff --git a/src/build-data/arch/mipsn32.txt
> b/src/build-data/arch/mipsn32.txt
> -new file mode 100644
> -index 0000000..96ced25
> ---- /dev/null
> -+++ b/src/build-data/arch/mipsn32.txt
> -@@ -0,0 +1,22 @@
> -+<aliases>
> -+mipsn32el # For Debian
> -+</aliases>
> -+
> -+<submodels>
> -+r4000
> -+r4100
> -+r4300
> -+r4400
> -+r4600
> -+r4560
> -+r5000
> -+r8000
> -+r10000
> -+</submodels>
> -+
> -+<submodel_aliases>
> -+r4k -> r4000
> -+r5k -> r5000
> -+r8k -> r8000
> -+r10k -> r10000
> -+</submodel_aliases>
> -diff --git a/src/build-data/cc/clang.txt b/src/build-data/cc/clang.txt
> -index cbcfd89..23237e3 100644
> ---- a/src/build-data/cc/clang.txt
> -+++ b/src/build-data/cc/clang.txt
> -@@ -39,6 +39,8 @@ westmere  -> "-march=corei7 -maes"
> -
> - <mach_abi_linking>
> - x86_64  -> "-m64"
> -+mips32  -> "-mabi=32"
> -+mipsn32  -> "-mabi=n32"
> - mips64  -> "-mabi=64"
> - s390    -> "-m31"
> - s390x   -> "-m64"
> -diff --git a/src/build-data/cc/gcc.txt b/src/build-data/cc/gcc.txt
> -index 1fc6831..938c065 100644
> ---- a/src/build-data/cc/gcc.txt
> -+++ b/src/build-data/cc/gcc.txt
> -@@ -80,6 +80,7 @@ hppa      -> "-march=SUBMODEL" hppa
> - ia64      -> "-mtune=SUBMODEL"
> - m68k      -> "-mSUBMODEL"
> - mips32    -> "-mips1 -mcpu=SUBMODEL" mips32-
> -+mipsn32    -> "-mips3 -mcpu=SUBMODEL" mips64-
> - mips64    -> "-mips3 -mcpu=SUBMODEL" mips64-
> - ppc32     -> "-mcpu=SUBMODEL" ppc
> - ppc64     -> "-mcpu=SUBMODEL" ppc
> diff -Nru botan1.10-1.10.16/debian/patches/0002-add-powerpc64le-support.patch
> botan1.10-1.10.17/debian/patches/0002-add-powerpc64le-support.patch
> --- botan1.10-1.10.16/debian/patches/0002-add-powerpc64le-support.patch
> 2017-05-29 11:45:02.000000000 +0000
> +++ botan1.10-1.10.17/debian/patches/0002-add-powerpc64le-support.patch
> 1970-01-01 00:00:00.000000000 +0000
> @@ -1,109 +0,0 @@
> -From: =?utf-8?q?Ond=C5=99ej_Sur=C3=BD?= <[email protected]>
> -Date: Tue, 29 Nov 2016 15:10:20 +0100
> -Subject: add-powerpc64le-support
> -
> ----
> - src/build-data/arch/ppc64.txt   |  5 ++++-
> - src/build-data/arch/ppc64le.txt | 21 +++++++++++++++++++++
> - src/build-data/cc/gcc.txt       |  1 +
> - src/math/mp/mp_asm64/info.txt   |  1 +
> - src/utils/cpuid.cpp             |  6 ++++++
> - 5 files changed, 33 insertions(+), 1 deletion(-)
> - create mode 100644 src/build-data/arch/ppc64le.txt
> -
> -diff --git a/src/build-data/arch/ppc64.txt b/src/build-data/arch/ppc64.
> txt
> -index 954d918..f6f568e 100644
> ---- a/src/build-data/arch/ppc64.txt
> -+++ b/src/build-data/arch/ppc64.txt
> -@@ -17,6 +17,9 @@ power4
> - power5
> - power6
> - power7
> -+power7p
> -+power8
> -+power8e
> - cellppu
> - </submodels>
> -
> -@@ -25,5 +28,5 @@ cellbroadbandengine -> cellppu
> - </submodel_aliases>
> -
> - <isa_extn>
> --altivec:cellppu,ppc970,power6,power7
> -+altivec:cellppu,ppc970,power6,power7,power7p,power8,power8e
> - </isa_extn>
> -diff --git a/src/build-data/arch/ppc64le.txt
> b/src/build-data/arch/ppc64le.txt
> -new file mode 100644
> -index 0000000..da93668
> ---- /dev/null
> -+++ b/src/build-data/arch/ppc64le.txt
> -@@ -0,0 +1,21 @@
> -+endian little
> -+
> -+family ppc
> -+
> -+<aliases>
> -+powerpc64le
> -+ppc64el
> -+</aliases>
> -+
> -+<submodels>
> -+power7
> -+power7p
> -+power8
> -+power8e
> -+</submodels>
> -+
> -+# This should be enabled for all targets, but the Altivec code currently
> -+# makes lots of endian assumptions that I don't have the time to fix up:
> -+#<isa_extn>
> -+#altivec:all
> -+#</isa_extn>
> -diff --git a/src/build-data/cc/gcc.txt b/src/build-data/cc/gcc.txt
> -index 938c065..32e19c9 100644
> ---- a/src/build-data/cc/gcc.txt
> -+++ b/src/build-data/cc/gcc.txt
> -@@ -84,6 +84,7 @@ mipsn32    -> "-mips3 -mcpu=SUBMODEL" mips64-
> - mips64    -> "-mips3 -mcpu=SUBMODEL" mips64-
> - ppc32     -> "-mcpu=SUBMODEL" ppc
> - ppc64     -> "-mcpu=SUBMODEL" ppc
> -+ppc64le   -> "-mcpu=power7 -mtune=power8" ppc
> - sparc32   -> "-mcpu=SUBMODEL -Wa,-xarch=v8plus" sparc32-
> - sparc64   -> "-mcpu=v9 -mtune=SUBMODEL"
> - x86_32    -> "-march=SUBMODEL -momit-leaf-frame-pointer"
> -diff --git a/src/math/mp/mp_asm64/info.txt b/src/math/mp/mp_asm64/info.
> txt
> -index 9af7c4a..2704718 100644
> ---- a/src/math/mp/mp_asm64/info.txt
> -+++ b/src/math/mp/mp_asm64/info.txt
> -@@ -12,6 +12,7 @@ alpha
> - ia64
> - mips64
> - ppc64
> -+ppc64le
> - sparc64
> - </arch>
> -
> -diff --git a/src/utils/cpuid.cpp b/src/utils/cpuid.cpp
> -index f6581f0..eba5b18 100644
> ---- a/src/utils/cpuid.cpp
> -+++ b/src/utils/cpuid.cpp
> -@@ -157,6 +157,9 @@ bool altivec_check_pvr_emul()
> -    const u16bit PVR_G5_970GX = 0x0045;
> -    const u16bit PVR_POWER6   = 0x003E;
> -    const u16bit PVR_POWER7   = 0x003F;
> -+   const u16bit PVR_POWER7p  = 0x004A;
> -+   const u16bit PVR_POWER8   = 0x004D;
> -+   const u16bit PVR_POWER8E  = 0x004B;
> -    const u16bit PVR_CELL_PPU = 0x0070;
> -
> -    // Motorola produced G4s with PVR 0x800[0123C] (at least)
> -@@ -177,6 +180,9 @@ bool altivec_check_pvr_emul()
> -    altivec_capable |= (pvr == PVR_G5_970GX);
> -    altivec_capable |= (pvr == PVR_POWER6);
> -    altivec_capable |= (pvr == PVR_POWER7);
> -+   altivec_capable |= (pvr == PVR_POWER7p);
> -+   altivec_capable |= (pvr == PVR_POWER8);
> -+   altivec_capable |= (pvr == PVR_POWER8E);
> -    altivec_capable |= (pvr == PVR_CELL_PPU);
> - #endif
> -
> diff -Nru botan1.10-1.10.16/debian/patches/0003-add-arm64-support.patch.patch
> botan1.10-1.10.17/debian/patches/0003-add-arm64-support.patch.patch
> --- botan1.10-1.10.16/debian/patches/0003-add-arm64-support.patch.patch
> 2017-05-29 11:45:02.000000000 +0000
> +++ botan1.10-1.10.17/debian/patches/0003-add-arm64-support.patch.patch
> 1970-01-01 00:00:00.000000000 +0000
> @@ -1,47 +0,0 @@
> -From: =?utf-8?q?Ond=C5=99ej_Sur=C3=BD?= <[email protected]>
> -Date: Tue, 29 Nov 2016 15:10:20 +0100
> -Subject: add-arm64-support.patch
> -
> ----
> - src/build-data/arch/aarch64.txt | 6 ++++++
> - src/build-data/cc/gcc.txt       | 1 +
> - src/math/mp/mp_asm64/info.txt   | 1 +
> - 3 files changed, 8 insertions(+)
> - create mode 100644 src/build-data/arch/aarch64.txt
> -
> -diff --git a/src/build-data/arch/aarch64.txt
> b/src/build-data/arch/aarch64.txt
> -new file mode 100644
> -index 0000000..863b000
> ---- /dev/null
> -+++ b/src/build-data/arch/aarch64.txt
> -@@ -0,0 +1,6 @@
> -+endian little
> -+
> -+<aliases>
> -+arm64 # For Debian
> -+</aliases>
> -+
> -diff --git a/src/build-data/cc/gcc.txt b/src/build-data/cc/gcc.txt
> -index 32e19c9..db729b4 100644
> ---- a/src/build-data/cc/gcc.txt
> -+++ b/src/build-data/cc/gcc.txt
> -@@ -75,6 +75,7 @@ sh4         -> "-m4 -mieee"
> -
> - alpha     -> "-mcpu=SUBMODEL" alpha-
> - arm       -> "-march=SUBMODEL"
> -+aarch64   -> "-mtune=generic"
> - superh    -> "-mSUBMODEL" sh
> - hppa      -> "-march=SUBMODEL" hppa
> - ia64      -> "-mtune=SUBMODEL"
> -diff --git a/src/math/mp/mp_asm64/info.txt b/src/math/mp/mp_asm64/info.
> txt
> -index 2704718..2664740 100644
> ---- a/src/math/mp/mp_asm64/info.txt
> -+++ b/src/math/mp/mp_asm64/info.txt
> -@@ -8,6 +8,7 @@ mp_generic:mp_asmi.h
> - </header:internal>
> -
> - <arch>
> -+aarch64
> - alpha
> - ia64
> - mips64
> diff -Nru botan1.10-1.10.16/debian/patches/0004-add-or1k-support.patch
> botan1.10-1.10.17/debian/patches/0004-add-or1k-support.patch
> --- botan1.10-1.10.16/debian/patches/0004-add-or1k-support.patch
> 2017-05-29 11:45:02.000000000 +0000
> +++ botan1.10-1.10.17/debian/patches/0004-add-or1k-support.patch
> 1970-01-01 00:00:00.000000000 +0000
> @@ -1,19 +0,0 @@
> -From: =?utf-8?q?Ond=C5=99ej_Sur=C3=BD?= <[email protected]>
> -Date: Tue, 29 Nov 2016 15:10:20 +0100
> -Subject: add-or1k-support
> -
> ----
> - src/build-data/arch/or1k.txt | 4 ++++
> - 1 file changed, 4 insertions(+)
> - create mode 100644 src/build-data/arch/or1k.txt
> -
> -diff --git a/src/build-data/arch/or1k.txt b/src/build-data/arch/or1k.txt
> -new file mode 100644
> -index 0000000..c5fdc32
> ---- /dev/null
> -+++ b/src/build-data/arch/or1k.txt
> -@@ -0,0 +1,4 @@
> -+endian big
> -+<submodels>
> -+or1k
> -+</submodels>
> diff -Nru botan1.10-1.10.16/debian/patches/series
> botan1.10-1.10.17/debian/patches/series
> --- botan1.10-1.10.16/debian/patches/series     2017-05-29
> 11:45:02.000000000 +0000
> +++ botan1.10-1.10.17/debian/patches/series     1970-01-01
> 00:00:00.000000000 +0000
> @@ -1,4 +0,0 @@
> -0001-add-mips64-mipsn32-support.patch
> -0002-add-powerpc64le-support.patch
> -0003-add-arm64-support.patch.patch
> -0004-add-or1k-support.patch
> diff -Nru botan1.10-1.10.16/doc/log.txt botan1.10-1.10.17/doc/log.txt
> --- botan1.10-1.10.16/doc/log.txt       2017-04-05 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/doc/log.txt       2017-10-02 06:00:00.000000000 +0000
> @@ -7,6 +7,36 @@
>  Series 1.10
>  ----------------------------------------
>
> +Version 1.10.17, 1.10.17
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +* Address a side channel affecting modular exponentiation. An attacker
> +  capabable of a local or cross-VM cache analysis attack may be able
> +  to recover bits of secret exponents as used in RSA, DH, etc.
> +  CVE-2017-14737
> +
> +* Workaround a miscompilation bug in GCC 7 on x86-32 affecting GOST-34.11
> +  hash function. (GH #1192 #1148 #882)
> +
> +* Add SecureVector::data() function which returns the start of the
> +  buffer. This makes it slightly simpler to support both 1.10 and 2.x
> +  APIs in the same codebase.
> +
> +* When compiled by a C++11 (or later) compiler, a template typedef of
> +  SecureVector, secure_vector, is added. In 2.x this class is a
> +  std::vector with a custom allocator, so has a somewhat different
> +  interface than SecureVector in 1.10. But this makes it slightly
> +  simpler to support both 1.10 and 2.x APIs in the same codebase.
> +
> +* Fix a bug that prevented `configure.py` from running under Python3
> +
> +* Botan 1.10.x does not support the OpenSSL 1.1 API. Now the build
> +  will `#error` if OpenSSL 1.1 is detected. Avoid `--with-openssl`
> +  if compiling against 1.1 or later. (GH #753)
> +
> +* Import patches from Debian adding basic support for building on
> +  aarch64, ppc64le, or1k, and mipsn32 platforms.
> +
>  Version 1.10.16, 2017-04-04
>  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> diff -Nru botan1.10-1.10.16/readme.txt botan1.10-1.10.17/readme.txt
> --- botan1.10-1.10.16/readme.txt        2017-04-05 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/readme.txt        2017-10-02 06:00:00.000000000 +0000
> @@ -1,6 +1,6 @@
>
>  This branch (1.10) of Botan is only supported for security fixes until
> -the end of 2017. Please upgrade to 2.0 API as soon as possible.
> +the end of 2017. Please upgrade to 2.x as soon as possible.
>
>
>  Botan is a C++ library for performing a wide variety of cryptographic
> diff -Nru botan1.10-1.10.16/src/alloc/secmem.h
> botan1.10-1.10.17/src/alloc/secmem.h
> --- botan1.10-1.10.16/src/alloc/secmem.h        2017-04-05
> 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/alloc/secmem.h        2017-10-02
> 06:00:00.000000000 +0000
> @@ -50,6 +50,12 @@
>        * Get a pointer to the first element in the buffer.
>        * @return pointer to the first element in the buffer
>        */
> +      T* data() { return buf; }
> +
> +      /**
> +      * Get a pointer to the first element in the buffer.
> +      * @return pointer to the first element in the buffer
> +      */
>        T* begin() { return buf; }
>
>        /**
> @@ -369,6 +375,13 @@
>           }
>     };
>
> +#if __cplusplus >= 201103
> +
> +// For better compatability with 2.x API
> +  template<typename T>
> +  using secure_vector = SecureVector<T>;
> +#endif
> +
>  template<typename T>
>  MemoryRegion<T>& operator+=(MemoryRegion<T>& out,
>                              const MemoryRegion<T>& in)
> diff -Nru botan1.10-1.10.16/src/build-data/arch/aarch64.txt
> botan1.10-1.10.17/src/build-data/arch/aarch64.txt
> --- botan1.10-1.10.16/src/build-data/arch/aarch64.txt   1970-01-01
> 00:00:00.000000000 +0000
> +++ botan1.10-1.10.17/src/build-data/arch/aarch64.txt   2017-10-02
> 06:00:00.000000000 +0000
> @@ -0,0 +1,6 @@
> +endian little
> +
> +<aliases>
> +arm64 # For Debian
> +</aliases>
> +
> diff -Nru botan1.10-1.10.16/src/build-data/arch/mipsn32.txt
> botan1.10-1.10.17/src/build-data/arch/mipsn32.txt
> --- botan1.10-1.10.16/src/build-data/arch/mipsn32.txt   1970-01-01
> 00:00:00.000000000 +0000
> +++ botan1.10-1.10.17/src/build-data/arch/mipsn32.txt   2017-10-02
> 06:00:00.000000000 +0000
> @@ -0,0 +1,22 @@
> +<aliases>
> +mipsn32el # For Debian
> +</aliases>
> +
> +<submodels>
> +r4000
> +r4100
> +r4300
> +r4400
> +r4600
> +r4560
> +r5000
> +r8000
> +r10000
> +</submodels>
> +
> +<submodel_aliases>
> +r4k -> r4000
> +r5k -> r5000
> +r8k -> r8000
> +r10k -> r10000
> +</submodel_aliases>
> diff -Nru botan1.10-1.10.16/src/build-data/arch/or1k.txt
> botan1.10-1.10.17/src/build-data/arch/or1k.txt
> --- botan1.10-1.10.16/src/build-data/arch/or1k.txt      1970-01-01
> 00:00:00.000000000 +0000
> +++ botan1.10-1.10.17/src/build-data/arch/or1k.txt      2017-10-02
> 06:00:00.000000000 +0000
> @@ -0,0 +1,4 @@
> +endian big
> +<submodels>
> +or1k
> +</submodels>
> diff -Nru botan1.10-1.10.16/src/build-data/arch/ppc64le.txt
> botan1.10-1.10.17/src/build-data/arch/ppc64le.txt
> --- botan1.10-1.10.16/src/build-data/arch/ppc64le.txt   1970-01-01
> 00:00:00.000000000 +0000
> +++ botan1.10-1.10.17/src/build-data/arch/ppc64le.txt   2017-10-02
> 06:00:00.000000000 +0000
> @@ -0,0 +1,21 @@
> +endian little
> +
> +family ppc
> +
> +<aliases>
> +powerpc64le
> +ppc64el
> +</aliases>
> +
> +<submodels>
> +power7
> +power7p
> +power8
> +power8e
> +</submodels>
> +
> +# This should be enabled for all targets, but the Altivec code currently
> +# makes lots of endian assumptions that I don't have the time to fix up:
> +#<isa_extn>
> +#altivec:all
> +#</isa_extn>
> diff -Nru botan1.10-1.10.16/src/build-data/arch/ppc64.txt
> botan1.10-1.10.17/src/build-data/arch/ppc64.txt
> --- botan1.10-1.10.16/src/build-data/arch/ppc64.txt     2017-04-05
> 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/build-data/arch/ppc64.txt     2017-10-02
> 06:00:00.000000000 +0000
> @@ -17,6 +17,9 @@
>  power5
>  power6
>  power7
> +power7p
> +power8
> +power8e
>  cellppu
>  </submodels>
>
> @@ -25,5 +28,5 @@
>  </submodel_aliases>
>
>  <isa_extn>
> -altivec:cellppu,ppc970,power6,power7
> +altivec:cellppu,ppc970,power6,power7,power7p,power8,power8e
>  </isa_extn>
> diff -Nru botan1.10-1.10.16/src/build-data/cc/clang.txt
> botan1.10-1.10.17/src/build-data/cc/clang.txt
> --- botan1.10-1.10.16/src/build-data/cc/clang.txt       2017-04-05
> 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/build-data/cc/clang.txt       2017-10-02
> 06:00:00.000000000 +0000
> @@ -39,6 +39,8 @@
>
>  <mach_abi_linking>
>  x86_64  -> "-m64"
> +mips32  -> "-mabi=32"
> +mipsn32  -> "-mabi=n32"
>  mips64  -> "-mabi=64"
>  s390    -> "-m31"
>  s390x   -> "-m64"
> diff -Nru botan1.10-1.10.16/src/build-data/cc/gcc.txt
> botan1.10-1.10.17/src/build-data/cc/gcc.txt
> --- botan1.10-1.10.16/src/build-data/cc/gcc.txt 2017-04-05
> 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/build-data/cc/gcc.txt 2017-10-02
> 06:00:00.000000000 +0000
> @@ -75,14 +75,17 @@
>
>  alpha     -> "-mcpu=SUBMODEL" alpha-
>  arm       -> "-march=SUBMODEL"
> +aarch64   -> "-mtune=generic"
>  superh    -> "-mSUBMODEL" sh
>  hppa      -> "-march=SUBMODEL" hppa
>  ia64      -> "-mtune=SUBMODEL"
>  m68k      -> "-mSUBMODEL"
>  mips32    -> "-mips1 -mcpu=SUBMODEL" mips32-
> +mipsn32    -> "-mips3 -mcpu=SUBMODEL" mips64-
>  mips64    -> "-mips3 -mcpu=SUBMODEL" mips64-
>  ppc32     -> "-mcpu=SUBMODEL" ppc
>  ppc64     -> "-mcpu=SUBMODEL" ppc
> +ppc64le   -> "-mcpu=power7 -mtune=power8" ppc
>  sparc32   -> "-mcpu=SUBMODEL -Wa,-xarch=v8plus" sparc32-
>  sparc64   -> "-mcpu=v9 -mtune=SUBMODEL"
>  x86_32    -> "-march=SUBMODEL -momit-leaf-frame-pointer"
> @@ -98,6 +101,7 @@
>  sparc32 -> "-m32 -mno-app-regs"
>  sparc64 -> "-m64 -mno-app-regs"
>  ppc64   -> "-m64"
> +ppc64le -> "-m64"
>
>  # This should probably be used on most/all targets, but the docs are
> unclear
>  openbsd   -> "-pthread"
> diff -Nru botan1.10-1.10.16/src/engine/openssl/ossl_bc.cpp
> botan1.10-1.10.17/src/engine/openssl/ossl_bc.cpp
> --- botan1.10-1.10.16/src/engine/openssl/ossl_bc.cpp    2017-04-05
> 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/engine/openssl/ossl_bc.cpp    2017-10-02
> 06:00:00.000000000 +0000
> @@ -8,6 +8,10 @@
>  #include <botan/internal/openssl_engine.h>
>  #include <openssl/evp.h>
>
> +#if OPENSSL_VERSION_NUMBER >= 0x10100000
> +  #error "OpenSSL 1.1 API not supported in Botan 1.10, upgrade to 2.x"
> +#endif
> +
>  namespace Botan {
>
>  namespace {
> diff -Nru botan1.10-1.10.16/src/engine/openssl/ossl_md.cpp
> botan1.10-1.10.17/src/engine/openssl/ossl_md.cpp
> --- botan1.10-1.10.16/src/engine/openssl/ossl_md.cpp    2017-04-05
> 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/engine/openssl/ossl_md.cpp    2017-10-02
> 06:00:00.000000000 +0000
> @@ -8,6 +8,10 @@
>  #include <botan/internal/openssl_engine.h>
>  #include <openssl/evp.h>
>
> +#if OPENSSL_VERSION_NUMBER >= 0x10100000
> +  #error "OpenSSL 1.1 API not supported in Botan 1.10, upgrade to 2.x"
> +#endif
> +
>  namespace Botan {
>
>  namespace {
> diff -Nru botan1.10-1.10.16/src/hash/gost_3411/gost_3411.cpp
> botan1.10-1.10.17/src/hash/gost_3411/gost_3411.cpp
> --- botan1.10-1.10.16/src/hash/gost_3411/gost_3411.cpp  2017-04-05
> 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/hash/gost_3411/gost_3411.cpp  2017-10-02
> 06:00:00.000000000 +0000
> @@ -90,8 +90,11 @@
>
>           // P transformation
>           for(size_t k = 0; k != 4; ++k)
> +            {
> +            const uint64_t UVk = U[k] ^ V[k];
>              for(size_t l = 0; l != 8; ++l)
> -               key[4*l+k] = get_byte(l, U[k]) ^ get_byte(l, V[k]);
> +               key[4*l+k] = get_byte(l, UVk);
> +            }
>
>           cipher.set_key(key, 32);
>           cipher.encrypt(&hash[8*j], S + 8*j);
> diff -Nru botan1.10-1.10.16/src/math/bigint/bigint.cpp
> botan1.10-1.10.17/src/math/bigint/bigint.cpp
> --- botan1.10-1.10.16/src/math/bigint/bigint.cpp        2017-04-05
> 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/math/bigint/bigint.cpp        2017-10-02
> 06:00:00.000000000 +0000
> @@ -10,6 +10,7 @@
>  #include <botan/get_byte.h>
>  #include <botan/parsing.h>
>  #include <botan/internal/rounding.h>
> +#include <botan/internal/ct_utils.h>
>
>  namespace Botan {
>
> @@ -373,4 +374,25 @@
>     binary_decode(buf, buf.size());
>     }
>
> +void BigInt::shrink_to_fit()
> +   {
> +   reg.resize(sig_words());
> +   }
> +
> +void BigInt::const_time_lookup(SecureVector<word>& output,
> +                               const std::vector<BigInt>& vec,
> +                               size_t idx)
> +   {
> +   const size_t words = output.size();
> +
> +   clear_mem(output.data(), output.size());
> +
> +   for(size_t i = 0; i != vec.size(); ++i)
> +      {
> +      for(size_t w = 0; w != words; ++w)
> +         output[w] |= CT::select<word>(CT::is_equal(i, idx),
> vec[i].word_at(w), 0);
> +      }
> +   }
> +
> +
>  }
> diff -Nru botan1.10-1.10.16/src/math/bigint/bigint.h
> botan1.10-1.10.17/src/math/bigint/bigint.h
> --- botan1.10-1.10.16/src/math/bigint/bigint.h  2017-04-05
> 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/math/bigint/bigint.h  2017-10-02
> 06:00:00.000000000 +0000
> @@ -500,6 +500,12 @@
>       */
>       BigInt(NumberType type, size_t n);
>
> +     void shrink_to_fit();
> +
> +     static void const_time_lookup(SecureVector<word>& output,
> +                                   const std::vector<BigInt>& vec,
> +                                   size_t idx);
> +
>     private:
>        SecureVector<word> reg;
>        Sign signedness;
> diff -Nru botan1.10-1.10.16/src/math/mp/mp_asm64/info.txt
> botan1.10-1.10.17/src/math/mp/mp_asm64/info.txt
> --- botan1.10-1.10.16/src/math/mp/mp_asm64/info.txt     2017-04-05
> 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/math/mp/mp_asm64/info.txt     2017-10-02
> 06:00:00.000000000 +0000
> @@ -8,10 +8,12 @@
>  </header:internal>
>
>  <arch>
> +aarch64
>  alpha
>  ia64
>  mips64
>  ppc64
> +ppc64le
>  sparc64
>  </arch>
>
> diff -Nru botan1.10-1.10.16/src/math/numbertheory/powm_mnt.cpp
> botan1.10-1.10.17/src/math/numbertheory/powm_mnt.cpp
> --- botan1.10-1.10.16/src/math/numbertheory/powm_mnt.cpp
> 2017-04-05 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/math/numbertheory/powm_mnt.cpp
> 2017-10-02 06:00:00.000000000 +0000
> @@ -68,6 +68,7 @@
>                         &workspace[0]);
>
>        g[i].assign(&z[0], mod_words + 1);
> +      g[i].grow_to(mod_words);
>        }
>     }
>
> @@ -81,6 +82,7 @@
>     BigInt x = R_mod;
>     SecureVector<word> z(2 * (mod_words + 1));
>     SecureVector<word> workspace(2 * (mod_words + 1));
> +   SecureVector<word> e(mod_words);
>
>     for(size_t i = exp_nibbles; i > 0; --i)
>        {
> @@ -98,12 +100,13 @@
>
>        const u32bit nibble = exp.get_substring(window_bits*(i-1),
> window_bits);
>
> -      const BigInt& y = g[nibble];
> -
>        zeroise(z);
> +
> +      BigInt::const_time_lookup(e, g, nibble);
> +
>        bigint_monty_mul(&z[0], z.size(),
>                         x.data(), x.size(), x.sig_words(),
> -                       y.data(), y.size(), y.sig_words(),
> +                       e.data(), e.size(), e.size(),
>                         modulus.data(), mod_words, mod_prime,
>                         &workspace[0]);
>
> diff -Nru botan1.10-1.10.16/src/utils/cpuid.cpp
> botan1.10-1.10.17/src/utils/cpuid.cpp
> --- botan1.10-1.10.16/src/utils/cpuid.cpp       2017-04-05
> 01:06:45.000000000 +0000
> +++ botan1.10-1.10.17/src/utils/cpuid.cpp       2017-10-02
> 06:00:00.000000000 +0000
> @@ -157,6 +157,9 @@
>     const u16bit PVR_G5_970GX = 0x0045;
>     const u16bit PVR_POWER6   = 0x003E;
>     const u16bit PVR_POWER7   = 0x003F;
> +   const u16bit PVR_POWER7p  = 0x004A;
> +   const u16bit PVR_POWER8   = 0x004D;
> +   const u16bit PVR_POWER8E  = 0x004B;
>     const u16bit PVR_CELL_PPU = 0x0070;
>
>     // Motorola produced G4s with PVR 0x800[0123C] (at least)
> @@ -177,6 +180,9 @@
>     altivec_capable |= (pvr == PVR_G5_970GX);
>     altivec_capable |= (pvr == PVR_POWER6);
>     altivec_capable |= (pvr == PVR_POWER7);
> +   altivec_capable |= (pvr == PVR_POWER7p);
> +   altivec_capable |= (pvr == PVR_POWER8);
> +   altivec_capable |= (pvr == PVR_POWER8E);
>     altivec_capable |= (pvr == PVR_CELL_PPU);
>  #endif
>
>


-- 
Ondřej Surý <[email protected]>

Reply via email to