Class: TTTLS13::Message::Extension::PreSharedKey
- Inherits:
-
Object
- Object
- TTTLS13::Message::Extension::PreSharedKey
- Defined in:
- lib/tttls1.3/message/extension/pre_shared_key.rb
Overview
NOTE:
struct {
select (Handshake.msg_type) {
case client_hello: OfferedPsks;
case server_hello: uint16 selected_identity;
};
} PreSharedKeyExtension;
Instance Attribute Summary collapse
-
#extension_type ⇒ Object
readonly
Returns the value of attribute extension_type.
-
#msg_type ⇒ Object
readonly
Returns the value of attribute msg_type.
-
#offered_psks ⇒ Object
readonly
Returns the value of attribute offered_psks.
-
#selected_identity ⇒ Object
readonly
Returns the value of attribute selected_identity.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(msg_type:, offered_psks: nil, selected_identity: '') ⇒ PreSharedKey
constructor
A new instance of PreSharedKey.
- #serialize ⇒ String
Constructor Details
#initialize(msg_type:, offered_psks: nil, selected_identity: '') ⇒ PreSharedKey
Returns a new instance of PreSharedKey.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/tttls1.3/message/extension/pre_shared_key.rb', line 26 def initialize(msg_type:, offered_psks: nil, selected_identity: '') @extension_type = ExtensionType::PRE_SHARED_KEY @msg_type = msg_type case @msg_type when HandshakeType::CLIENT_HELLO @offered_psks = offered_psks when HandshakeType::SERVER_HELLO @selected_identity = selected_identity || '' raise Error::ErrorAlerts, :internal_error \ unless @selected_identity.length == 2 else raise Error::ErrorAlerts, :internal_error end end |
Instance Attribute Details
#extension_type ⇒ Object (readonly)
Returns the value of attribute extension_type.
16 17 18 |
# File 'lib/tttls1.3/message/extension/pre_shared_key.rb', line 16 def extension_type @extension_type end |
#msg_type ⇒ Object (readonly)
Returns the value of attribute msg_type.
17 18 19 |
# File 'lib/tttls1.3/message/extension/pre_shared_key.rb', line 17 def msg_type @msg_type end |
#offered_psks ⇒ Object (readonly)
Returns the value of attribute offered_psks.
18 19 20 |
# File 'lib/tttls1.3/message/extension/pre_shared_key.rb', line 18 def offered_psks @offered_psks end |
#selected_identity ⇒ Object (readonly)
Returns the value of attribute selected_identity.
19 20 21 |
# File 'lib/tttls1.3/message/extension/pre_shared_key.rb', line 19 def selected_identity @selected_identity end |
Class Method Details
.deserialize(binary, msg_type) ⇒ TTTLS13::Message::Extensions::PreSharedKey?
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/tttls1.3/message/extension/pre_shared_key.rb', line 64 def self.deserialize(binary, msg_type) raise Error::ErrorAlerts, :internal_error if binary.nil? case msg_type when HandshakeType::CLIENT_HELLO offered_psks = OfferedPsks.deserialize(binary) return nil if offered_psks.nil? PreSharedKey.new(msg_type: HandshakeType::CLIENT_HELLO, offered_psks: offered_psks) when HandshakeType::SERVER_HELLO return nil unless binary.length == 2 selected_identity = binary PreSharedKey.new(msg_type: HandshakeType::SERVER_HELLO, selected_identity: selected_identity) else raise Error::ErrorAlerts, :internal_error end end |
Instance Method Details
#serialize ⇒ String
44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/tttls1.3/message/extension/pre_shared_key.rb', line 44 def serialize binary = '' case @msg_type when HandshakeType::CLIENT_HELLO binary += @offered_psks.serialize when HandshakeType::SERVER_HELLO binary += @selected_identity else raise Error::ErrorAlerts, :internal_error end @extension_type + binary.prefix_uint16_length end |