Skip to content

Commit 604e3b2

Browse files
lampadkares
authored andcommitted
Account for ASN1Integers when handling serial numbers in X509Certs
1 parent e1e36cc commit 604e3b2

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/main/java/org/jruby/ext/openssl/X509Extension.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.bouncycastle.asn1.ASN1Encodable;
3737
import org.bouncycastle.asn1.ASN1EncodableVector;
3838
import org.bouncycastle.asn1.ASN1Encoding;
39+
import org.bouncycastle.asn1.ASN1Integer;
3940
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
4041
import org.bouncycastle.asn1.ASN1OctetString;
4142
import org.bouncycastle.asn1.ASN1Primitive;
@@ -456,7 +457,12 @@ public RubyString value(final ThreadContext context) {
456457
break;
457458
case 2 : // serial
458459
val.append(new byte[] { 's','e','r','i','a','l',':' });
459-
hexBytes( ((ASN1OctetString) obj).getOctets(), val );
460+
if (obj instanceof ASN1Integer) {
461+
hexBytes( obj.getEncoded(), val);
462+
}
463+
else {
464+
hexBytes( ((ASN1OctetString) obj ).getOctets(), val );
465+
}
460466
break;
461467
}
462468
}

0 commit comments

Comments
 (0)