[opensaml-java-xmltooling] Support for new bouncycastle
Marek Goldmann
goldmann at fedoraproject.org
Tue Mar 24 07:10:42 UTC 2015
commit a3db27d13084ac1595df431d3170590eeb9216b8
Author: Marek Goldmann <marek.goldmann at gmail.com>
Date: Tue Mar 24 08:10:24 2015 +0100
Support for new bouncycastle
0001-Support-for-new-bouncycastle.patch | 92 +++++++++++++++++++++++++++++++++
opensaml-java-xmltooling.spec | 18 ++++++-
2 files changed, 108 insertions(+), 2 deletions(-)
---
diff --git a/0001-Support-for-new-bouncycastle.patch b/0001-Support-for-new-bouncycastle.patch
new file mode 100644
index 0000000..fc1ce75
--- /dev/null
+++ b/0001-Support-for-new-bouncycastle.patch
@@ -0,0 +1,92 @@
+From 3198a38bfa40ae410f8109fa8a30f1e5499c2f11 Mon Sep 17 00:00:00 2001
+From: Marek Goldmann <marek.goldmann at gmail.com>
+Date: Tue, 24 Mar 2015 07:52:07 +0100
+Subject: [PATCH] Support for new bouncycastle
+
+---
+ .../org/opensaml/xml/security/x509/X509Util.java | 29 +++++++++++++---------
+ 1 file changed, 17 insertions(+), 12 deletions(-)
+
+diff --git a/src/main/java/org/opensaml/xml/security/x509/X509Util.java b/src/main/java/org/opensaml/xml/security/x509/X509Util.java
+index a0b340c..cf0fa0e 100644
+--- a/src/main/java/org/opensaml/xml/security/x509/X509Util.java
++++ b/src/main/java/org/opensaml/xml/security/x509/X509Util.java
+@@ -36,11 +36,12 @@ import javax.security.auth.x500.X500Principal;
+
+ import org.apache.commons.ssl.TrustMaterial;
+ import org.bouncycastle.asn1.ASN1InputStream;
+-import org.bouncycastle.asn1.DERObject;
++import org.bouncycastle.asn1.ASN1Primitive;
++import org.bouncycastle.asn1.ASN1Encoding;
+ import org.bouncycastle.asn1.DERObjectIdentifier;
+ import org.bouncycastle.asn1.DERSequence;
+ import org.bouncycastle.asn1.DERSet;
+-import org.bouncycastle.asn1.DERString;
++import org.bouncycastle.asn1.ASN1String;
+ import org.bouncycastle.asn1.x509.SubjectKeyIdentifier;
+ import org.bouncycastle.asn1.x509.X509Extensions;
+ import org.bouncycastle.x509.extension.SubjectKeyIdentifierStructure;
+@@ -144,14 +145,14 @@ public class X509Util {
+ List<String> commonNames = new LinkedList<String>();
+ try {
+ ASN1InputStream asn1Stream = new ASN1InputStream(dn.getEncoded());
+- DERObject parent = asn1Stream.readObject();
++ ASN1Primitive parent = asn1Stream.readObject();
+
+ String cn = null;
+- DERObject dnComponent;
++ ASN1Primitive dnComponent;
+ DERSequence grandChild;
+ DERObjectIdentifier componentId;
+ for (int i = 0; i < ((DERSequence) parent).size(); i++) {
+- dnComponent = ((DERSequence) parent).getObjectAt(i).getDERObject();
++ dnComponent = ((DERSequence) parent).getObjectAt(i).toASN1Primitive();
+ if (!(dnComponent instanceof DERSet)) {
+ log.debug("No DN components.");
+ continue;
+@@ -159,17 +160,17 @@ public class X509Util {
+
+ // Each DN component is a set
+ for (int j = 0; j < ((DERSet) dnComponent).size(); j++) {
+- grandChild = (DERSequence) ((DERSet) dnComponent).getObjectAt(j).getDERObject();
++ grandChild = (DERSequence) ((DERSet) dnComponent).getObjectAt(j).toASN1Primitive();
+
+ if (grandChild.getObjectAt(0) != null
+- && grandChild.getObjectAt(0).getDERObject() instanceof DERObjectIdentifier) {
+- componentId = (DERObjectIdentifier) grandChild.getObjectAt(0).getDERObject();
++ && grandChild.getObjectAt(0).toASN1Primitive() instanceof DERObjectIdentifier) {
++ componentId = (DERObjectIdentifier) grandChild.getObjectAt(0).toASN1Primitive();
+
+ if (CN_OID.equals(componentId.getId())) {
+ // OK, this dn component is actually a cn attribute
+ if (grandChild.getObjectAt(1) != null
+- && grandChild.getObjectAt(1).getDERObject() instanceof DERString) {
+- cn = ((DERString) grandChild.getObjectAt(1).getDERObject()).getString();
++ && grandChild.getObjectAt(1).toASN1Primitive() instanceof ASN1String) {
++ cn = ((ASN1String) grandChild.getObjectAt(1).toASN1Primitive()).getString();
+ commonNames.add(cn);
+ }
+ }
+@@ -434,7 +435,11 @@ public class X509Util {
+ || OTHER_ALT_NAME.equals(nameType)) {
+
+ // these have no defined representation, just return a DER-encoded byte[]
+- return ((DERObject) nameValue).getDEREncoded();
++ try {
++ return ((ASN1Primitive) nameValue).getEncoded(ASN1Encoding.DER);
++ } catch (java.io.IOException e) {
++ return null;
++ }
+ }
+
+ log.warn("Encountered unknown alt name type '{}', adding as-is", nameType);
+@@ -449,4 +454,4 @@ public class X509Util {
+ private static Logger getLogger() {
+ return LoggerFactory.getLogger(X509Util.class);
+ }
+-}
+\ No newline at end of file
++}
+--
+2.3.3
+
diff --git a/opensaml-java-xmltooling.spec b/opensaml-java-xmltooling.spec
index 000a3bd..4e102e4 100644
--- a/opensaml-java-xmltooling.spec
+++ b/opensaml-java-xmltooling.spec
@@ -1,6 +1,6 @@
Name: opensaml-java-xmltooling
Version: 1.3.4
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: Java XMLTooling library
License: ASL 2.0 and W3C
Group: Development/Libraries
@@ -11,6 +11,8 @@ URL: http://www.opensaml.org/
Source0: opensaml-java-xmltooling-%{version}.tar.xz
Source1: http://www.apache.org/licenses/LICENSE-2.0.txt
+Patch0: 0001-Support-for-new-bouncycastle.patch
+
BuildArch: noarch
BuildRequires: java-devel
@@ -25,7 +27,6 @@ BuildRequires: maven-resources-plugin
BuildRequires: maven-surefire-plugin
BuildRequires: not-yet-commons-ssl
BuildRequires: jcip-annotations
-BuildRequires: slf4j
BuildRequires: bouncycastle
BuildRequires: xml-security
BuildRequires: logback
@@ -38,6 +39,14 @@ BuildRequires: xml-commons-apis
BuildRequires: opensaml-java-parent
BuildRequires: xmlunit
+%if 0%{?fedora} >= 21
+BuildRequires: jcl-over-slf4j
+BuildRequires: jul-to-slf4j
+BuildRequires: log4j-over-slf4j
+%else
+BuildRequires: slf4j
+%endif
+
%description
Java XMLTooling is a low-level library that may be used to construct libraries
that allow developers to work with XML in a Java beans manner.
@@ -52,6 +61,8 @@ This package contains the API documentation for %{name}.
%prep
%setup -q
+%patch0 -p1
+
sed -i "s|\${xerces.groupId}|xerces|" pom.xml
sed -i "s|bcprov-jdk15|bcprov-jdk16|" pom.xml
@@ -76,6 +87,9 @@ sed -i "s|bcprov-jdk15|bcprov-jdk16|" pom.xml
%doc doc
%changelog
+* Tue Mar 24 2015 Marek Goldmann <mgoldman at redhat.com> - 1.3.4-9
+- Support for new bouncycastle
+
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.3.4-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
More information about the scm-commits
mailing list