File openssl.spec of Package openssl-0.9.8k

# spec file for package openssl (Version 0.9.8k)
# 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

# norootforbuild

Name:           openssl
BuildRequires:  bc ed zlib-devel
%define ssletcdir %{_sysconfdir}/ssl
%define num_version %(echo "%{version}" | sed -e "s+[a-zA-Z]++g; s+_.*++g")
License:        BSD 3-Clause
Group:          Productivity/Networking/Security
Provides:       ssl
AutoReqProv:    on
# bug437293
%ifarch ppc64
Obsoletes:      openssl-64bit
Version:        0.9.8k
Release:        32
Summary:        Secure Sockets and Transport Layer Security
Source:         http://www.%{name}.org/source/%{name}-%{version}.tar.bz2
Source10:       README.SuSE
Patch0:         openssl-0.9.8-sparc.dif
Patch1:         openssl-0.9.8-flags-priority.dif
Patch2:         non-exec-stack.diff
Patch3:         openssl-0.9.7f-ppc64.diff
Patch4:         openssl-hppa-config.diff
Patch5:         openssl-0.9.6g-alpha.diff
#Patch10:      openssl-0.9.7d-ICA_engine-jun142004.patch.bz2
Patch7:         bswap.diff
Patch8:         func-parm-err.patch
%ifarch s390x
Patch9:         disable-optimization-for-s390x.diff
#Patch10:        openssl-CVE-2008-5077.patch
#Patch11:        openssl-CVE-2009-0590.patch
#Patch12:        openssl-CVE-2009-0591.patch
#Patch13:        openssl-CVE-2009-0789.patch
#Patch14:        openssl-CVE-2009-1377.patch
#Patch15:        openssl-CVE-2009-1378.patch
#Patch16:        openssl-CVE-2009-1379.patch
#Patch17:        openssl-CVE-2009-1386.patch
#Patch18:        openssl-CVE-2009-1387.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

The OpenSSL Project is a collaborative effort to develop a robust,
commercial-grade, full-featured, and open source toolkit implementing
the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
v1) protocols with full-strength cryptography. The project is managed
by a worldwide community of volunteers that use the Internet to
communicate, plan, and develop the OpenSSL toolkit and its related

Derivation and License

OpenSSL is based on the excellent SSLeay library developed by Eric A.
Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
Apache-style license, which basically means that you are free to get it
and to use it for commercial and noncommercial purposes.

    Mark J. Cox <>
    Ralf S. Engelschall <>
    Dr. Stephen Henson <>
    Ben Laurie <>
    Bodo Moeller <>
    Ulf Moeller <>
    Holger Reif <>
    Paul C. Sutton <>

%package -n libopenssl0_9_8
License:        BSD 3-Clause
Summary:        Secure Sockets and Transport Layer Security
Group:          Productivity/Networking/Security
Recommends:     openssl-certs
# bug437293
%ifarch ppc64
Obsoletes:      openssl-64bit

%description -n libopenssl0_9_8
The OpenSSL Project is a collaborative effort to develop a robust,
commercial-grade, full-featured, and open source toolkit implementing
the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS
v1) protocols with full-strength cryptography. The project is managed
by a worldwide community of volunteers that use the Internet to
communicate, plan, and develop the OpenSSL toolkit and its related

Derivation and License

OpenSSL is based on the excellent SSLeay library developed by Eric A.
Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an
Apache-style license, which basically means that you are free to get it
and to use it for commercial and noncommercial purposes.

    Mark J. Cox <>
    Ralf S. Engelschall <>
    Dr. Stephen Henson <>
    Ben Laurie <>
    Bodo Moeller <>
    Ulf Moeller <>
    Holger Reif <>
    Paul C. Sutton <>

%package -n libopenssl-devel
License:        BSD 3-Clause
Summary:        Include Files and Libraries mandatory for Development
Group:          Development/Libraries/C and C++
# openssl-devel last used in openSUSE 10.2
Obsoletes:      openssl-devel <= 0.9.8e-8
Requires:       libopenssl0_9_8 = %{version} zlib-devel
Provides:       openssl-devel = 0.9.8e-8
# bug437293
%ifarch ppc64
Obsoletes:      openssl-devel-64bit

%description -n libopenssl-devel
This package contains all necessary include files and libraries needed
to develop applications that require these.

    Mark J. Cox <>
    Ralf S. Engelschall <>
    Dr. Stephen <Henson>
    Ben Laurie <>
    Bodo Moeller <>
    Ulf Moeller <>
    Holger Reif <>
    Paul C. Sutton <>

%package doc
License:        BSD 3-Clause
Summary:        Additional Package Documentation
Group:          Productivity/Networking/Security

%description doc
This package contains optional documentation provided in addition to
this package's base documentation.

    Mark J. Cox <>
    Ralf S. Engelschall <>
    Dr. Stephen <Henson>
    Ben Laurie <>
    Bodo Moeller <>
    Ulf Moeller <>
    Holger Reif <>
    Paul C. Sutton <>

%setup -q 
%patch -p1
%patch1 -p1
%patch3 -p1
%patch5 -p1
#%patch10 -p1
%patch6 -p1
%patch8 -p1
%ifarch s390x
#%patch10 -p1
#%patch11 -p1
#%patch12 -p1
#%patch13 -p1
#%patch14 -p1
#%patch15 -p1
#%patch16 -p1
#%patch17 -p1
#%patch18 -p1

