[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