@@ -680,30 +680,6 @@ to_der_internal(VALUE self, int constructed, int indef_len, VALUE body)
680680}
681681
682682static VALUE ossl_asn1prim_to_der (VALUE );
683- static VALUE ossl_asn1cons_to_der (VALUE );
684- /*
685- * call-seq:
686- * asn1.to_der => DER-encoded String
687- *
688- * Encodes this ASN1Data into a DER-encoded String value. The result is
689- * DER-encoded except for the possibility of indefinite length forms.
690- * Indefinite length forms are not allowed in strict DER, so strictly speaking
691- * the result of such an encoding would be a BER-encoding.
692- */
693- static VALUE
694- ossl_asn1data_to_der (VALUE self )
695- {
696- VALUE value = ossl_asn1_get_value (self );
697-
698- if (rb_obj_is_kind_of (value , rb_cArray ))
699- return ossl_asn1cons_to_der (self );
700- else {
701- if (RTEST (ossl_asn1_get_indefinite_length (self )))
702- ossl_raise (eASN1Error , "indefinite length form cannot be used " \
703- "with primitive encoding" );
704- return ossl_asn1prim_to_der (self );
705- }
706- }
707683
708684static VALUE
709685int_ossl_asn1_decode0_prim (unsigned char * * pp , long length , long hlen , int tag ,
@@ -1012,11 +988,6 @@ ossl_asn1_decode_all(VALUE self, VALUE obj)
1012988 return ary ;
1013989}
1014990
1015- static VALUE
1016- ossl_asn1eoc_to_der (VALUE self )
1017- {
1018- return rb_str_new ("\0\0" , 2 );
1019- }
1020991
1021992/*
1022993 * call-seq:
@@ -1065,44 +1036,6 @@ ossl_asn1prim_to_der(VALUE self)
10651036 return to_der_internal (self , 0 , 0 , rb_str_drop_bytes (str , alllen - bodylen ));
10661037}
10671038
1068- /*
1069- * call-seq:
1070- * asn1.to_der => DER-encoded String
1071- *
1072- * See ASN1Data#to_der for details.
1073- */
1074- static VALUE
1075- ossl_asn1cons_to_der (VALUE self )
1076- {
1077- VALUE ary , str ;
1078- long i ;
1079- int indef_len ;
1080-
1081- indef_len = RTEST (ossl_asn1_get_indefinite_length (self ));
1082- ary = rb_convert_type (ossl_asn1_get_value (self ), T_ARRAY , "Array" , "to_a" );
1083- str = rb_str_new (NULL , 0 );
1084- for (i = 0 ; i < RARRAY_LEN (ary ); i ++ ) {
1085- VALUE item = RARRAY_AREF (ary , i );
1086-
1087- if (indef_len && rb_obj_is_kind_of (item , cASN1EndOfContent )) {
1088- if (i != RARRAY_LEN (ary ) - 1 )
1089- ossl_raise (eASN1Error , "illegal EOC octets in value" );
1090-
1091- /*
1092- * EOC is not really part of the content, but we required to add one
1093- * at the end in the past.
1094- */
1095- break ;
1096- }
1097-
1098- item = ossl_to_der_if_possible (item );
1099- StringValue (item );
1100- rb_str_append (str , item );
1101- }
1102-
1103- return to_der_internal (self , 1 , indef_len , str );
1104- }
1105-
11061039/*
11071040 * call-seq:
11081041 * OpenSSL::ASN1::ObjectId.register(object_id, short_name, long_name)
@@ -1523,7 +1456,6 @@ Init_ossl_asn1(void)
15231456 * puts int2.value # => 1
15241457 */
15251458 cASN1Data = rb_define_class_under (mASN1 , "ASN1Data" , rb_cObject );
1526- rb_define_method (cASN1Data , "to_der" , ossl_asn1data_to_der , 0 );
15271459
15281460 /* Document-class: OpenSSL::ASN1::Primitive
15291461 *
@@ -1590,7 +1522,7 @@ Init_ossl_asn1(void)
15901522 * prim_zero_tagged_explicit = <class>.new(value, 0, :EXPLICIT)
15911523 */
15921524 cASN1Primitive = rb_define_class_under (mASN1 , "Primitive" , cASN1Data );
1593- rb_define_method (cASN1Primitive , "to_der" , ossl_asn1prim_to_der , 0 );
1525+ // rb_define_method(cASN1Primitive, "to_der", ossl_asn1prim_to_der, 0);
15941526
15951527 /* Document-class: OpenSSL::ASN1::Constructive
15961528 *
@@ -1620,7 +1552,6 @@ Init_ossl_asn1(void)
16201552 * set = OpenSSL::ASN1::Set.new( [ int, str ] )
16211553 */
16221554 cASN1Constructive = rb_define_class_under (mASN1 ,"Constructive" , cASN1Data );
1623- rb_define_method (cASN1Constructive , "to_der" , ossl_asn1cons_to_der , 0 );
16241555
16251556#define OSSL_ASN1_DEFINE_CLASS (name , super ) \
16261557do{\
@@ -1670,7 +1601,9 @@ do{\
16701601 rb_define_alias (cASN1ObjectId , "long_name" , "ln" );
16711602 rb_define_method (cASN1ObjectId , "==" , ossl_asn1obj_eq , 1 );
16721603
1673- rb_define_method (cASN1EndOfContent , "to_der" , ossl_asn1eoc_to_der , 0 );
1604+ // rb_define_method(cASN1ObjectId, "to_der", ossl_asn1prim_to_der, 0);
1605+ rb_define_method (cASN1UTCTime , "to_der" , ossl_asn1prim_to_der , 0 );
1606+ rb_define_method (cASN1GeneralizedTime , "to_der" , ossl_asn1prim_to_der , 0 );
16741607
16751608 class_tag_map = rb_hash_new ();
16761609 rb_hash_aset (class_tag_map , cASN1EndOfContent , INT2NUM (V_ASN1_EOC ));
0 commit comments