class TTTLS13::Message::Extension::SignatureAlgorithms
Constants
- DEFAULT_SIGNATURE_ALGORITHMS
Attributes
extension_type[RW]
supported_signature_algorithms[R]
Public Class Methods
deserialize(binary)
click to toggle source
@param binary [String]
@return [TTTLS13::Message::Extensions::SignatureAlgorithms, nil]
# File lib/tttls1.3/message/extension/signature_algorithms.rb, line 70 def self.deserialize(binary) ssa = deserialize_supported_signature_algorithms(binary) return nil if ssa.nil? SignatureAlgorithms.new(ssa) end
deserialize_supported_signature_algorithms(binary)
click to toggle source
@param binary [String]
@raise [TTTLS13::Error::ErrorAlerts]
@return [Array of SignatureScheme]
# File lib/tttls1.3/message/extension/signature_algorithms.rb, line 48 def self.deserialize_supported_signature_algorithms(binary) raise Error::ErrorAlerts, :internal_error if binary.nil? return nil if binary.length < 2 ssa_len = Convert.bin2i(binary.slice(0, 2)) i = 2 supported_signature_algorithms = [] while i < ssa_len + 2 return nil if i + 2 > binary.length supported_signature_algorithms << binary.slice(i, 2) i += 2 end return nil unless ssa_len + 2 == binary.length supported_signature_algorithms end
new(supported_signature_algorithms)
click to toggle source
@param supported_signature_algorithms
[Array of SignatureScheme]
# File lib/tttls1.3/message/extension/signature_algorithms.rb, line 28 def initialize(supported_signature_algorithms) @extension_type = ExtensionType::SIGNATURE_ALGORITHMS @supported_signature_algorithms = supported_signature_algorithms || [] raise Error::ErrorAlerts, :internal_error \ if @supported_signature_algorithms.empty? || @supported_signature_algorithms.length * 2 > 2**16 - 3 end
Public Instance Methods
serialize()
click to toggle source
@return [String]
# File lib/tttls1.3/message/extension/signature_algorithms.rb, line 37 def serialize binary = @supported_signature_algorithms.join @extension_type + binary.prefix_uint16_length.prefix_uint16_length end