File tree Expand file tree Collapse file tree
main/java/org/jruby/ext/openssl Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1683,7 +1683,7 @@ private static BigInteger bigIntegerValue(final IRubyObject val) {
16831683 if ( val instanceof RubyInteger ) { // RubyBignum
16841684 return ((RubyInteger ) val ).getBigIntegerValue ();
16851685 }
1686- if ( val instanceof BN ) ((BN ) val ).getValue ();
1686+ if ( val instanceof BN ) return ((BN ) val ).getValue ();
16871687 return new BigInteger ( val .asString ().getBytes () );
16881688 }
16891689
Original file line number Diff line number Diff line change @@ -505,6 +505,25 @@ def test_decode_application_specific
505505# assert_equal raw, asn1.to_der
506506 end
507507
508+
509+ def test_encode_der_integer_wrapped
510+ asn1 = OpenSSL ::ASN1 ::Sequence ( [ OpenSSL ::ASN1 ::Integer ( 42 ) , OpenSSL ::ASN1 ::Integer ( 84 ) ] )
511+
512+ der = "0\x06 \x02 \x01 *\x02 \x01 T"
513+ assert_equal der , asn1 . to_der
514+
515+ asn1 = OpenSSL ::ASN1 ::Sequence ( [ OpenSSL ::ASN1 ::Integer ( OpenSSL ::BN . new ( 42 ) ) , OpenSSL ::ASN1 ::Integer ( OpenSSL ::BN . new ( 84 ) ) ] )
516+
517+ der = "0\x06 \x02 \x01 *\x02 \x01 T"
518+ assert_equal der , asn1 . to_der
519+
520+ i = OpenSSL ::ASN1 ::Integer ( OpenSSL ::BN . new ( '1234567890' ) )
521+ assert_equal 1234567890 , i . value . to_i
522+
523+ i = OpenSSL ::ASN1 ::Integer ( '12345678901234567890' )
524+ assert_equal 12345678901234567890 , i . value . to_i
525+ end
526+
508527 private
509528
510529 def assert_universal ( tag , asn1 , inf_len = false )
You can’t perform that action at this time.
0 commit comments