Class: PacketGen::Header::EAP::TTLS
- Inherits:
-
PacketGen::Header::EAP
- Object
- BinStruct::Struct
- Base
- PacketGen::Header::EAP
- PacketGen::Header::EAP::TTLS
- Defined in:
- lib/packetgen/header/eap/ttls.rb
Overview
Extensible Authentication Protocol (EAP) - Tunneled-TLS, RFC 5281
TTLS has following fields:
-
#flags (
BinStruct::Int8
), -
optionally #message_length (
BinStruct::Int32
), if#l?
istrue
, -
#body (
BinStruct::String
).
Direct Known Subclasses
Constant Summary
Constants inherited from PacketGen::Header::EAP
Instance Attribute Summary collapse
-
#flags ⇒ Integer
8-bit flags.
-
#l? ⇒ Integer
(also: #length_present?)
Say if #message_length field is included.
-
#m? ⇒ Integer
(also: #more_fragments?)
Say if there are more fragments.
-
#message_length ⇒ Integer
Message length.
-
#reserved ⇒ Object
2-bit reserved integer.
-
#s? ⇒ Integer
(also: #tls_start?)
If set, this message is a TLS-Start.
-
#version ⇒ Integer
3-bit version.
Attributes inherited from PacketGen::Header::EAP
#body, #code, #id, #length, #type, #vendor_id, #vendor_type
Instance Method Summary collapse
Methods inherited from PacketGen::Header::EAP
#added_to_packet, #calc_length, #desired_auth_type, #failure?, #human_code, #human_type, #initialize, #nak?, #old_read, #read, #reply!, #request?, #response?, #success?, #type?
Methods inherited from Base
bind, calculate_and_set_length, #header_id, inherited, #initialize, #ip_header, #ll_header
Methods included from PacketGen::Headerable
#added_to_packet, included, #method_name, #packet, #packet=, #parse?, #protocol_name, #read, #to_s
Constructor Details
This class inherits a constructor from PacketGen::Header::EAP
Instance Attribute Details
#flags ⇒ Integer
8-bit flags
41 |
# File 'lib/packetgen/header/eap/ttls.rb', line 41 define_bit_attr_before :body, :flags, l: 1, m: 1, s: 1, reserved: 2, version: 3 |
#l? ⇒ Integer Also known as: length_present?
Say if #message_length field is included
41 |
# File 'lib/packetgen/header/eap/ttls.rb', line 41 define_bit_attr_before :body, :flags, l: 1, m: 1, s: 1, reserved: 2, version: 3 |
#m? ⇒ Integer Also known as: more_fragments?
Say if there are more fragments
41 |
# File 'lib/packetgen/header/eap/ttls.rb', line 41 define_bit_attr_before :body, :flags, l: 1, m: 1, s: 1, reserved: 2, version: 3 |
#message_length ⇒ Integer
Message length. This field provides the total length of the raw data message sequence prior to fragmentation. So, it cannot be automatically calculated (no #calc_length
method).
51 52 |
# File 'lib/packetgen/header/eap/ttls.rb', line 51 define_attr_before :body, :message_length, BinStruct::Int32, optional: lambda(&:l?) |
#reserved ⇒ Object
2-bit reserved integer
41 |
# File 'lib/packetgen/header/eap/ttls.rb', line 41 define_bit_attr_before :body, :flags, l: 1, m: 1, s: 1, reserved: 2, version: 3 |
#s? ⇒ Integer Also known as: tls_start?
If set, this message is a TLS-Start
41 |
# File 'lib/packetgen/header/eap/ttls.rb', line 41 define_bit_attr_before :body, :flags, l: 1, m: 1, s: 1, reserved: 2, version: 3 |
#version ⇒ Integer
3-bit version
41 |
# File 'lib/packetgen/header/eap/ttls.rb', line 41 define_bit_attr_before :body, :flags, l: 1, m: 1, s: 1, reserved: 2, version: 3 |
Instance Method Details
#inspect ⇒ String
55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/packetgen/header/eap/ttls.rb', line 55 def inspect super do |attr| next unless attr == :flags shift = Inspect.shift_level str = shift.dup value = %i[l m s].map { |f| send(:"#{f}?") ? f.to_s : '.' }.join value = '%-16s (0x%02x)' % [value, self.flags] str << Inspect::FMT_ATTR % [self[attr].class.to_s.sub(/.*::/, ''), attr, value] str << shift str << Inspect::FMT_ATTR % ['', 'version', self.version] end end |