Module: TTTLS13::Convert

Defined in:
lib/tttls1.3/utils.rb

Class Method Summary collapse

Class Method Details

.bin2i(binary) ⇒ Object



76
77
78
# File 'lib/tttls1.3/utils.rb', line 76

def bin2i(binary)
  OpenSSL::BN.new(binary, 2).to_i
end

.obj2html(obj) ⇒ Object

rubocop: disable Metrics/AbcSize rubocop: disable Metrics/CyclomaticComplexity rubocop: disable Metrics/PerceivedComplexity



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/tttls1.3/utils.rb', line 83

def obj2html(obj)
  if obj.is_a?(OpenSSL::X509::Certificate)
    obj.to_pem.gsub("\n", '<br>')
  elsif obj.is_a?(Numeric) ||
        obj.is_a?(TrueClass) || obj.is_a?(FalseClass)
    obj.pretty_print_inspect
  elsif obj.is_a?(String) && obj.empty?
    ''
  elsif obj.is_a? String
    '0x' + obj.unpack1('H*')
  elsif obj.is_a? NilClass
    ''
  elsif obj.is_a? Array
    '<ul>' + obj.map { |i| '<li>' + obj2html(i) + '</li>' }.join + '</ul>'
  elsif obj.is_a? Hash
    obj.map do |k, v|
      '<details><summary>' + obj2html(k) + '</summary>' \
      + obj2html(v) \
      + '</details>'
    end.join
  elsif obj.is_a?(Object) && !obj.instance_variables.empty?
    obj.instance_variables.map do |i|
      '<details><summary>' + i[1..] + '</summary>' \
      + obj2html(obj.instance_variable_get(i)) \
      + '</details>'
    end.join
  else
    obj.class.name
  end
end