@@ -975,15 +975,15 @@ def decode0(data, depth = 0, offset = 0, &block)
975975 tag_class = TAG_CLASS_TYPES . key ( first_byte & 0xc0 ) || :UNIVERSAL
976976 is_constructed = first_byte . anybits? ( 0x20 )
977977 is_indefinite_length = length == 0x80 # indefinite length
978- id = first_byte & 0x1f
978+ number = first_byte & 0x1f
979979
980- no_id_idx = if id == 0x1f
981- id = 0
980+ no_id_idx = if number == 0x1f
981+ number = 0
982982 count = 1
983983 data [ 1 ..] . each_byte do |byte |
984984 count += 1
985985
986- id = ( id << 7 ) | ( byte & 0x7f )
986+ number = ( number << 7 ) | ( byte & 0x7f )
987987 break if byte . nobits? ( 0x80 )
988988 end
989989 length = data . getbyte ( count )
@@ -1011,14 +1011,14 @@ def decode0(data, depth = 0, offset = 0, &block)
10111011 hlength = no_id_idx + length_bytes
10121012
10131013 if is_constructed
1014- decode_cons ( tag_class , id , hlength , length , value , is_indefinite_length , depth , offset , &block )
1014+ decode_cons ( tag_class , number , hlength , length , value , is_indefinite_length , depth , offset , &block )
10151015 else
1016- decode_prim ( tag_class , id , hlength , length , value , depth , offset , &block )
1016+ decode_prim ( tag_class , number , hlength , length , value , depth , offset , &block )
10171017 end
10181018 end
10191019
10201020 # :nodoc:
1021- def decode_cons ( tag_class , id , hlength , length , data , is_indefinite_length , depth , offset , &block )
1021+ def decode_cons ( tag_class , number , hlength , length , data , is_indefinite_length , depth , offset , &block )
10221022 datalen = data . size
10231023
10241024 if is_indefinite_length
@@ -1033,7 +1033,7 @@ def decode_cons(tag_class, id, hlength, length, data, is_indefinite_length, dept
10331033 end
10341034 end
10351035
1036- traverse0 ( depth , offset , hlength , length == 0x80 ? 0 : length , true , tag_class , id , &block ) if block
1036+ traverse0 ( depth , offset , hlength , length == 0x80 ? 0 : length , true , tag_class , number , &block ) if block
10371037
10381038 offset += hlength
10391039
@@ -1066,16 +1066,16 @@ def decode_cons(tag_class, id, hlength, length, data, is_indefinite_length, dept
10661066 end
10671067
10681068 obj = if tag_class == :UNIVERSAL
1069- case id
1069+ case number
10701070 when SEQUENCE
1071- Sequence . new ( objs , id , nil , tag_class )
1071+ Sequence . new ( objs , number , nil , tag_class )
10721072 when SET
1073- Set . new ( objs , id , nil , tag_class )
1073+ Set . new ( objs , number , nil , tag_class )
10741074 else
1075- Constructive . new ( objs , id , nil , tag_class )
1075+ Constructive . new ( objs , number , nil , tag_class )
10761076 end
10771077 else
1078- ASN1Data . new ( objs , id , tag_class )
1078+ ASN1Data . new ( objs , number , tag_class )
10791079 end
10801080 obj . indefinite_length = is_indefinite_length
10811081
@@ -1091,16 +1091,16 @@ def decode_cons(tag_class, id, hlength, length, data, is_indefinite_length, dept
10911091 end
10921092
10931093 # :nodoc:
1094- def decode_prim ( tag_class , id , hlength , length , data , depth , offset , &block )
1094+ def decode_prim ( tag_class , number , hlength , length , data , depth , offset , &block )
10951095 remaining = data [ length ..-1 ]
10961096 data = data [ 0 , length ]
10971097
1098- traverse0 ( depth , offset , hlength , length , false , tag_class , id , &block ) if block
1098+ traverse0 ( depth , offset , hlength , length , false , tag_class , number , &block ) if block
10991099
11001100 offset += hlength
11011101
11021102 obj = if tag_class == :UNIVERSAL
1103- case id
1103+ case number
11041104 when EOC
11051105 if length != 0 || !data . empty?
11061106 raise ASN1Error , "too long"
@@ -1112,14 +1112,14 @@ def decode_prim(tag_class, id, hlength, length, data, depth, offset, &block)
11121112 elsif length > 1
11131113 raise ASN1Error , "too long"
11141114 else
1115- Boolean . new ( data != "\x00 " , id , nil , tag_class )
1115+ Boolean . new ( data != "\x00 " , number , nil , tag_class )
11161116 end
11171117 when INTEGER
1118- number = data . unpack ( 'C*' ) . reduce ( 0 ) { |len , b | ( len << 8 ) | b }
1118+ value = data . unpack ( 'C*' ) . reduce ( 0 ) { |len , b | ( len << 8 ) | b }
11191119 if data [ 0 ] . ord [ 7 ] == 1
1120- number -= ( 1 << ( 8 * length ) )
1120+ value -= ( 1 << ( 8 * length ) )
11211121 end
1122- OpenSSL ::ASN1 ::Integer . new ( number . to_bn , id , nil , tag_class )
1122+ OpenSSL ::ASN1 ::Integer . new ( value . to_bn , number , nil , tag_class )
11231123 when BIT_STRING
11241124 if data . empty?
11251125 raise ASN1Error , "string too short"
@@ -1129,17 +1129,17 @@ def decode_prim(tag_class, id, hlength, length, data, depth, offset, &block)
11291129 raise ASN1Error , "invalid bit string bits left"
11301130 end
11311131 str = data . byteslice ( 1 ..-1 ) || ""
1132- BitString . new ( str , id , nil , tag_class ) . tap do |b |
1132+ BitString . new ( str , number , nil , tag_class ) . tap do |b |
11331133 b . unused_bits = unused
11341134 end
11351135 when OCTET_STRING
1136- OctetString . new ( data , id , nil , tag_class )
1136+ OctetString . new ( data , number , nil , tag_class )
11371137 when NULL
11381138 unless length . zero?
11391139 raise ASN1Error , "null is wrong length"
11401140 end
11411141
1142- Null . new ( nil , id , nil , tag_class )
1142+ Null . new ( nil , number , nil , tag_class )
11431143 when OBJECT
11441144 top , *codes = data . unpack ( "w*" )
11451145
@@ -1151,7 +1151,7 @@ def decode_prim(tag_class, id, hlength, length, data, depth, offset, &block)
11511151 raise ASN1Error , "invalid object encoding"
11521152 end
11531153
1154- obj = ObjectId . new ( codes . join ( "." ) , id , nil , tag_class )
1154+ obj = ObjectId . new ( codes . join ( "." ) , number , nil , tag_class )
11551155
11561156 if ( sn = obj . sn )
11571157 # on decoding, if there's a short name in the table, then
@@ -1163,64 +1163,64 @@ def decode_prim(tag_class, id, hlength, length, data, depth, offset, &block)
11631163 # when 8 # EXTERNAL
11641164 # when 9 # REAL
11651165 when ENUMERATED
1166- number = data . unpack ( 'C*' ) . reduce ( 0 ) { |len , b | ( len << 8 ) | b }
1166+ value = data . unpack ( 'C*' ) . reduce ( 0 ) { |len , b | ( len << 8 ) | b }
11671167 if data [ 0 ] . ord [ 7 ] == 1
1168- number -= ( 1 << ( 8 * length ) )
1168+ value -= ( 1 << ( 8 * length ) )
11691169 end
1170- OpenSSL ::ASN1 ::Enumerated . new ( number . to_bn , id , nil , tag_class )
1170+ OpenSSL ::ASN1 ::Enumerated . new ( value . to_bn , number , nil , tag_class )
11711171 when UTF8STRING
1172- UTF8String . new ( data , id , nil , tag_class )
1172+ UTF8String . new ( data , number , nil , tag_class )
11731173 when NUMERICSTRING
1174- NumericString . new ( data , id , nil , tag_class )
1174+ NumericString . new ( data , number , nil , tag_class )
11751175 when PRINTABLESTRING
1176- PrintableString . new ( data , id , nil , tag_class )
1176+ PrintableString . new ( data , number , nil , tag_class )
11771177 when T61STRING
1178- T61String . new ( data , id , nil , tag_class )
1178+ T61String . new ( data , number , nil , tag_class )
11791179 when VIDEOTEXSTRING
1180- VideotexString . new ( data , id , nil , tag_class )
1180+ VideotexString . new ( data , number , nil , tag_class )
11811181 when IA5STRING
1182- IA5String . new ( data , id , nil , tag_class )
1182+ IA5String . new ( data , number , nil , tag_class )
11831183 when UTCTIME
11841184 unless ( c = /\A (?<year>\d {2})(?<month>\d {2})(?<day>\d {2})(?<hour>\d {2})(?<min>\d {2})(?<sec>\d {2})Z\z / . match ( data ) )
11851185 raise ASN1Error , "too long"
11861186 end
11871187 year = c [ :year ] . to_i
11881188 year = year > 49 ? 1900 + year : 2000 + year
11891189 time = Time . utc ( year , c [ :month ] , c [ :day ] , c [ :hour ] , c [ :min ] , c [ :sec ] )
1190- UTCTime . new ( time , id , nil , tag_class )
1190+ UTCTime . new ( time , number , nil , tag_class )
11911191 when GENERALIZEDTIME
11921192 unless ( c = /\A (?<year>\d {4})(?<month>\d {2})(?<day>\d {2})(?<hour>\d {2})(?<min>\d {2})(?<sec>\d {2})Z\z / . match ( data ) )
11931193 raise ASN1Error , "too long"
11941194 end
11951195 time = Time . utc ( c [ :year ] , c [ :month ] , c [ :day ] , c [ :hour ] , c [ :min ] , c [ :sec ] )
1196- GeneralizedTime . new ( time , id , nil , tag_class )
1196+ GeneralizedTime . new ( time , number , nil , tag_class )
11971197 when GRAPHICSTRING
1198- GraphicString . new ( data , id , nil , tag_class )
1198+ GraphicString . new ( data , number , nil , tag_class )
11991199 when ISO64STRING
1200- ISO64String . new ( data , id , nil , tag_class )
1200+ ISO64String . new ( data , number , nil , tag_class )
12011201 when GENERALSTRING
1202- GeneralString . new ( data , id , nil , tag_class )
1202+ GeneralString . new ( data , number , nil , tag_class )
12031203 when UNIVERSALSTRING
1204- UniversalString . new ( data , id , nil , tag_class )
1204+ UniversalString . new ( data , number , nil , tag_class )
12051205 when BMPSTRING
1206- BMPString . new ( data , id , nil , tag_class )
1206+ BMPString . new ( data , number , nil , tag_class )
12071207 else
1208- ASN1Data . new ( data , id , tag_class )
1208+ ASN1Data . new ( data , number , tag_class )
12091209 end
12101210 else
1211- ASN1Data . new ( data , id , tag_class )
1211+ ASN1Data . new ( data , number , tag_class )
12121212 end
12131213
12141214 return obj , remaining
12151215 end
12161216
1217- def traverse0 ( depth , offset , hlength , length , is_constructed , tag_class , id , &block )
1217+ def traverse0 ( depth , offset , hlength , length , is_constructed , tag_class , number , &block )
12181218 elems = [
12191219 depth , offset ,
12201220 hlength , length ,
12211221 is_constructed ,
12221222 tag_class ,
1223- id
1223+ number
12241224 ]
12251225
12261226 arity = block . arity
0 commit comments