Skip to content

Commit 524e8b8

Browse files
to_der on ASN1Data should convert ruby strings into java strings before encoding
1 parent 94aa9f4 commit 524e8b8

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/test/ruby/test_asn1.rb

+30
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,36 @@ def test_encode_integer
2121
assert_equal i, OpenSSL::ASN1.decode(ai.to_der).value
2222
end
2323

24+
def test_encode_asn1_data
25+
ai = OpenSSL::ASN1::ASN1Data.new(i = "bla", 0, :APPLICATION)
26+
ai2 = OpenSSL::ASN1.decode(ai.to_der)
27+
assert_equal :APPLICATION, ai2.tag_class
28+
assert_equal 0, ai2.tag
29+
assert_equal i, ai2.value
30+
31+
ai = OpenSSL::ASN1::ASN1Data.new(i = "bla", 4, :UNIVERSAL)
32+
ai2 = OpenSSL::ASN1.decode(ai.to_der)
33+
assert_equal :UNIVERSAL, ai2.tag_class
34+
assert_equal 4, ai2.tag
35+
assert_equal i, ai2.value
36+
37+
ai = OpenSSL::ASN1::ASN1Data.new(i = ["bla"], 0, :APPLICATION)
38+
ai2 = OpenSSL::ASN1.decode(ai.to_der)
39+
assert_equal :APPLICATION, ai2.tag_class
40+
assert_equal 0, ai2.tag
41+
assert_equal "bla", ai2.value
42+
43+
ai = OpenSSL::ASN1::ASN1Data.new(i = ["bla", "bla"], 0, :APPLICATION)
44+
ai2 = OpenSSL::ASN1.decode(ai.to_der)
45+
assert_equal :APPLICATION, ai2.tag_class
46+
assert_equal 0, ai2.tag
47+
assert_equal "blabla", ai2.value
48+
49+
assert_raise(ArgumentError) { OpenSSL::ASN1::ASN1Data.new(1).to_der }
50+
assert_raise("no implicit conversion of Integer into String") { OpenSSL::ASN1::ASN1Data.new(1, 0, :APPLICATION).to_der }
51+
assert_raise("no implicit conversion of Integer into String") { OpenSSL::ASN1::ASN1Data.new(1, 0, :CONTEXT_SPECIFIC).to_der }
52+
end
53+
2454
def test_encode_nil
2555
#Primitives raise TypeError, Constructives NoMethodError
2656

0 commit comments

Comments
 (0)