cryptcheck/lib/cryptcheck/tls.rb

33 lines
877 B
Ruby

require 'erb'
require 'parallel'
module CryptCheck
module Tls
def self.analyze(host, port)
::CryptCheck.analyze host, port, TcpServer, Grade
end
def self.colorize(cipher)
colors = case
when /^SSL/ =~ cipher then { color: :white, background: :red }
when :TLSv1_2 == cipher then { color: :green }
end
cipher.to_s.colorize colors
end
def self.key_to_s(key)
size = key.rsa_equivalent_size
type_color = case key.type
when :ecc then { color: :green }
when :dsa then { color: :yellow }
end
size_color = case size
when 0...1024 then { color: :white, background: :red }
when 1024...2048 then { color: :yellow }
when 4096...::Float::INFINITY then { color: :green }
end
"#{key.type.to_s.upcase.colorize type_color} #{key.size.to_s.colorize size_color} bits"
end
end
end