cp -p %{S:10} .
# lib64 installation fixes
for i in engines/Makefile; do
sed -e 	"s+\(\$(INSTALL_PREFIX)\$(INSTALLTOP)\)/lib+\1/%_lib+g" \
    -e	"s+libdir=\$\${exec_prefix}/lib+libdir=\$\${exec_prefix}/%_lib+g" \
	$i > $i.t
	diff -u $i $i.t ||:
	mv $i.t $i
echo "adding/overwriting some entries in the 'table' hash in Configure"
# $dso_scheme:$shared_target:$shared_cflag:$shared_ldflag:$shared_extension:$ranlib:$arflags
cat <<EOF_ED | ed -s Configure 
# local configuration added from specfile
#config-string,  $cc:$cflags:$unistd:$thread_cflag:$sys_id:$lflags:$bn_ops:$cpuid_obj:$bn_obj:$des_obj:$aes_obj:$bf_obj:$md5_obj:$sha1_obj:$cast_obj:$rc4_obj:$rmd160_obj:$rc5_obj:$dso_scheme:$shared_target:$shared_cflag:$shared_ldflag:$shared_extension:$ranlib:$arflags
"linux-elf",    "gcc:-DL_ENDIAN			::-D_REENTRANT::-ldl:BN_LLONG \${x86_gcc_des} \${x86_gcc_opts}:\${x86_elf_asm}:$DSO_SCHEME",
"linux-ia64",   "gcc:-DL_ENDIAN	-DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR::asm/ia64.o::::::::::		$DSO_SCHEME",
"linux-ppc",    "gcc:-DB_ENDIAN			::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::::::::::::		$DSO_SCHEME",
"linux-elf-arm","gcc:-DL_ENDIAN			::-D_REENTRANT::-ldl:BN_LLONG::::::::::::							$DSO_SCHEME",
"linux-mips",   "gcc:-DB_ENDIAN			::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::::::::::::		$DSO_SCHEME",
"linux-sparcv7","gcc:-DB_ENDIAN			::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::::			$DSO_SCHEME",
"linux-sparcv8","gcc:-DB_ENDIAN -DBN_DIV2W -mv8	::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::asm/sparcv8.o::::::::::	$DSO_SCHEME",
"linux-x86_64", "gcc:-DL_ENDIAN -DNO_ASM -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG::::::::::::						$DSO_SCHEME",
"linux-s390",   "gcc:-DB_ENDIAN			::(unknown):   :-ldl:BN_LLONG::::::::::::							$DSO_SCHEME",
"linux-s390x",  "gcc:-DB_ENDIAN -DNO_ASM -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG::::::::::::					$DSO_SCHEME",
"linux-parisc",	"gcc:-DB_ENDIAN 		::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR DES_PTR DES_UNROLL DES_RISC1::::::::::::			$DSO_SCHEME",
# fix ENGINESDIR path
sed -i 's,/lib/engines,/%_lib/engines,' Configure

./config --test-sanity 
config_flags="threads shared no-rc5 no-idea \
enable-camellia \
zlib \
--prefix=%{_prefix} \
--openssldir=%{ssletcdir} \
-fomit-frame-pointer \
-fno-strict-aliasing \
-Wall \
-fstack-protector "
#%{!?do_profiling:%define do_profiling 0}
#%if %do_profiling
#	# generate feedback
#	./config $config_flags
#	make depend CC="gcc %cflags_profile_generate"
#	make CC="gcc %cflags_profile_generate"
#	LD_LIBRARY_PATH=`pwd` make rehash CC="gcc %cflags_profile_generate"
#	LD_LIBRARY_PATH=`pwd` make test CC="gcc %cflags_profile_generate"
#	LD_LIBRARY_PATH=`pwd` apps/openssl speed
#	make clean
#	# compile with feedback
#	# but not if it makes a cipher slower:
#	#find crypto/aes -name '*.da' | xargs -r rm
#	./config $config_flags %cflags_profile_feedback
#	make depend
#	make
#	LD_LIBRARY_PATH=`pwd` make rehash
#	LD_LIBRARY_PATH=`pwd` make test
	./config $config_flags
	make depend
	LD_LIBRARY_PATH=`pwd` make rehash
	%ifnarch armv4l
	LD_LIBRARY_PATH=`pwd` make test
# show settings
make TABLE
eval $(egrep PLATFORM='[[:alnum:]]' Makefile)
grep -B1 -A22 "^\*\*\* $PLATFORM$" TABLE 

