Skip to content

Commit 8e5e6ef

Browse files
to_der on ASN1Data should convert ruby strings into java strings before encoding
1 parent 8f62b4a commit 8e5e6ef

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

src/test/ruby/test_asn1.rb

+31-1
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,36 @@ def test_null
253253
}
254254
end
255255

256+
def test_encode_asn1_data
257+
ai = OpenSSL::ASN1::ASN1Data.new(i = "bla", 0, :APPLICATION)
258+
ai2 = OpenSSL::ASN1.decode(ai.to_der)
259+
assert_equal :APPLICATION, ai2.tag_class
260+
assert_equal 0, ai2.tag
261+
assert_equal i, ai2.value
262+
263+
ai = OpenSSL::ASN1::ASN1Data.new(i = "bla", 4, :UNIVERSAL)
264+
ai2 = OpenSSL::ASN1.decode(ai.to_der)
265+
assert_equal :UNIVERSAL, ai2.tag_class
266+
assert_equal 4, ai2.tag
267+
assert_equal i, ai2.value
268+
269+
ai = OpenSSL::ASN1::ASN1Data.new(i = ["bla"], 0, :APPLICATION)
270+
ai2 = OpenSSL::ASN1.decode(ai.to_der)
271+
assert_equal :APPLICATION, ai2.tag_class
272+
assert_equal 0, ai2.tag
273+
assert_equal "bla", ai2.value
274+
275+
ai = OpenSSL::ASN1::ASN1Data.new(i = ["bla", "bla"], 0, :APPLICATION)
276+
ai2 = OpenSSL::ASN1.decode(ai.to_der)
277+
assert_equal :APPLICATION, ai2.tag_class
278+
assert_equal 0, ai2.tag
279+
assert_equal "blabla", ai2.value
280+
281+
assert_raise(ArgumentError) { OpenSSL::ASN1::ASN1Data.new(1).to_der }
282+
assert_raise("no implicit conversion of Integer into String") { OpenSSL::ASN1::ASN1Data.new(1, 0, :APPLICATION).to_der }
283+
assert_raise("no implicit conversion of Integer into String") { OpenSSL::ASN1::ASN1Data.new(1, 0, :CONTEXT_SPECIFIC).to_der }
284+
end
285+
256286
def test_encode_nil
257287
#Primitives raise TypeError, Constructives NoMethodError
258288

@@ -1152,7 +1182,7 @@ def test_decode
11521182
# This is from the upstream MRI tests, might be superseded by `test_bit_string_infinite_length`?
11531183
def test_bitstring
11541184
# TODO: Import Issue
1155-
# fails <nil> expected but was <0>
1185+
# fails <nil> expected but was <0>
11561186
#encode_decode_test B(%w{ 03 01 00 }), OpenSSL::ASN1::BitString.new(B(%w{}))
11571187
# TODO: Import Issue
11581188
# fails with <nil> expected but was <0>

0 commit comments

Comments
 (0)