packetgen 2.8.6 → 2.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/packetgen/header/bootp.rb +4 -11
- data/lib/packetgen/header/dns.rb +13 -17
- data/lib/packetgen/header/eap/tls.rb +7 -15
- data/lib/packetgen/header/eap/ttls.rb +10 -16
- data/lib/packetgen/header/ike.rb +2 -12
- data/lib/packetgen/header/ike/cert.rb +0 -18
- data/lib/packetgen/header/ike/certreq.rb +4 -12
- data/lib/packetgen/header/ike/notify.rb +5 -11
- data/lib/packetgen/header/ip.rb +12 -13
- data/lib/packetgen/header/ipv6.rb +10 -14
- data/lib/packetgen/header/snmp.rb +12 -12
- data/lib/packetgen/header/tcp.rb +12 -16
- data/lib/packetgen/types/fields.rb +12 -3
- data/lib/packetgen/version.rb +1 -1
- data/packetgen.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9619d169e7a064e415e479dd208f15339f59700baf805bbc7a79437967c1cd5
|
4
|
+
data.tar.gz: 4d1ceeeee51b56dab91331e43672b7fe15ddeb87971bb36bc5670399f2e55080
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0a27dd879ec6c9362bade001b6f6701686f80a589d2dd75478f5894dbaf8bd5b766f00f692437dca4ecbf96ceb830d4fcfeaef2e2354bccec7addd76f4b7ab8
|
7
|
+
data.tar.gz: bfb2b7de3b541c85cd1d367b4d8976d78d47c9872cabafd46cba12751926128f6a664c687520b28b7224af8439829219f9f6ad5a950de5878c9ee6f1d9b14243
|
@@ -132,18 +132,11 @@ module PacketGen
|
|
132
132
|
|
133
133
|
# @return [String]
|
134
134
|
def inspect
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
str << if (attr == :chaddr) && (self.hlen == 6)
|
141
|
-
Inspect.inspect_attribute(attr, Eth::MacAddr.new.read(self[:chaddr][0, 6]), 1)
|
142
|
-
else
|
143
|
-
Inspect.inspect_attribute(attr, self[attr], 1)
|
144
|
-
end
|
135
|
+
super do |attr|
|
136
|
+
next unless (attr == :chaddr) && (self.hlen == 6)
|
137
|
+
|
138
|
+
Inspect.inspect_attribute(attr, Eth::MacAddr.new.read(self[:chaddr][0, 6]))
|
145
139
|
end
|
146
|
-
str
|
147
140
|
end
|
148
141
|
|
149
142
|
# Invert opcode, if known
|
data/lib/packetgen/header/dns.rb
CHANGED
@@ -250,24 +250,20 @@ module PacketGen
|
|
250
250
|
|
251
251
|
# @return [String]
|
252
252
|
def inspect
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
else
|
267
|
-
str << Inspect.inspect_attribute(attr, self[attr], 1)
|
268
|
-
end
|
253
|
+
super do |attr|
|
254
|
+
next unless attr == :u16
|
255
|
+
|
256
|
+
flags = %i[qr aa tc rd ra].select! { |flag| send "#{flag}?" }
|
257
|
+
.map(&:to_s).join(',')
|
258
|
+
str = Inspect.shift_level
|
259
|
+
str << Inspect::FMT_ATTR % ['Flags', 'flags', flags]
|
260
|
+
opcode = '%-16s (%u)' % [OPCODES.key(self.opcode), self.opcode]
|
261
|
+
str << Inspect.shift_level
|
262
|
+
str << Inspect::FMT_ATTR % ['Integer', 'opcode', opcode]
|
263
|
+
rcode = '%-16s (%u)' % [RCODES.key(self.rcode), self.rcode]
|
264
|
+
str << Inspect.shift_level
|
265
|
+
str << Inspect::FMT_ATTR % ['Integer', 'rcode', rcode]
|
269
266
|
end
|
270
|
-
str
|
271
267
|
end
|
272
268
|
end
|
273
269
|
|
@@ -47,23 +47,15 @@ module PacketGen
|
|
47
47
|
|
48
48
|
# @return [String]
|
49
49
|
def inspect
|
50
|
-
|
51
|
-
|
52
|
-
next if attr == :body
|
53
|
-
next unless present?(attr)
|
50
|
+
super do |attr|
|
51
|
+
next unless attr == :flags
|
54
52
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
str << Inspect::FMT_ATTR % [self[attr].class.to_s.sub(/.*::/, ''),
|
61
|
-
attr, value]
|
62
|
-
else
|
63
|
-
str << Inspect.inspect_attribute(attr, self[attr], 1)
|
64
|
-
end
|
53
|
+
str = Inspect.shift_level
|
54
|
+
value = %i[l m s].map { |f| send("#{f}?") ? f.to_s : '.' }.join
|
55
|
+
value = '%-16s (0x%02x)' % [value, self.flags]
|
56
|
+
str << Inspect::FMT_ATTR % [self[attr].class.to_s.sub(/.*::/, ''),
|
57
|
+
attr, value]
|
65
58
|
end
|
66
|
-
str
|
67
59
|
end
|
68
60
|
end
|
69
61
|
end
|
@@ -51,24 +51,18 @@ module PacketGen
|
|
51
51
|
|
52
52
|
# @return [String]
|
53
53
|
def inspect
|
54
|
-
|
55
|
-
|
56
|
-
next if attr == :body
|
57
|
-
next unless is_present?(attr)
|
54
|
+
super do |attr|
|
55
|
+
next unless attr == :flags
|
58
56
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
else
|
68
|
-
str << Inspect.inspect_attribute(attr, self[attr], 1)
|
69
|
-
end
|
57
|
+
shift = Inspect.shift_level
|
58
|
+
str = shift.dup
|
59
|
+
value = %i[l m s].map { |f| send("#{f}?") ? f.to_s : '.' }.join
|
60
|
+
value = '%-16s (0x%02x)' % [value, self.flags]
|
61
|
+
str << Inspect::FMT_ATTR % [self[attr].class.to_s.sub(/.*::/, ''),
|
62
|
+
attr, value]
|
63
|
+
str << shift
|
64
|
+
str << Inspect::FMT_ATTR % ['', 'version', self.version]
|
70
65
|
end
|
71
|
-
str
|
72
66
|
end
|
73
67
|
end
|
74
68
|
end
|
data/lib/packetgen/header/ike.rb
CHANGED
@@ -189,28 +189,18 @@ module PacketGen
|
|
189
189
|
|
190
190
|
# @return [String]
|
191
191
|
def inspect
|
192
|
-
|
193
|
-
fields.each do |attr|
|
194
|
-
next if attr == :body
|
195
|
-
|
192
|
+
super do |attr|
|
196
193
|
case attr
|
197
194
|
when :flags
|
198
195
|
str_flags = ''.dup
|
199
196
|
%w[r v i].each do |flag|
|
200
197
|
str_flags << (send("flag_#{flag}?") ? flag.upcase : '.')
|
201
198
|
end
|
202
|
-
str
|
199
|
+
str = Inspect.shift_level
|
203
200
|
str << Inspect::FMT_ATTR % [self[attr].class.to_s.sub(/.*::/, ''), attr,
|
204
201
|
str_flags]
|
205
|
-
when :exchange_type
|
206
|
-
str << Inspect.shift_level(2)
|
207
|
-
str << Inspect::FMT_ATTR % [self[attr].class.to_s.sub(/.*::/, ''), attr,
|
208
|
-
human_exchange_type]
|
209
|
-
else
|
210
|
-
str << Inspect.inspect_attribute(attr, self[attr], 2)
|
211
202
|
end
|
212
203
|
end
|
213
|
-
str
|
214
204
|
end
|
215
205
|
|
216
206
|
# Toggle +I+ and +R+ flags.
|
@@ -68,24 +68,6 @@ module PacketGen
|
|
68
68
|
def human_encoding
|
69
69
|
self[:encoding].to_human
|
70
70
|
end
|
71
|
-
|
72
|
-
# @return [String]
|
73
|
-
def inspect
|
74
|
-
str = Inspect.dashed_line(self.class, 1)
|
75
|
-
fields.each do |attr|
|
76
|
-
case attr
|
77
|
-
when :body
|
78
|
-
next
|
79
|
-
when :encoding
|
80
|
-
str << Inspect.shift_level(1)
|
81
|
-
str << Inspect::FMT_ATTR % [self[attr].class.to_s.sub(/.*::/, ''), attr,
|
82
|
-
human_encoding]
|
83
|
-
else
|
84
|
-
str << Inspect.inspect_attribute(attr, self[attr], 1)
|
85
|
-
end
|
86
|
-
end
|
87
|
-
str
|
88
|
-
end
|
89
71
|
end
|
90
72
|
end
|
91
73
|
|
@@ -52,19 +52,11 @@ module PacketGen
|
|
52
52
|
|
53
53
|
# @return [String]
|
54
54
|
def inspect
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
next
|
60
|
-
when :content
|
61
|
-
str << Inspect.shift_level(1)
|
62
|
-
str << Inspect::FMT_ATTR % ['hashes', :content, human_content]
|
63
|
-
else
|
64
|
-
str << Inspect.inspect_attribute(attr, self[attr], 1)
|
65
|
-
end
|
55
|
+
super do |attr|
|
56
|
+
next unless attr == :content
|
57
|
+
str = Inspect.shift_level
|
58
|
+
str << Inspect::FMT_ATTR % ['hashes', :content, human_content]
|
66
59
|
end
|
67
|
-
str
|
68
60
|
end
|
69
61
|
end
|
70
62
|
end
|
@@ -160,19 +160,13 @@ module PacketGen
|
|
160
160
|
|
161
161
|
# @return [String]
|
162
162
|
def inspect
|
163
|
-
|
164
|
-
|
165
|
-
next if attr == :body
|
163
|
+
super do |attr|
|
164
|
+
next unless attr == :protocol
|
166
165
|
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
send("human_#{attr}")]
|
171
|
-
else
|
172
|
-
str << Inspect.inspect_attribute(attr, self[attr], 1)
|
173
|
-
end
|
166
|
+
str = Inspect.shift_level
|
167
|
+
str << Inspect::FMT_ATTR % [self[attr].class.to_s.sub(/.*::/, ''), attr,
|
168
|
+
human_protocol]
|
174
169
|
end
|
175
|
-
str
|
176
170
|
end
|
177
171
|
end
|
178
172
|
end
|
data/lib/packetgen/header/ip.rb
CHANGED
@@ -235,26 +235,25 @@ module PacketGen
|
|
235
235
|
|
236
236
|
# @return [String]
|
237
237
|
def inspect
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
238
|
+
super do |attr|
|
239
|
+
case attr
|
240
|
+
when :u8
|
241
|
+
shift = Inspect.shift_level
|
242
|
+
str = Inspect.inspect_attribute(attr, self[attr])
|
243
|
+
str << shift << Inspect::FMT_ATTR % ['', 'version', version]
|
244
|
+
str << shift << Inspect::FMT_ATTR % ['', 'ihl', ihl]
|
245
|
+
when :frag
|
246
|
+
shift = Inspect.shift_level
|
247
|
+
str = Inspect.inspect_attribute(attr, self[attr])
|
248
248
|
flags = flag_rsv? ? %w[RSV] : []
|
249
249
|
flags << 'DF' if flag_df?
|
250
250
|
flags << 'MF' if flag_mf?
|
251
251
|
flags_str = flags.empty? ? 'none' : flags.join(',')
|
252
|
-
str << shift
|
252
|
+
str << shift << Inspect::FMT_ATTR % ['', 'flags', flags_str]
|
253
253
|
foff = Inspect.int_dec_hex(fragment_offset, 4)
|
254
|
-
str << shift
|
254
|
+
str << shift << Inspect::FMT_ATTR % ['', 'frag_offset', foff]
|
255
255
|
end
|
256
256
|
end
|
257
|
-
str
|
258
257
|
end
|
259
258
|
|
260
259
|
# Check version field
|
@@ -137,21 +137,17 @@ module PacketGen
|
|
137
137
|
|
138
138
|
# @return [String]
|
139
139
|
def inspect
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
fl_value = Inspect.int_dec_hex(flow_label, 5)
|
151
|
-
str << shift + Inspect::FMT_ATTR % ['', 'flow_label', fl_value]
|
152
|
-
end
|
140
|
+
super do |attr|
|
141
|
+
next unless attr == :u32
|
142
|
+
|
143
|
+
str = Inspect.inspect_attribute(attr, self[attr])
|
144
|
+
shift = Inspect.shift_level
|
145
|
+
str << shift + Inspect::FMT_ATTR % ['', 'version', version]
|
146
|
+
tclass = Inspect.int_dec_hex(traffic_class, 2)
|
147
|
+
str << shift + Inspect::FMT_ATTR % ['', 'tclass', tclass]
|
148
|
+
fl_value = Inspect.int_dec_hex(flow_label, 5)
|
149
|
+
str << shift + Inspect::FMT_ATTR % ['', 'flow_label', fl_value]
|
153
150
|
end
|
154
|
-
str
|
155
151
|
end
|
156
152
|
|
157
153
|
# Check version field
|
@@ -113,7 +113,7 @@ module PacketGen
|
|
113
113
|
sequence :pdu,
|
114
114
|
implicit: SNMP::PDU_GET, constructed: true,
|
115
115
|
content: [integer(:id, value: 0),
|
116
|
-
|
116
|
+
integer(:error, value: 0, enum: ERRORS),
|
117
117
|
integer(:error_index, value: 0),
|
118
118
|
model(:varbindlist, VariableBindings)]
|
119
119
|
end
|
@@ -162,13 +162,13 @@ module PacketGen
|
|
162
162
|
implicit: SNMP::PDU_TRAPv1, constructed: true,
|
163
163
|
content: [objectid(:enterprise),
|
164
164
|
octet_string(:agent_addr),
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
165
|
+
integer(:generic_trap, enum: { 'cold_start' => 0,
|
166
|
+
'warm_start' => 1,
|
167
|
+
'link_down' => 2,
|
168
|
+
'link_up' => 3,
|
169
|
+
'auth_failure' => 4,
|
170
|
+
'egp_neighbor_loss' => 5,
|
171
|
+
'specific' => 6 }),
|
172
172
|
integer(:specific_trap),
|
173
173
|
integer(:timestamp),
|
174
174
|
model(:varbindlist, VariableBindings)]
|
@@ -243,8 +243,8 @@ module PacketGen
|
|
243
243
|
end
|
244
244
|
|
245
245
|
sequence :message,
|
246
|
-
content: [
|
247
|
-
|
246
|
+
content: [integer(:version, value: 'v2c',
|
247
|
+
enum: { 'v1' => 0, 'v2c' => 1, 'v2' => 2, 'v3' => 3 }),
|
248
248
|
octet_string(:community, value: 'public'),
|
249
249
|
model(:data, PDUs)]
|
250
250
|
|
@@ -280,13 +280,13 @@ module PacketGen
|
|
280
280
|
|
281
281
|
def inspect
|
282
282
|
str = super
|
283
|
-
str << Inspect.shift_level
|
283
|
+
str << Inspect.shift_level
|
284
284
|
if self[:data].chosen.nil?
|
285
285
|
str << Inspect::FMT_ATTR % [self[:data].type, :data, '']
|
286
286
|
else
|
287
287
|
data = self[:data]
|
288
288
|
str << Inspect::FMT_ATTR % [data.type, :data, data.chosen_value.type]
|
289
|
-
str << Inspect.dashed_line('ASN.1 content'
|
289
|
+
str << Inspect.dashed_line('ASN.1 content')
|
290
290
|
str << data.chosen_value.inspect(1)
|
291
291
|
begin
|
292
292
|
str << Inspect.inspect_body(self[:message].to_der, 'ASN.1 DER')
|
data/lib/packetgen/header/tcp.rb
CHANGED
@@ -206,24 +206,20 @@ module PacketGen
|
|
206
206
|
|
207
207
|
# @return [String]
|
208
208
|
def inspect
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
flags
|
220
|
-
%w[ns cwr ece urg ack psh rst syn fin].each do |fl|
|
221
|
-
flags << (send("flag_#{fl}?") ? fl[0].upcase : '.')
|
222
|
-
end
|
223
|
-
str << shift + Inspect::FMT_ATTR % ['', 'flags', flags]
|
209
|
+
super do |attr|
|
210
|
+
next unless attr == :u16
|
211
|
+
|
212
|
+
shift = Inspect.shift_level
|
213
|
+
str = Inspect.inspect_attribute(attr, self[attr])
|
214
|
+
doff = Inspect.int_dec_hex(data_offset, 1)
|
215
|
+
str<< shift << Inspect::FMT_ATTR % ['', 'data_offset', doff]
|
216
|
+
str << shift << Inspect::FMT_ATTR % ['', 'reserved', reserved]
|
217
|
+
flags = ''.dup
|
218
|
+
%w[ns cwr ece urg ack psh rst syn fin].each do |fl|
|
219
|
+
flags << (send("flag_#{fl}?") ? fl[0].upcase : '.')
|
224
220
|
end
|
221
|
+
str << shift << Inspect::FMT_ATTR % ['', 'flags', flags]
|
225
222
|
end
|
226
|
-
str
|
227
223
|
end
|
228
224
|
|
229
225
|
# Invert source and destination port numbers
|
@@ -356,7 +356,9 @@ module PacketGen
|
|
356
356
|
@fields = {}
|
357
357
|
@optional_fields = {}
|
358
358
|
|
359
|
-
self.class.class_eval { @field_defs }
|
359
|
+
field_defs = self.class.class_eval { @field_defs }
|
360
|
+
self.class.fields.each do |field|
|
361
|
+
ary = field_defs[field]
|
360
362
|
type, default, builder, optional, enum, field_options = ary
|
361
363
|
default = default.to_proc.call(self) if default.is_a?(Proc)
|
362
364
|
@fields[field] = if builder
|
@@ -480,7 +482,13 @@ module PacketGen
|
|
480
482
|
self
|
481
483
|
end
|
482
484
|
|
483
|
-
# Common inspect method for headers
|
485
|
+
# Common inspect method for headers.
|
486
|
+
#
|
487
|
+
# A block may be given to differently format some attributes. This
|
488
|
+
# may be used by subclasses to handle specific fields.
|
489
|
+
# @yieldparam attr [Symbol] attribute to inspect
|
490
|
+
# @yieldreturn [String,nil] the string to print for +attr+, or +nil+
|
491
|
+
# to let +inspect+ generate it
|
484
492
|
# @return [String]
|
485
493
|
def inspect
|
486
494
|
str = Inspect.dashed_line(self.class, 1)
|
@@ -488,7 +496,8 @@ module PacketGen
|
|
488
496
|
next if attr == :body
|
489
497
|
next unless present?(attr)
|
490
498
|
|
491
|
-
|
499
|
+
result = yield(attr)if block_given?
|
500
|
+
str << (result || Inspect.inspect_attribute(attr, self[attr], 1))
|
492
501
|
end
|
493
502
|
str
|
494
503
|
end
|
data/lib/packetgen/version.rb
CHANGED
data/packetgen.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
|
27
27
|
spec.add_dependency 'interfacez', '~>1.0'
|
28
28
|
spec.add_dependency 'pcaprub', '~>0.12.4'
|
29
|
-
spec.add_dependency 'rasn1', '~>0.5', '>= 0.6.
|
29
|
+
spec.add_dependency 'rasn1', '~>0.5', '>= 0.6.6'
|
30
30
|
|
31
31
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
32
32
|
spec.add_development_dependency 'rake', '~> 12.3'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: packetgen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.8.
|
4
|
+
version: 2.8.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Daubert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-10-
|
11
|
+
date: 2018-10-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: interfacez
|
@@ -47,7 +47,7 @@ dependencies:
|
|
47
47
|
version: '0.5'
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: 0.6.
|
50
|
+
version: 0.6.6
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -57,7 +57,7 @@ dependencies:
|
|
57
57
|
version: '0.5'
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0.6.
|
60
|
+
version: 0.6.6
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: bundler
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|