Title: [1138] trunk/jopenssl/src/java/org/jruby/ext/openssl/x509store/X509Utils. java: Fix for JRUBY-2992: Bad cast in jruby-openssl X509Utils
Revision
1138
Author
headius
Date
2008-12-17 12:56:32 -0500 (Wed, 17 Dec 2008)

Log Message

Fix for JRUBY-2992: Bad cast in jruby-openssl X509Utils

Since it appears that the getName call may alternately return an X509Name or a DERSequence, I'm going with a modified version of Justin Coyne's patch that will handle either appropriately. Hopefully this will resolve all issues for everyone. I'd still love to know what I'm actually doing here...this is dart throwing for sure.

Modified Paths

Diff

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/x509store/X509Utils.java (1137 => 1138)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/x509store/X509Utils.java	2008-12-17 17:00:50 UTC (rev 1137)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/x509store/X509Utils.java	2008-12-17 17:56:32 UTC (rev 1138)
@@ -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;
                     }
                 }
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel

Reply via email to