class TTTLS13::Message::Extension::PreSharedKey
NOTE:
struct { select (Handshake.msg_type) { case client_hello: OfferedPsks; case server_hello: uint16 selected_identity; }; } PreSharedKeyExtension;
Attributes
extension_type[R]
msg_type[R]
offered_psks[R]
selected_identity[R]
Public Class Methods
deserialize(binary, msg_type)
click to toggle source
@param binary [String] @param msg_type
[TTTLS13::Message::ContentType]
@raise [TTTLS13::Error::ErrorAlerts]
@return [TTTLS13::Message::Extensions::PreSharedKey, nil]
# 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
new(msg_type:, offered_psks: nil, selected_identity: '')
click to toggle source
@param msg_type
[TTTLS13::Message::ContentType] @param offered_psks
[TTTLS13::Message::Extension::OfferedPsks] @param selected_identity
[String]
@raise [TTTLS13::Error::ErrorAlerts]
# 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
Public Instance Methods
serialize()
click to toggle source
@raise [TTTLS13::Error::ErrorAlerts]
@return [String]
# 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