# # spec file for package Botan (Version 1.6.4) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild %define lib_pkg_name libbotan-1_6_4 Name: Botan Version: 1.6.4 Release: 4 %define ONLY_BASE_MODS 0 ################################################## # Hardware restrictions on various modules # ################################################## %define USE_TM_HARD i586 i686 athlon x86_64 ppc ppc64 alpha sparcv9 sparc64 %define MP64_ARCH alpha ppc64 ia64 sparc64 ################################################## # Module settings # ################################################## %define BASE_MODS alloc_mmap,ml_unix,es_egd,es_ftw,es_unix,fd_unix,tm_unix %define EXTRA_MODS comp_bzip2,comp_zlib,mux_pthr,tm_posix,eng_gmp %ifarch %{USE_TM_HARD} %{expand: %%define EXTRA_MODS %{EXTRA_MODS},tm_hard} %endif %ifarch %{USE_MP64} %{expand: %%define EXTRA_MODS %{EXTRA_MODS},mp_asm64} %endif %ifarch x86 %{expand: %%define EXTRA_MODS %{EXTRA_MODS},mp_ia32,alg_ia32} %endif %ifarch x86_64 %{expand: %%define EXTRA_MODS %{EXTRA_MODS},mp_amd64,alg_amd64} %endif %if %{ONLY_BASE_MODS} %define MODULES %{BASE_MODS} %else %define MODULES %{BASE_MODS},%{EXTRA_MODS} %endif Url: http://botan.randombit.net Summary: A C++ Crypto Library License: BSD 3-Clause AutoReqProv: on Prefix: /usr Group: Development/Libraries/C and C++ Source: %{name}-%{version}.tar.bz2 Patch0: Botan-inttypes.patch Patch1: Botan-ull_constants.patch.bz2 Patch2: Botan-no_fpermissive.patch Patch3: Botan-no_cpu_tuning.patch Patch4: Botan-no_executable_stack.patch Patch5: Botan-missing_sentinel.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %if ! %{ONLY_BASE_MODS} Requires: zlib, bzip2 >= 1.0.2, gmp >= 4.1 BuildRequires: bzip2 >= 1.0.2 gmp-devel >= 4.1 zlib-devel BuildRequires: gcc-c++ gmp-devel libbz2-devel %endif %description Botan is a C++ library that provides support for many common cryptographic operations, including encryption, authentication, and X.509v3 certificates and CRLs. A wide variety of algorithms is supported, including RSA, DSA, DES, AES, MD5, and SHA-1. Authors: -------- Jack Lloyd %package -n libbotan-1_6_4 License: BSD 3-Clause Summary: A C++ Crypto Library Group: Development/Libraries/C and C++ #Rename done for openSUSE 11.0 Provides: Botan = %{version} Obsoletes: Botan < %{version} %description -n libbotan-1_6_4 Botan is a C++ library that provides support for many common cryptographic operations, including encryption, authentication, and X.509v3 certificates and CRLs. A wide variety of algorithms is supported, including RSA, DSA, DES, AES, MD5, and SHA-1. Authors: -------- Jack Lloyd %package -n libbotan-devel License: BSD 3-Clause Summary: Development files for Botan Group: Development/Libraries/C and C++ Requires: libbotan-1_6_4 = %{version} Requires: gmp-devel libbz2-devel Provides: Botan-devel = %{version} Obsoletes: Botan-devel < %{version} %description -n libbotan-devel This package contains the header files and libraries needed to develop programs that use the Botan library. Authors: -------- Name: Jack Lloyd %prep %setup -q %patch0 %patch1 %patch2 %patch3 %patch4 %patch5 %build %define botan_docdir %{_defaultdocdir}/%{name} %define common_config_flags --libdir=%{_lib} --noauto --modules=%{MODULES} %ifarch %arm ./configure.pl %{common_config_flags} gcc-%{_target_os}-arm3 %else ./configure.pl %{common_config_flags} gcc-%{_target_os}-%{_target_cpu} %endif make LANG_FLAGS+="%{optflags}" DOCDIR=%{_defaultdocdir}/%{name} shared static %install make DOCDIR=%{buildroot}/%{botan_docdir} OWNER=$(id -u) GROUP=$(id -g) INSTALLROOT="%{buildroot}%{prefix}" install rm -rf %{buildroot}/usr/share/doc/Botan-1.6.1 rm -f %{buildroot}/%{botan_docdir}/fips140.tex %clean rm -rf %{buildroot} %post -n libbotan-1_6_4 -p /sbin/ldconfig %postun -n libbotan-1_6_4 -p /sbin/ldconfig %files -n libbotan-1_6_4 %defattr(-,root,root) %docdir %{botan_docdir} %{botan_docdir}/license.txt %{botan_docdir}/readme.txt %{botan_docdir}/log.txt %{botan_docdir}/thanks.txt %{botan_docdir}/credits.txt %{botan_docdir}/pgpkeys.asc %{botan_docdir}/info.txt %{_libdir}/libbotan-*.so %files -n libbotan-devel %defattr(-,root,root) %docdir %{botan_docdir} %dir %{botan_docdir} %{botan_docdir}/api.pdf %{botan_docdir}/api.tex %{botan_docdir}/tutorial.pdf %{botan_docdir}/tutorial.tex %{botan_docdir}/todo.txt %{_libdir}/libbotan.so %{_libdir}/libbotan.a %{_includedir}/botan/ %{_bindir}/botan-config %changelog * Mon Apr 07 2008 pth@suse.de - No macros for package name. * Thu Apr 03 2008 pth@suse.de - Update to 1.6.4. While the included fix is uninteresting for Linux, it makes it easier to rename the package once again to its old name: * Fix a compilation problem with Visual Studio C++ 2003 * Fri Aug 03 2007 dmueller@suse.de - update to 1.6.3: * fixes various multithreading issues * Thu Jun 21 2007 dmueller@suse.de - update to 1.6.2: * Remove a call to abort() that crept into production * Mon Apr 23 2007 dmueller@suse.de - fix -devel package requires * Sat Mar 24 2007 aj@suse.de - Add libbz2-devel to BuildRequires. * Fri Mar 09 2007 pth@suse.de - Update to 1.6.1. Changes since 1.4.10: * Compilation fixes for the bzip2, zlib, and GNU MP modules * Better support for Intel C++ and EKOpath C++ on x86-64 * Cleanups in the initialization routines * Add some x86-64 assembly for multiply-add * Fix problems generating very small (below 384 bit) RSA keys * More improvements to the Python bindings * Removed the Algorithm base class * Various cleanups in the public key inheritance hierarchy * Added x86 assembler implementations of Serpent and low-level MPI code * Optimizations for the SHA-1 x86 assembler * Various improvements to the Python wrappers * Add x86 assembler versions of MD4, MD5, and SHA-1 * Expand InitializerOptions' language to support on/off switches * Fix possible resource leaks in the mmap allocator * Slightly optimized buffering in MDx_HashFunction * Initialization failures are dealt with somewhat better * Add an example implementing Pollard's Rho algorithm * Expand the xor_ciph example to support longer keys * Fixed bitrot in the AEP engine * Fix support for marking certificate/CRL extensions as critical * Significant cleanups in the library state / initialization code * LibraryInitializer takes an explicit InitializerOptions object * Make Mutex_Factory an abstract class, add Default_Mutex_Factory * Change configuration access to using global_state() * Add support for global named mutexes throughout the library * Add some STL wrappers for the delete operator * Change how certificates are created to be more flexible and general * Many internal cleanups to the X.509 cert/CRL code * Allow for application code to support new X.509 extensions * Change the return type of X509_Certificate::{subject,issuer}_info * Allow for alternate character set handling mechanisms * Fix a bug that was slowing squaring performance somewhat * Fix a very hard to hit overflow bug in the C version of word3_muladd * Minor cleanups to the assembler modules * Further, major changes to the BER/DER coding system * Updated the Qt mutex module to use Mutex_Factory * Moved the library global state object into an anonymous namespace * The low-level DER/BER coding system was redesigned and rewritten * Portions of the certificate code were cleaned up internally * Use macros to substantially clean up the GCC assembly code * Some slight cleanups in X509_PublicKey::key_id * Fixed a potential infinite loop in the memory pool code (Matt Johnston) * Made Pooling_Allocator::Memory_Block an actual class of sorts * Some small optimizations to the division and modulo computations * Cleaned up the implementation of some of the BigInt operators * Reduced use of dynamic memory allocation in low-level BigInt functions * A few simplifications in the Randpool mixing function * Removed power(), as it was not particularly useful (or fast) * Fixed some annoying bugs in the benchmark code * Added a real credits file * Integrated x86 and amd64 assembly code, contributed by Luca Piccarreta * Fixed a memory access off-by-one in the Karatsuba code * Changed Pooling_Allocator's free list search to a log(N) algorithm * Merged ModularReducer with its only subclass, Barrett_Reducer * Fixed sign-handling bugs in some of the division and modulo code * Renamed the module description files to modinfo.txt * Further cleanups in the initialization code * Removed BigInt::add and BigInt::sub * Merged all the division-related functions into just divide() * Modified the functions to allow for better optimizations * Made the number of bits polled from an EntropySource user configurable * Avoid including in * Removed some dead code from bigint_modop * Fix the definition of same_mem * Many optimizations in the low-level multiple precision integer code * Added hooks for assembly implementations of the MPI code * Support for the X.509 issuer alternative name extension in new certs * Fixed a bug in the decompression modules; found and patched by Matt Johnston * mem_pool.cpp was using std::set iterators instead of std::multiset ones * Fixed a bug in X509_CA preventing users from disabling particular extensions * Fixed the mp_asm64 module, which was entirely broken in 1.5.2 * Fixed an off-by-one memory read in MISTY1::key() * Fixed a nasty memory leak in Output_Buffers::retire() * Reimplemented the memory allocator from scratch * Improved memory caching in Montgomery exponentiation * Optimizations for multiple precision addition and subtraction * Fixed a build problem in the hardware timer module on 64-bit PowerPC * Changed default Karatsuba cutoff to 12 words (was 14) * Removed MemoryRegion::bits(), which was unused and incorrect * Changed maximum HMAC keylength to 1024 bits * Various minor Makefile and build system changes * Avoid using std::min in to bypass Windows libc macro pollution * Switched checks/clock.cpp back to using clock() by default * Removed the Default_Mutex's unused clone() member function * Implemented Montgomery exponentiation * Implemented generalized Karatsuba multiplication and squaring * Implemented Comba squaring for 4, 6, and 8 word inputs * Added new Modular_Exponentiator and Power_Mod classes * Removed FixedBase_Exp and FixedExponent_Exp * Fixed a performance regression in get_allocator * Engines can now offer S2K algorithms and block cipher padding methods * Merged the remaining global 'algolist' code into Default_Engine * The low-level MPI code is linked as C again * Replaced BigInt's get_nibble with the more general get_substring * Moved all global/shared library state into a single object * Mutex objects are created through mutex factories instead of a global * Removed ::get_mutex(), ::initialize_mutex(), and Mutex::clone() * Removed the RNG_Quality enum entirely * There is now only a single global-use PRNG * Removed the no_aliases and no_oids options for LibraryInitializer * Removed the deprecated algorithms SEAL, ISAAC, and HAVAL * Fixed an off-by-one memory read in MISTY1::key() * Fixed a nasty memory leak in Output_Buffers::retire() * Changed maximum HMAC keylength to 1024 bits * Changed Whirlpool diffusion matrix to match updated algorithm spec * Added a constructor to DataSource_Memory taking a std::string * Placing the same Filter in multiple Pipes triggers an exception * The configure script accepts --docdir and --libdir * Merged doc/rngs.txt into the main API document * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Sat Jan 14 2006 kukuk@suse.de - Add gmp-devel to nfb * Mon Dec 19 2005 pth@suse.de - Update to 1.4.10 - Bunch of cleanups and bugfixes added - Add KASUMI, the block cipher used in 3G phones - Binary file I/O can now be used with the data sink and source classes. - Pipe has been refactored - A possible memory leak in the OpenSSL engine was also fixed. - Randpool has been modified to use HMAC instead of a plain hash as its mixing operation. * Wed Nov 23 2005 pth@suse.de - Update to 1.4.9 - new algorithms including MARS, SEED, Turing, and FORK-256. - include optimizations for RC6 and Twofish - much better support for 64-bit PowerPC - support for high resolution hardware timers on most PowerPC systems * Tue Nov 15 2005 uli@suse.de - fixed to build on ARM * Thu Sep 15 2005 pth@suse.de - Initial package - Use ISO C99 stdint.h to define integer types. - Mark 64 bit hex constants as ULL to shut up the compiler.