@@ -21,6 +21,36 @@ def test_encode_integer
21
21
assert_equal i , OpenSSL ::ASN1 . decode ( ai . to_der ) . value
22
22
end
23
23
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
+
24
54
def test_encode_nil
25
55
#Primitives raise TypeError, Constructives NoMethodError
26
56
0 commit comments