Class: TTTLS13::Message::EncryptedExtensions
- Inherits:
-
Object
- Object
- TTTLS13::Message::EncryptedExtensions
- Defined in:
- lib/tttls1.3/message/encrypted_extensions.rb
Instance Attribute Summary collapse
-
#extensions ⇒ Object
readonly
Returns the value of attribute extensions.
-
#msg_type ⇒ Object
readonly
Returns the value of attribute msg_type.
Class Method Summary collapse
Instance Method Summary collapse
- #appearable_extensions? ⇒ Boolean
-
#initialize(extensions = Extensions.new) ⇒ EncryptedExtensions
constructor
A new instance of EncryptedExtensions.
- #serialize ⇒ String (also: #fragment)
Constructor Details
#initialize(extensions = Extensions.new) ⇒ EncryptedExtensions
Returns a new instance of EncryptedExtensions.
28 29 30 31 |
# File 'lib/tttls1.3/message/encrypted_extensions.rb', line 28 def initialize(extensions = Extensions.new) @msg_type = HandshakeType::ENCRYPTED_EXTENSIONS @extensions = extensions || Extensions.new end |
Instance Attribute Details
#extensions ⇒ Object (readonly)
Returns the value of attribute extensions.
25 26 27 |
# File 'lib/tttls1.3/message/encrypted_extensions.rb', line 25 def extensions @extensions end |
#msg_type ⇒ Object (readonly)
Returns the value of attribute msg_type.
24 25 26 |
# File 'lib/tttls1.3/message/encrypted_extensions.rb', line 24 def msg_type @msg_type end |
Class Method Details
.deserialize(binary) ⇒ TTTLS13::Message::EncryptedExtensions
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/tttls1.3/message/encrypted_extensions.rb', line 45 def self.deserialize(binary) raise Error::ErrorAlerts, :internal_error if binary.nil? raise Error::ErrorAlerts, :decode_error if binary.length < 6 raise Error::ErrorAlerts, :internal_error \ unless binary[0] == HandshakeType::ENCRYPTED_EXTENSIONS ee_len = Convert.bin2i(binary.slice(1, 3)) exs_len = Convert.bin2i(binary.slice(4, 2)) extensions = Extensions.deserialize(binary.slice(6, exs_len), HandshakeType::ENCRYPTED_EXTENSIONS) raise Error::ErrorAlerts, :decode_error \ unless exs_len + 2 == ee_len && exs_len + 6 == binary.length EncryptedExtensions.new(extensions) end |
Instance Method Details
#appearable_extensions? ⇒ Boolean
62 63 64 65 66 67 |
# File 'lib/tttls1.3/message/encrypted_extensions.rb', line 62 def appearable_extensions? exs = @extensions.keys - APPEARABLE_EE_EXTENSIONS return true if exs.empty? !(exs - DEFINED_EXTENSIONS).empty? end |
#serialize ⇒ String Also known as: fragment
34 35 36 |
# File 'lib/tttls1.3/message/encrypted_extensions.rb', line 34 def serialize @msg_type + @extensions.serialize.prefix_uint24_length end |