/spec/lib/rex/proto/ntp/modes_spec.rb
https://github.com/debbiemezyene/metasploit-framework · Ruby · 83 lines · 71 code · 10 blank · 2 comment · 6 complexity · 64587983dd82349ba1a0e12ab2db165f MD5 · raw file
- # -*- coding: binary -*-
- #
- require 'rex/proto/ntp/modes'
- describe "Rex::Proto::NTP mode message handling" do
- before do
- @payload = 'R7' * 7
- end
- describe Rex::Proto::NTP::NTPControl do
- before do
- @control_raw = "\x1e\x05\x12\x34\x12\x34\x12\x34\x00\x00\x00\x0e" + @payload
- @control = Rex::Proto::NTP::NTPControl.new
- @control.version = 3
- @control.response = 0
- @control.more = 0
- @control.operation = 5
- @control.sequence = 0x1234
- @control.association_id = 0x1234
- @control.status = 0x1234
- @control.payload_offset = 0
- @control.payload_size = 14
- @control.payload = @payload
- end
- it 'Generates control NTP messages correctly' do
- @control_raw.should == @control.to_s
- end
- it 'Parses control NTP messages correctly' do
- parsed_raw = Rex::Proto::NTP::NTPControl.new(@control_raw)
- @control.should == parsed_raw
- end
- end
- describe Rex::Proto::NTP::NTPGeneric do
- before do
- @generic_raw = "\xcc\x12\x34\x56" + @payload
- @generic = Rex::Proto::NTP::NTPGeneric.new
- @generic.li = 3
- @generic.version = 1
- @generic.mode = 4
- @generic.stratum = 0x12
- @generic.poll = 0x34
- @generic.precision = 0x56
- @generic.payload = @payload
- end
- it 'Generates generic NTP messages correctly' do
- @generic_raw.should == @generic.to_s
- end
- it 'Parses generic NTP messages correctly' do
- parsed_raw = Rex::Proto::NTP::NTPGeneric.new(@generic_raw)
- @generic.should == parsed_raw
- end
- end
- describe Rex::Proto::NTP::NTPPrivate do
- before do
- @private_raw = "\x1f\x5a\x01\x99\x00\x00\x00\x00" + @payload
- @private = Rex::Proto::NTP::NTPPrivate.new
- @private.response = 0
- @private.more = 0
- @private.version = 3
- @private.mode = 7
- @private.auth = 0
- @private.sequence = 90
- @private.implementation = 1
- @private.request_code = 153
- @private.payload = @payload
- end
- it 'Generates private NTP messages correctly' do
- @private_raw.should == @private.to_s
- end
- it 'Parses private NTP messages correctly' do
- parsed_raw = Rex::Proto::NTP::NTPPrivate.new(@private_raw)
- @private.should == parsed_raw
- end
- end
- end