- Update to version 1.72: * Defects Fixed: - There were parameter errors in XMSS^MT OIDs for XMSSMT_SHA2_40/4_256 and XMSSMT_SHA2_60/3_256. These have been fixed. - There was an error in Merkle tree construction for the Evidence Records (ERS) implementation which could result in invalid roots been timestamped. ERS now produces an ArchiveTimeStamp for each data object/group with an associated reduced hash tree. The reduced hash tree is now calculated as a simple path to the root of the tree for each record. - OpenPGP will now ignore signatures marked as non-exportable on encoding. - A tagging calculation error in GCMSIV which could result in incorrect tags has been fixed. - Issues around Java 17 which could result in failing tests have been addressed. * Additional Features and Functionality: - BCJSSE: TLS 1.3 is now enabled by default where no explicit protocols are supplied (e.g. "TLS" or "Default" SSLContext algorithms, or SSLContext.getDefault() method). - BCJSSE: Rewrite SSLEngine implementation to improve compatibility with SunJSSE. - BCJSSE: Support export of keying material via extension API. - (D)TLS: Add support for 'tls-exporter' channel binding per RFC 9266. - (D)TLS (low-level API): By default, only (D)TLS 1.2 and TLS 1.3 are offered now. Earlier versions are still supported if explicitly enabled. Users may need to check they are offering suitable cipher suites for TLS 1.3. - (D)TLS (low-level API): Add support for raw public keys per RFC 7250. OBS-URL: https://build.opensuse.org/request/show/1030002 OBS-URL: https://build.opensuse.org/package/show/Java:packages/bouncycastle?expand=0&rev=87
261 lines
9.1 KiB
RPMSpec
261 lines
9.1 KiB
RPMSpec
#
|
|
# spec file for package bouncycastle
|
|
#
|
|
# Copyright (c) 2022 SUSE LLC
|
|
#
|
|
# 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 https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%global ver_major 1
|
|
%global ver_minor 72
|
|
%global gittag r%{ver_major}rv%{ver_minor}
|
|
%global archivever jdk18on-%{ver_major}%{ver_minor}
|
|
%global classname org.bouncycastle.jce.provider.BouncyCastleProvider
|
|
Name: bouncycastle
|
|
Version: %{ver_major}.%{ver_minor}
|
|
Release: 0
|
|
Summary: Bouncy Castle Cryptography APIs for Java
|
|
License: Apache-2.0 AND MIT
|
|
Group: Development/Libraries/Java
|
|
URL: https://www.bouncycastle.org
|
|
Source0: https://github.com/bcgit/bc-java/archive/%{gittag}.tar.gz
|
|
# POMs from Maven Central
|
|
Source1: https://repo1.maven.org/maven2/org/%{name}/bcprov-jdk18on/%{version}/bcprov-jdk18on-%{version}.pom
|
|
Source2: https://repo1.maven.org/maven2/org/%{name}/bcpkix-jdk18on/%{version}/bcpkix-jdk18on-%{version}.pom
|
|
Source3: https://repo1.maven.org/maven2/org/%{name}/bcpg-jdk18on/%{version}/bcpg-jdk18on-%{version}.pom
|
|
Source4: https://repo1.maven.org/maven2/org/%{name}/bcmail-jdk18on/%{version}/bcmail-jdk18on-%{version}.pom
|
|
Source5: https://repo1.maven.org/maven2/org/%{name}/bctls-jdk18on/%{version}/bctls-jdk18on-%{version}.pom
|
|
Source6: https://repo1.maven.org/maven2/org/%{name}/bcutil-jdk18on/%{version}/bcutil-jdk18on-%{version}.pom
|
|
Source7: https://repo1.maven.org/maven2/org/%{name}/bcjmail-jdk18on/%{version}/bcjmail-jdk18on-%{version}.pom
|
|
Patch0: bouncycastle-javadoc.patch
|
|
Patch1: bouncycastle-osgi.patch
|
|
BuildRequires: ant
|
|
BuildRequires: ant-junit
|
|
BuildRequires: fdupes
|
|
BuildRequires: glassfish-activation-api
|
|
BuildRequires: jakarta-activation
|
|
BuildRequires: jakarta-mail
|
|
BuildRequires: javamail
|
|
BuildRequires: javapackages-local
|
|
Requires(post): javapackages-tools
|
|
Requires(postun):javapackages-tools
|
|
Provides: bcprov = %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description
|
|
The Bouncy Castle Crypto package is a Java implementation of cryptographic
|
|
algorithms. This jar contains JCE provider and lightweight API for the
|
|
Bouncy Castle Cryptography APIs for JDK 1.5 to JDK 1.8.
|
|
|
|
%package pkix
|
|
Summary: Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
|
|
License: MIT
|
|
Group: Development/Libraries/Java
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-util = %{version}
|
|
|
|
%description pkix
|
|
The Bouncy Castle Java APIs for CMS, PKCS, EAC, TSP, CMP, CRMF, OCSP, and
|
|
certificate generation. This jar contains APIs for JDK 1.5 to JDK 1.8. The
|
|
APIs can be used in conjunction with a JCE/JCA provider such as the one
|
|
provided with the Bouncy Castle Cryptography APIs.
|
|
|
|
%package pg
|
|
Summary: Bouncy Castle OpenPGP API
|
|
License: Apache-2.0 AND MIT
|
|
Group: Development/Libraries/Java
|
|
Requires: %{name} = %{version}
|
|
|
|
%description pg
|
|
The Bouncy Castle Java API for handling the OpenPGP protocol.The APIs can be
|
|
used in conjunction with a JCE/JCA provider such as the one provided with the
|
|
Bouncy Castle Cryptography APIs.
|
|
|
|
%package mail
|
|
Summary: Bouncy Castle S/MIME API
|
|
License: MIT
|
|
Group: Development/Libraries/Java
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-pkix = %{version}
|
|
Requires: %{name}-util = %{version}
|
|
|
|
%description mail
|
|
The Bouncy Castle Java S/MIME APIs for handling S/MIME protocols. The APIs can
|
|
be used in conjunction with a JCE/JCA provider such as the one provided with
|
|
the Bouncy Castle Cryptography APIs. The JavaMail API and the Java activation
|
|
framework will also be needed.
|
|
|
|
%package jmail
|
|
Summary: Bouncy Castle Jakarta S/MIME API
|
|
License: MIT
|
|
Group: Development/Libraries/Java
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-pkix = %{version}
|
|
Requires: %{name}-util = %{version}
|
|
Requires: jakarta-activation
|
|
Requires: jakarta-mail
|
|
|
|
%description jmail
|
|
The Bouncy Castle Java S/MIME APIs for handling S/MIME protocols. This jar
|
|
contains S/MIME APIs for JDK 1.8 and up. The APIs can be used in conjunction
|
|
with a JCE/JCA provider such as the one provided with the Bouncy Castle
|
|
Cryptography APIs. The Jakarta Mail API and the Jakarta activation framework
|
|
will also be needed.
|
|
|
|
%package tls
|
|
Summary: Bouncy Castle JSSE provider and TLS/DTLS API
|
|
License: MIT
|
|
Group: Development/Libraries/Java
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-util = %{version}
|
|
|
|
%description tls
|
|
The Bouncy Castle Java APIs for TLS and DTLS, including a provider for the
|
|
JSSE.
|
|
|
|
%package util
|
|
Summary: Bouncy Castle ASN.1 Extension and Utility APIs
|
|
License: MIT
|
|
Group: Development/Libraries/Java
|
|
Requires: %{name} = %{version}
|
|
|
|
%description util
|
|
The Bouncy Castle Java APIs for ASN.1 extension and utility APIs used to
|
|
support bcpkix and bctls.
|
|
|
|
%package javadoc
|
|
Summary: Javadoc for %{name}
|
|
License: MIT
|
|
Group: Development/Libraries/Java
|
|
|
|
%description javadoc
|
|
API documentation for the Bouncy Castle Cryptography APIs.
|
|
|
|
%prep
|
|
%setup -q -n bc-java-%{gittag}
|
|
%patch0 -p1
|
|
%patch1 -p1
|
|
|
|
# Remove provided binaries
|
|
find . -type f -name "*.class" -exec rm -f {} \;
|
|
find . -type f -name "*.jar" -exec rm -f {} \;
|
|
|
|
%build
|
|
echo "package.version:\ %{version}" >> bc-build.properties
|
|
echo "bundle.version:\ %{version}.0" >> bc-build.properties
|
|
ant -f ant/jdk18+.xml \
|
|
-Dbc.javac.source=8 -Dbc.javac.target=8 \
|
|
-Djunit.jar.home=$(build-classpath junit) \
|
|
-Dmail.jar.home=$(build-classpath javax.mail) \
|
|
-Djmail.jar.home=$(build-classpath jakarta-mail) \
|
|
-Dactivation.jar.home=$(build-classpath glassfish-activation-api) \
|
|
-Djactivation.jar.home=$(build-classpath jakarta-activation) \
|
|
-Drelease.debug=true \
|
|
clean build-provider build
|
|
|
|
# Not shipping the "lcrypto" jar, so don't ship the javadoc for it
|
|
rm -rf build/artifacts/jdk1.8/javadoc/lcrypto
|
|
|
|
%install
|
|
install -dm 755 %{buildroot}%{_sysconfdir}/java/security/security.d
|
|
touch %{buildroot}%{_sysconfdir}/java/security/security.d/2000-%{classname}
|
|
|
|
install -dm 0755 %{buildroot}%{_javadir}
|
|
install -dm 0755 %{buildroot}%{_mavenpomdir}
|
|
for bc in bcprov bcpkix bcpg bcmail bctls bcutil bcjmail ; do
|
|
install -pm 0644 build/artifacts/jdk1.8/jars/$bc-%{archivever}.jar %{buildroot}%{_javadir}/$bc.jar
|
|
install -pm 0644 %{_sourcedir}/$bc-jdk18on-%{version}.pom %{buildroot}%{_mavenpomdir}/$bc.pom
|
|
%add_maven_depmap $bc.pom $bc.jar -a "org.bouncycastle:$bc-jdk18,org.bouncycastle:$bc-jdk16,org.bouncycastle:$bc-jdk15on,org.bouncycastle:$bc-jdk15,org.bouncycastle:$bc-jdk15to18" -f $bc
|
|
done
|
|
|
|
install -dm 0755 %{buildroot}%{_javadocdir}/%{name}
|
|
cp -r build/artifacts/jdk1.8/javadoc/* %{buildroot}%{_javadocdir}/%{name}/
|
|
%fdupes -s %{buildroot}%{_javadocdir}
|
|
|
|
%post
|
|
{
|
|
# Rebuild the list of security providers in classpath.security
|
|
suffix=security/classpath.security
|
|
secfiles="%{_prefix}/lib/$suffix %{_libdir}/$suffix"
|
|
|
|
for secfile in $secfiles
|
|
do
|
|
# check if this classpath.security file exists
|
|
[ -f "$secfile" ] || continue
|
|
|
|
sed -i '/^security\.provider\./d' "$secfile"
|
|
|
|
count=0
|
|
for provider in $(ls %{_sysconfdir}/java/security/security.d)
|
|
do
|
|
count=$((count + 1))
|
|
echo "security.provider.${count}=${provider#*-}" >> "$secfile"
|
|
done
|
|
done
|
|
} || :
|
|
|
|
%postun
|
|
if [ $1 -eq 0 ] ; then
|
|
|
|
{
|
|
# Rebuild the list of security providers in classpath.security
|
|
suffix=security/classpath.security
|
|
secfiles="%{_prefix}/lib/$suffix %{_libdir}/$suffix"
|
|
|
|
for secfile in $secfiles
|
|
do
|
|
# check if this classpath.security file exists
|
|
[ -f "$secfile" ] || continue
|
|
|
|
sed -i '/^security\.provider\./d' "$secfile"
|
|
|
|
count=0
|
|
for provider in $(ls %{_sysconfdir}/java/security/security.d)
|
|
do
|
|
count=$((count + 1))
|
|
echo "security.provider.${count}=${provider#*-}" >> "$secfile"
|
|
done
|
|
done
|
|
} || :
|
|
|
|
fi
|
|
|
|
%files -f .mfiles-bcprov
|
|
%license build/artifacts/jdk1.8/bcprov-jdk18on-*/LICENSE.html
|
|
%doc docs/ *.html
|
|
%config(noreplace) %{_sysconfdir}/java/security/security.d/2000-%{classname}
|
|
|
|
%files pkix -f .mfiles-bcpkix
|
|
%license build/artifacts/jdk1.8/bcpkix-jdk18on-*/LICENSE.html
|
|
|
|
%files pg -f .mfiles-bcpg
|
|
%license build/artifacts/jdk1.8/bcpg-jdk18on-*/LICENSE.html
|
|
|
|
%files mail -f .mfiles-bcmail
|
|
%license build/artifacts/jdk1.8/bcmail-jdk18on-*/LICENSE.html
|
|
|
|
%files jmail -f .mfiles-bcjmail
|
|
%license build/artifacts/jdk1.8/bcjmail-jdk18on-*/LICENSE.html
|
|
|
|
%files tls -f .mfiles-bctls
|
|
%license build/artifacts/jdk1.8/bctls-jdk18on-*/LICENSE.html
|
|
|
|
%files util -f .mfiles-bcutil
|
|
%license build/artifacts/jdk1.8/bcutil-jdk18on-*/LICENSE.html
|
|
|
|
%files javadoc
|
|
%{_javadocdir}/%{name}
|
|
%license LICENSE.html
|
|
|
|
%changelog
|