# install standard root certificates
cp -pr certs/* $RPM_BUILD_ROOT/%{ssletcdir}/certs
ln -sf ./%{name} $RPM_BUILD_ROOT/%{_includedir}/ssl
mkdir $RPM_BUILD_ROOT/%{_datadir}/ssl
mv $RPM_BUILD_ROOT/%{ssletcdir}/misc $RPM_BUILD_ROOT/%{_datadir}/ssl/
# ln -s %{ssletcdir}/certs 	$RPM_BUILD_ROOT/%{_datadir}/ssl/certs
# ln -s %{ssletcdir}/private 	$RPM_BUILD_ROOT/%{_datadir}/ssl/private
# ln -s %{ssletcdir}/openssl.cnf 	$RPM_BUILD_ROOT/%{_datadir}/ssl/openssl.cnf
# avoid file conflicts with man pages from other packages
pushd $RPM_BUILD_ROOT/%{_mandir}
# some man pages now contain spaces. This makes several scripts go havoc, among them /usr/sbin/Check.
# replace spaces by underscores
#for i in man?/*\ *; do mv -v "$i" "${i// /_}"; done
which readlink &>/dev/null || function readlink { ( set +x; target=$(file $1 2>/dev/null); target=${target//* }; test -f $target && echo $target; ) }
for i in man?/*; do 
	if test -L $i ; then
	    LDEST=`readlink $i`
	    rm -f $i ${i}ssl
	    ln -sf ${LDEST}ssl ${i}ssl
	    mv $i ${i}ssl
	case `basename ${i%.*}` in 
		# these are the pages mentioned in openssl(1). They go into the main package.
		echo %doc %{_mandir}/${i}ssl.gz >> $OLDPWD/filelist;;
		# the rest goes into the openssl-doc package.
		echo %doc %{_mandir}/${i}ssl.gz >> $OLDPWD/filelist.doc;;
# check wether some shared library has been installed
ls -l $RPM_BUILD_ROOT/%{_libdir}
test -f $RPM_BUILD_ROOT/%{_libdir}/{num_version}
test -f $RPM_BUILD_ROOT/%{_libdir}/{num_version}
test -L $RPM_BUILD_ROOT/%{_libdir}/
test -L $RPM_BUILD_ROOT/%{_libdir}/
# see what we've got
cat > showciphers.c <<EOF
#include <openssl/err.h>
#include <openssl/ssl.h>
void main(){
unsigned int i;
SSL_CTX *ctx;
SSL *ssl;
  meth = SSLv2_client_method();
  ctx = SSL_CTX_new(meth);
  if (ctx == NULL) return 0;
  ssl = SSL_new(ctx);
  if (!ssl) return 0;
  for (i=0; ; i++) {
    int j, k;
    SSL_CIPHER *sc;
    sc = (meth->get_cipher)(i);
    if (!sc) break;
    k = SSL_CIPHER_get_bits(sc, &j);
    printf("%s\n", sc->name);
  return 0;
gcc $RPM_OPT_FLAGS -I${RPM_BUILD_ROOT}%{_includedir} -c showciphers.c
gcc -o showciphers showciphers.o -L${RPM_BUILD_ROOT}%{_libdir} -lssl -lcrypto
LD_LIBRARY_PATH=${RPM_BUILD_ROOT}%{_libdir} ./showciphers > AVAILABLE_CIPHERS || true
# Do not install demo scripts executable under /usr/share/doc
find demos -type f -perm /111 -exec chmod 644 {} \;

if ! test -f /.buildenv; then rm -rf $RPM_BUILD_ROOT; fi

%post -n libopenssl0_9_8

%postun -n libopenssl0_9_8

%files -n libopenssl0_9_8
%defattr(-, root, root)

%files -n libopenssl-devel
%defattr(-, root, root)

%files doc -f filelist.doc
%defattr(-, root, root)
%doc doc/* demos
%doc showciphers.c 

%files -f filelist
%defattr(-, root, root)
%dir %{ssletcdir}
%dir %{ssletcdir}/certs
%config (noreplace) %{ssletcdir}/openssl.cnf
%attr(700,root,root) %{ssletcdir}/private
%dir %{_datadir}/ssl

* Tue Jun 30 2009
- fix security bug [bnc#509031]
* Tue Jun 30 2009
- fix security bug [bnc#504687]
* Wed Apr 15 2009
- fix security bug [bnc#489641]
* Wed Jan 07 2009
- obsolete old -XXbit packages (bnc#437293)
* Thu Dec 18 2008
- fix security bug [bnc#459468]
* Tue Dec 09 2008
- Disable optimization for s390x
* Mon Dec 08 2008
- Disable optimization of md4
* Mon Nov 10 2008
- Disable optimization of ripemd [bnc#442740]
* Tue Oct 14 2008
- Passing string as struct cause openssl segment-fault [bnc#430141]
* Wed Jul 16 2008
- do not require openssl-certs, but rather recommend it
  to avoid dependency cycle [bnc#408865]
* Wed Jul 09 2008
- remove the certs subpackage from the openssl package
  and move the CA root certificates into a package of its own
* Tue Jun 24 2008
- update to version 0.9.8h
- openssl does not ship CA root certificates anymore
  keep certificates that SuSE is already shipping
- resolves bad array index (function has been removed) [bnc#356549]
- removed patches
* Wed May 28 2008
- fix OpenSSL Server Name extension crash (CVE-2008-0891)
  and OpenSSL Omit Server Key Exchange message crash (CVE-2008-1672)
* Wed May 21 2008
- fix baselibs.conf
* Tue Apr 22 2008
- add -DMD32_REG_T=int for x86_64 and ia64 [bnc#381844]
* Thu Apr 10 2008
- added baselibs.conf file to build xxbit packages
  for multilib support
* Mon Nov 05 2007
- fix Diffie-Hellman failure with certain prime lengths
* Mon Oct 22 2007
- update to version 0.9.8g:
  * fix some bugs introduced with 0.9.8f
* Mon Oct 15 2007
- update to version 0.9.8f:
  * fixes CVE-2007-3108, CVE-2007-5135, CVE-2007-4995
- patches merged upstream:
* Mon Oct 01 2007
- fix buffer overflow CVE-2007-5135 [#329208]
* Wed Sep 05 2007
- fix another gcc 4.2 build problem [#307669]
* Fri Aug 03 2007
- provide the version obsoleted (#293401)
* Wed Aug 01 2007
- Add patch from CVS for RSA key reconstruction vulnerability
  (CVE-2007-3108, VU#724968, bug #296511)
* Thu May 24 2007
- fix build with gcc-4.2
- do not install example scripts with executable permissions
* Mon Apr 30 2007
- adapt requires
* Fri Apr 27 2007
- Do not use dots in package name
- explicitly build with gcc-4.1 because of currently unresolved
  failures with gcc-4.2
* Wed Apr 25 2007
- Split/rename package to follow library packaging policy [#260219]
  New package libopenssl0.9.8 containing shared libs
  openssl-devel package renamed to libopenssl-devel
  New package openssl-certs containing certificates
- add zlib-devel to Requires of devel package
- remove old Obsoletes and Conflicts
  openssls (Last used Nov 2000)
  ssleay (Last used 6.2)
* Mon Apr 23 2007
- Fix key length [#254905,#262477]
* Tue Mar 06 2007
- update to version 0.9.8e:
  * patches merged upstream:
* Tue Jan 09 2007
- fix PadLock support [#230823]
* Thu Nov 30 2006
- enable fix for CVE-2006-2940 [#223040], SWAMP-ID 7198
* Mon Nov 06 2006
- configure with 'zlib' instead of 'zlib-dynamic'. Build with the
  latter, there are problems opening the libz when running on the
  Via Epia or vmware platforms. [#213305]
* Wed Oct 04 2006
- add patch for the CVE-2006-2940 fix: the newly introduced limit
  on DH modulus size could lead to a crash when exerted. [#208971]
  Discovered and fixed after the 0.9.8d release.
* Fri Sep 29 2006
- update to 0.9.8d
  *) Introduce limits to prevent malicious keys being able to
  cause a denial of service.  (CVE-2006-2940)
  *) Fix ASN.1 parsing of certain invalid structures that can result
  in a denial of service.  (CVE-2006-2937)
  *) Fix buffer overflow in SSL_get_shared_ciphers() function.
  *) Fix SSL client code which could crash if connecting to a
  malicious SSLv2 server.  (CVE-2006-4343)
  *) Since 0.9.8b, ciphersuite strings naming explicit ciphersuites
  match only those.  Before that, "AES256-SHA" would be interpreted
  as a pattern and match "AES128-SHA" too (since AES128-SHA got
  the same strength classification in 0.9.7h) as we currently only
  have a single AES bit in the ciphersuite description bitmap.
  That change, however, also applied to ciphersuite strings such as
  "RC4-MD5" that intentionally matched multiple ciphersuites --
  namely, SSL 2.0 ciphersuites in addition to the more common ones
  from SSL 3.0/TLS 1.0.
  So we change the selection algorithm again: Naming an explicit
  ciphersuite selects this one ciphersuite, and any other similar
  ciphersuite (same bitmap) from *other* protocol versions.
  Thus, "RC4-MD5" again will properly select both the SSL 2.0
  ciphersuite and the SSL 3.0/TLS 1.0 ciphersuite.
  Since SSL 2.0 does not have any ciphersuites for which the
  128/256 bit distinction would be relevant, this works for now.
  The proper fix will be to use different bits for AES128 and
  AES256, which would have avoided the problems from the beginning;
  however, bits are scarce, so we can only do this in a new release
  (not just a patchlevel) when we can change the SSL_CIPHER
  definition to split the single 'unsigned long mask' bitmap into
  multiple values to extend the available space.
- not in mentioned in CHANGES: patch for CVE-2006-4339 corrected
  [ #1397]
* Fri Sep 08 2006
- Fix inverted logic.
* Wed Sep 06 2006
- update to 0.9.8c
  Changes between 0.9.8b and 0.9.8c  [05 Sep 2006]
  *) Avoid PKCS #1 v1.5 signature attack discovered by Daniel Bleichenbacher
  (CVE-2006-4339)  [Ben Laurie and Google Security Team]
  *) Add AES IGE and biIGE modes.  [Ben Laurie]
  *) Change the Unix randomness entropy gathering to use poll() when
  possible instead of select(), since the latter has some
  undesirable limitations.  [Darryl Miles via Richard Levitte and Bodo Moeller]
  *) Disable "ECCdraft" ciphersuites more thoroughly.  Now special
  treatment in ssl/ssl_ciph.s makes sure that these ciphersuites
  cannot be implicitly activated as part of, e.g., the "AES" alias.
  However, please upgrade to OpenSSL 0.9.9[-dev] for
  non-experimental use of the ECC ciphersuites to get TLS extension
  support, which is required for curve and point format negotiation
  to avoid potential handshake problems.  [Bodo Moeller]
  *) Disable rogue ciphersuites:
      - SSLv2 0x08 0x00 0x80 ("RC4-64-MD5")
      - SSLv3/TLSv1 0x00 0x61 ("EXP1024-RC2-CBC-MD5")
      - SSLv3/TLSv1 0x00 0x60 ("EXP1024-RC4-MD5")
  The latter two were purportedly from
  draft-ietf-tls-56-bit-ciphersuites-0[01].txt, but do not really
  appear there.
  Also deactive the remaining ciphersuites from
  draft-ietf-tls-56-bit-ciphersuites-01.txt.  These are just as
  unofficial, and the ID has long expired.  [Bodo Moeller]
  *) Fix RSA blinding Heisenbug (problems sometimes occured on
  dual-core machines) and other potential thread-safety issues.
  [Bodo Moeller]
  *) Add the symmetric cipher Camellia (128-bit, 192-bit, 256-bit key
  versions), which is now available for royalty-free use
  Also, add Camellia TLS ciphersuites from RFC 4132.
  To minimize changes between patchlevels in the OpenSSL 0.9.8
  series, Camellia remains excluded from compilation unless OpenSSL
  is configured with 'enable-camellia'.  [NTT]
  *) Disable the padding bug check when compression is in use. The padding
  bug check assumes the first packet is of even length, this is not
  necessarily true if compresssion is enabled and can result in false
  positives causing handshake failure. The actual bug test is ancient
  code so it is hoped that implementations will either have fixed it by
  now or any which still have the bug do not support compression.
  [Steve Henson]
  Changes between 0.9.8a and 0.9.8b  [04 May 2006]
  *) When applying a cipher rule check to see if string match is an explicit
  cipher suite and only match that one cipher suite if it is.  [Steve Henson]
  *) Link in manifests for VC++ if needed.  [Austin Ziegler <>]
  *) Update support for ECC-based TLS ciphersuites according to
  draft-ietf-tls-ecc-12.txt with proposed changes (but without
  TLS extensions, which are supported starting with the 0.9.9
  branch, not in the OpenSSL 0.9.8 branch).  [Douglas Stebila]
  *) New functions EVP_CIPHER_CTX_new() and EVP_CIPHER_CTX_free() to support
  opaque EVP_CIPHER_CTX handling.  [Steve Henson]
  *) Fixes and enhancements to zlib compression code. We now only use
  "zlib1.dll" and use the default __cdecl calling convention on Win32
  to conform with the standards mentioned here:
  Static zlib linking now works on Windows and the new --with-zlib-include
     --with-zlib-lib options to Configure can be used to supply the location
  of the headers and library. Gracefully handle case where zlib library
  can't be loaded.  [Steve Henson]
  *) Several fixes and enhancements to the OID generation code. The old code
  sometimes allowed invalid OIDs (1.X for X >= 40 for example), couldn't
  handle numbers larger than ULONG_MAX, truncated printing and had a
  non standard OBJ_obj2txt() behaviour.  [Steve Henson]
  *) Add support for building of engines under engine/ as shared libraries
  under VC++ build system.  [Steve Henson]
  *) Corrected the numerous bugs in the Win32 path splitter in DSO.
  Hopefully, we will not see any false combination of paths any more.
  [Richard Levitte]
- enable Camellia cipher. There is a royalty free license to the
  patents, see
  NOTE: the license forbids patches to the cipher.
- build with zlib-dynamic and add zlib-devel to BuildRequires.
  Allows compression of data in TLS, although few application would
  actually use it since there is no standard for negotiating the
  compression method. The only one I know if is stunnel.
* Fri Jun 02 2006
- fix built-in ENGINESDIR for 64 bit architectures. We change only
  the builtin search path for engines, not the path where engines
  are packaged. Path can be overridden with the OPENSSL_ENGINES
  environment variable. [#179094]
* Wed Jan 25 2006
- converted neededforbuild to BuildRequires
* Mon Jan 16 2006
- fix build problems on s390x (openssl-s390-config.diff)
- build with -fstack-protector
* Mon Nov 07 2005
- build with non-executable stack
* Thu Oct 20 2005
- fix unguarded free() which can cause a segfault in the ca
  commandline app [#128655]
* Thu Oct 13 2005
- add Geotrusts Equifax Root1 CA certificate, which needed to
  verify the authenticity of [#121966]
* Tue Oct 11 2005
- update to 0.9.8a
  *) Remove the functionality of SSL_OP_MSIE_SSLV2_RSA_PADDING
  (part of SSL_OP_ALL).  This option used to disable the
  countermeasure against man-in-the-middle protocol-version
  rollback in the SSL 2.0 server implementation, which is a bad
  idea.  (CAN-2005-2969)
  *) Add two function to clear and return the verify parameter flags.
  *) Keep cipherlists sorted in the source instead of sorting them at
  runtime, thus removing the need for a lock.
  *) Avoid some small subgroup attacks in Diffie-Hellman.
  *) Add functions for well-known primes.
  *) Extended Windows CE support.
  *) Initialize SSL_METHOD structures at compile time instead of during
  runtime, thus removing the need for a lock.
  *) Make PKCS7_decrypt() work even if no certificate is supplied by
  attempting to decrypt each encrypted key in turn. Add support to
  smime utility.
* Thu Sep 29 2005
- update to 0.9.8
  see CHANGES file or
- adjust patches
- drop obsolete openssl-no-libc.diff
- disable libica patch until it has been ported
* Fri May 20 2005
- update to 0.9.7g. The significant changes are:
  *) Fixes for newer kerberos headers. NB: the casts are needed because
  the 'length' field is signed on one version and unsigned on another
  with no (?) obvious way to tell the difference, without these VC++
  complains. Also the "definition" of FAR (blank) is no longer included
  nor is the error ENOMEM. KRB5_PRIVATE has to be set to 1 to pick up
  some needed definitions.
  *) Added support for proxy certificates according to RFC 3820.
  Because they may be a security thread to unaware applications,
  they must be explicitely allowed in run-time.  See
  docs/HOWTO/proxy_certificates.txt for further information.
* Tue May 17 2005
- Include %%cflags_profile_generate in ${CC} since it is required for
  linking as well.
- Remove explicit reference to libc.
* Fri Apr 08 2005
- update to 0.9.7f. The most significant changes are:
  o Several compilation issues fixed.
  o Many memory allocation failure checks added.
  o Improved comparison of X509 Name type.
  o Mandatory basic checks on certificates.
  o Performance improvements.
  (for a complete list see
- adjust openssl-0.9.7f-ppc64.diff
- drop obsolete openssl-0.9.7d-crl-default_md.dif [#55435]
* Tue Jan 04 2005
- update to 0.9.7e
  *) Avoid a race condition when CRLs are checked in a multi
  threaded environment. This would happen due to the reordering
  of the revoked entries during signature checking and serial
  number lookup. Now the encoding is cached and the serial
  number sort performed under a lock.  Add new STACK function
  *) Add Delta CRL to the extension code.
  *) Various fixes to s3_pkt.c so alerts are sent properly.
  *) Reduce the chances of duplicate issuer name and serial numbers
  (in violation of RFC3280) using the OpenSSL certificate
  creation utilities.  This is done by creating a random 64 bit
  value for the initial serial number when a serial number file
  is created or when a self signed certificate is created using
  'openssl req -x509'. The initial serial number file is created
  using 'openssl x509 -next_serial' in rather than being
  initialized to 1.
- remove obsolete patches
- fix openssl-0.9.7d-padlock-glue.diff and ICA patch to patch
  Makefile, not Makefile.ssl
- fixup for spaces in names of man pages not needed now
- pack /usr/bin/openssl_fips_fingerprint
- in rpm post/postun script, run /sbin/ldconfig directly (the macro
  is deprecated)
* Mon Oct 18 2004
- don't install openssl.doxy file [#45210]
* Thu Jul 29 2004
- apply patch from CVS to fix segfault in S/MIME encryption
  (, regression in
  openssl-0.9.7d) [#43386]
* Mon Jul 12 2004
- Updated VIA PadLock engine.
* Wed Jun 30 2004
- Updated openssl-0.9.7d-padlock-engine.diff with support for
  AES192, AES256 and RNG.
* Tue Jun 15 2004
- update IBM ICA patch to last night's version. Fixes ibmca_init()
  to reset ibmca_dso=NULL after calling DSO_free(), if the device
  driver could not be loaded. The bug lead to a segfault triggered
  by stunnel, which does autoload available engines [#41874]
- patch from CVS: make stack API more robust (return NULL for
  out-of-range indexes). Fixes another possible segfault during
  engine detection (could also triggered by stunnel)
- add patch from Michal Ludvig for VIA PadLock support
* Wed Jun 02 2004
- add root certificate for the ICP-Brasil CA [#41546]
* Thu May 13 2004
- add patch to use default_md for CRLs too [#40435]
* Tue May 04 2004
- update ICA patch to apr292004 release [#39695]
* Thu Mar 18 2004
- update to 0.9.7d
  o Security: Fix Kerberos ciphersuite SSL/TLS handshaking bug
  o Security: Fix null-pointer assignment in do_change_cipher_spec()
  o Allow multiple active certificates with same subject in CA index
  o Multiple X590 verification fixes
  o Speed up HMAC and other operations
- remove the hunk from openssl-0.9.6d.dif that added NO_IDEA around
  IDEA_128_CBC_WITH_MD5 in the global cipher list. Upstream now has
  OPENSSL_NO_IDEA around it
- [#36386] fixed (broken generation of EVP_BytesToKey.3ssl from the
  pod file)
- permissions of lib/pkgconfig fixed
* Wed Feb 25 2004
- update to 0.9.7c
  *) Fix various bugs revealed by running the NISCC test suite:
  Stop out of bounds reads in the ASN1 code when presented with
  invalid tags (CAN-2003-0543 and CAN-2003-0544).
  Free up ASN1_TYPE correctly if ANY type is invalid (CAN-2003-0545).
  If verify callback ignores invalid public key errors don't try to check
  certificate signature with the NULL public key.
  *) New -ignore_err option in ocsp application to stop the server
  exiting on the first error in a request.
  *) In ssl3_accept() (ssl/s3_srvr.c) only accept a client certificate
  if the server requested one: as stated in TLS 1.0 and SSL 3.0
  *) In ssl3_get_client_hello() (ssl/s3_srvr.c), tolerate additional
  extra data after the compression methods not only for TLS 1.0
  but also for SSL 3.0 (as required by the specification).
  *) Change X509_certificate_type() to mark the key as exported/exportable
  when it's 512 *bits* long, not 512 bytes.
  *) Change AES_cbc_encrypt() so it outputs exact multiple of
  blocks during encryption.
  *) Various fixes to base64 BIO and non blocking I/O. On write
  flushes were not handled properly if the BIO retried. On read
  data was not being buffered properly and had various logic bugs.
  This also affects blocking I/O when the data being decoded is a
  certain size.
  *) Various S/MIME bugfixes and compatibility changes:
  output correct application/pkcs7 MIME type if
  PKCS7_NOOLDMIMETYPE is set. Tolerate some broken signatures.
  Output CR+LF for EOL if PKCS7_CRLFEOL is set (this makes opening
  of files as .eml work). Correctly handle very long lines in MIME
- update ICA patch
  quote: This version of the engine patch has updated error handling in
  the DES/SHA code, and turns RSA blinding off for hardware
  accelerated RSA ops.
- filenames of some man pages contain spaces now. Replace them with
- fix compiler warnings in showciphers.c
- fix permissions of /usr/%%_lib/pkgconfig
* Sat Jan 10 2004
- add %%run_ldconfig
- remove unneeded PreRequires
* Tue Nov 18 2003
- ditch annoying mail to root about moved locations [#31969]
* Wed Aug 13 2003
- enable profile feedback based optimizations (except AES which
  becomes slower)
- add -fno-strict-aliasing, due to warnings about code where
  dereferencing type-punned pointers will break strict aliasing
- make a readlink function if readlink is not available
* Mon Aug 04 2003
- fixed manpages symlinks
* Wed Jul 30 2003
- Fix Makefile to create pkgconfig file with lib64 on lib64 systems.
* Sun Jul 27 2003
- don't explicitely strip binaries since RPM handles it, and may
  keep the stripped information somewhere
* Tue Jul 15 2003
- -DMD32_REG_T=int for ppc64 and s390x.
* Thu Jul 10 2003
- update ibm ICA patch to 20030708 release (libica-1.3)
* Mon May 12 2003
- package the openssl.pc file for pkgconfig
* Wed Apr 16 2003
- update to 0.9.7b. The most significant changes are:
  o New library section OCSP.
  o Complete rewrite of ASN1 code.
  o CRL checking in verify code and openssl utility.
  o Extension copying in 'ca' utility.
  o Flexible display options in 'ca' utility.
  o Provisional support for international characters with UTF8.
  o Support for external crypto devices ('engine') is no longer
  a separate distribution.
  o New elliptic curve library section.
  o New AES (Rijndael) library section.
  o Support for new platforms: Windows CE, Tandem OSS, A/UX, AIX 64-bit,
  Linux x86_64, Linux 64-bit on Sparc v9
  o Extended support for some platforms: VxWorks
  o Enhanced support for shared libraries.
  o Now only builds PIC code when shared library support is requested.
  o Support for pkg-config.
  o Lots of new manuals.
  o Makes symbolic links to or copies of manuals to cover all described
  o Change DES API to clean up the namespace (some applications link also
  against libdes providing similar functions having the same name).
  Provide macros for backward compatibility (will be removed in the
  o Unify handling of cryptographic algorithms (software and engine)
  to be available via EVP routines for asymmetric and symmetric ciphers.
  o NCONF: new configuration handling routines.
  o Change API to use more 'const' modifiers to improve error checking
  and help optimizers.
  o Finally remove references to RSAref.
  o Reworked parts of the BIGNUM code.
  o Support for new engines: Broadcom ubsec, Accelerated Encryption
  Processing, IBM 4758.
  o A few new engines added in the demos area.
  o Extended and corrected OID (object identifier) table.
  o PRNG: query at more locations for a random device, automatic query for
  EGD style random sources at several locations.
  o SSL/TLS: allow optional cipher choice according to server's preference.
  o SSL/TLS: allow server to explicitly set new session ids.
  o SSL/TLS: support Kerberos cipher suites (RFC2712).
  Only supports MIT Kerberos for now.
  o SSL/TLS: allow more precise control of renegotiations and sessions.
  o SSL/TLS: add callback to retrieve SSL/TLS messages.
  o SSL/TLS: support AES cipher suites (RFC3268).
- adapt the ibmca patch
- remove openssl-nocrypt.diff, openssl's crypt() vanished
- configuration syntax has changed ($sys_id added before $lflags)
* Thu Feb 20 2003
- update to bugfix release 0.9.6i:
  - security fix: In ssl3_get_record (ssl/s3_pkt.c), minimize
  information leaked via timing by performing a MAC computation
  even if incorrrect block cipher padding has been found.  This
  is a countermeasure against active attacks where the attacker
  has to distinguish between bad padding and a MAC verification
  error.  (CAN-2003-0078)
  - a few more small bugfixes (mainly missing assertions)
* Fri Dec 06 2002
- update to 0.9.6h (last release in the 0.9.6 series)
  o New configuration targets for Tandem OSS and A/UX.
  o New OIDs for Microsoft attributes.
  o Better handling of SSL session caching.
  o Better comparison of distinguished names.
  o Better handling of shared libraries in a mixed GNU/non-GNU environment.
  o Support assembler code with Borland C.
  o Fixes for length problems.
  o Fixes for uninitialised variables.
  o Fixes for memory leaks, some unusual crashes and some race conditions.
  o Fixes for smaller building problems.
  o Updates of manuals, FAQ and other instructive documents.
- add a call to make depend
- fix sed expression (lib -> lib64) to replace multiple occurences
  on one line
* Mon Nov 04 2002
- fix openssl for alpha ev56 cpus
* Thu Oct 24 2002
- own the /usr/share/ssl directory [#20849]
- openssl-hppa-config.diff can be applied on all architectures
* Mon Sep 30 2002
- enable hppa distribution; use only pa1.1 architecture.
* Tue Sep 17 2002
- update ibm-hardware-crypto-patch to ibmca.patch-0.96e-2 (#18953)
* Mon Aug 12 2002
- update to 0.9.6g and drop the now included ASN1 check patch.
  Other change:
  - Use proper error handling instead of 'assertions' in buffer
  overflow checks added in 0.9.6e.  This prevents DoS (the
  assertions could call abort()).
* Fri Aug 09 2002
- Fix requires of openssl-devel subpackage
* Tue Aug 06 2002
- Correction for changes in the ASN1 code, assembled in
* Thu Aug 01 2002
- update to 0.9.6e. Major changes:
  o Various security fixes (sanity checks to asn1_get_length(),
  various remote buffer overflows)
  o new option SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS, disabling the
  countermeasure against a vulnerability in the CBC ciphersuites
  in SSL 3.0/TLS 1.0 that was added in 0.9.6d which turned out to
  be incompatible with buggy SSL implementations
- update ibmca crypto hardware patch (security issues fixed)
- gcc 3.1 version detection is fixed, we can drop the patch
- move the most used man pages from the -doc to the main package
  [#9913] and resolve man page conflicts by putting them into ssl
  sections [#17239]
- spec file: use PreReq for %%post script
* Fri Jul 12 2002
- update to 0.9.6d. Major changes:
  o Various SSL/TLS library bugfixes.
  o Fix DH parameter generation for 'non-standard' generators.
  Complete Changelog:
- supposed to fix a session caching failure occuring with postfix
- simplify local configuration for the architectures
- there's a new config variable: $shared_ldflag
- use RPM_OPT_FLAGS in favor of predifined cflags by appending them
  at the end
- validate config data (config --check-sanity)
- resolve file conflict of /usr/share/man/man1/openssl.1.gz [#15982]
- move configuration to /etc/ssl [#14387]
- mark openssl.cnf %%config (noreplace)
* Sat Jul 06 2002
- Include <crypt.h> to get crypt prototype.
* Fri Jul 05 2002
- Remove crypt prototype from des.h header file, too.
* Mon Jun 10 2002
- enhanced ppc64 support (needs seperate config), reenabled make check
* Fri May 31 2002
- add ppc64 support, temporary disable make check
* Thu Apr 18 2002
- fixed x86_64 build, added bc to needed_for_build (used by tests)
* Wed Apr 17 2002
- fixed gcc version determination
- drop sun4c support/always use sparcv8
- ignore return code from showciphers
* Fri Mar 15 2002
- add settings for sparc to build shared objects. Note that all
  sparcs (sun4[mdu]) are recognized as linux-sparcv7
* Wed Feb 06 2002
- Remove crypt function from [Bug #13056]
* Sun Feb 03 2002
- add settings for mips to build shared objects
- print out all settings to the build log
* Tue Jan 29 2002
- update to 0.9.6c:
  o bug fixes
  o support for hardware crypto devices (Cryptographic Appliances,
  Broadcom, and Accelerated Encryption Processing)
- add IBMCA patch for IBM eServer Cryptographic Accelerator Device
  Driver (#12565) (forward ported from 0.9.6b)
- tell Configure how to build shared libs for s390 and s390x
- tweak to use %%_libdir
- clean up spec file
- add README.SuSE as source file instead of in a patch
* Wed Dec 05 2001
- disabled "make test" for ARM (destest segfaults, the other tests
  seem to succeed)
* Wed Dec 05 2001
- removed subpackage src
* Wed Nov 28 2001
- needs -ldl on ARM, too
* Mon Nov 19 2001
- made mips big endian, fixed shared library creation for mips
* Fri Aug 31 2001
- added root certificates [BUG#9913]
- move from /usr/ssh to /usr/share/ssl
* Wed Jul 18 2001
- update to 0.9.6b
- switch to engine version of openssl, which supports hardware
  encryption for a few popular devices
- check wether shared libraries have been generated
* Thu Jul 05 2001
- appliy PRNG security patch
* Tue Jun 12 2001
- added support for s390x
* Mon May 07 2001
- Fix building of shared libraries on SPARC, too.
* Mon May 07 2001
- Fix ppc and s390 shared library builds
- resolved conflict in manpage naming:
  rand.3 is now sslrand.3 [BUG#7643]
* Tue May 01 2001
- Fix ia64 configuration.
- Fix link command.
* Thu Apr 26 2001
- updated to 0.96a
* Wed Apr 18 2001
- provide .so files in -devel package only
* Tue Apr 17 2001
- resolve file name conflict (#6966)
* Wed Mar 21 2001
- new subpackage openssl-src [BUG#6383]
- added README.SuSE which explains where to find the man pages [BUG#6717]
* Fri Dec 15 2000
- changed CFLAG to -O1 to make the tests run successfully
* Mon Dec 11 2000
- build openssl with no-idea and no-rc5 to meet US & RSA regulations
- build with -fPIC on all platforms (especially IA64)
* Wed Nov 22 2000
- rename openssls to openssl-devel and add shared libs and header files
- new subpackge openssl-doc for manpages and documentation
- use BuildRoot
* Fri Oct 27 2000
- Add link-time links for libcrypto and libssl.
- Make sure that LD_LIBRARY_PATH is passed down to sub-makes.
* Mon Oct 02 2000
- update to 0.9.6
* Mon Apr 10 2000
- fix support for s390-linux
* Mon Apr 10 2000
- new version 0.9.5a
* Sun Apr 09 2000
- add support for s390-linux
* Mon Mar 27 2000
- Use sparcv7 for SPARC
* Wed Mar 01 2000
- move manpages back, as too many conflict with system manuals
* Wed Mar 01 2000
- move manpages to %%{_mandir}
- include static libraries
* Wed Mar 01 2000
- added subpackage source openssls, needed for ppp_ssl
* Tue Feb 29 2000
- new version 0.9.5
* Thu Feb 24 2000
- add support for ia64-linux
* Mon Jan 31 2000
- Create and add and
* Mon Sep 13 1999
- ran old prepare_spec on spec file to switch to new prepare_spec.
* Wed Sep 01 1999
- new version 0.9.4
* Wed May 26 1999
- new version 0.9.3 with new layout
- alpha asm disabled by default now, no patch needed
* Thu May 20 1999
- disable asm for alpha: seems incomplete
* Mon May 17 1999
- don't use -DNO_IDEA
* Wed May 12 1999
- first version 0.9.2b