@@ -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