Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Index: src/java/org/jruby/ext/openssl/x509store/X509Utils.java
===================================================================
--- src/java/org/jruby/ext/openssl/x509store/X509Utils.java	(revision 1135)
+++ src/java/org/jruby/ext/openssl/x509store/X509Utils.java	(working copy)
@@ -32,6 +32,7 @@
 import org.bouncycastle.asn1.ASN1InputStream;
 import org.bouncycastle.asn1.ASN1OctetString;
 import org.bouncycastle.asn1.ASN1Sequence;
+import org.bouncycastle.asn1.DEREncodable;
 import org.bouncycastle.asn1.DEROctetString;
 import org.bouncycastle.asn1.DERSequence;
 import org.bouncycastle.asn1.DERTaggedObject;
@@ -250,7 +251,14 @@
                 X509Name nm = null;
                 for(int i=0;i<gens.length;i++) {
                     if(gens[i].getTagNo() == GeneralName.directoryName) {
-                        nm = (X509Name)gens[i].getName();
+                        DEREncodable nameTmp = gens[i].getName();
+                        if (nameTmp instanceof X509Name) {
+                            nm = (X509Name)nameTmp;
+                        } else if (nameTmp instanceof DERSequence) {
+                            nm = new X509Name((DERSequence)nameTmp);
+                        } else {
+                            throw new RuntimeException("unknown name type in X509Utils: " + nameTmp);
+                        }
                         break;
                     }
                 }