mozilla/ssh_scan

View on GitHub
lib/ssh_scan/os/raspbian.rb

Summary

Maintainability
A
0 mins
Test Coverage
module SSHScan
  module OS
    class Raspbian
      attr_reader :version

      class Version
        def initialize(version_string)
          @version_string = version_string
        end

        def to_s
          @version_string
        end
      end

      def initialize(banner)
        @banner = banner
        @version = Raspbian::Version.new(raspbian_version_guess)
      end

      # Guess Raspbian OS version. Typically, Raspbian banners 
      # are like "SSH-2.0-Raspbian-something", where something 
      # is the Raspbian version.
      # @return [String] version string matched from banner, nil
      #   if not matched
      def raspbian_version_guess
        return nil if @banner.nil?
        match = @banner.match(/SSH-2.0-Raspbian-(\d+)/)
        return nil if match.nil?
        return match[1]
      end

      def common
        "raspbian"
      end

      def cpe
        "o:raspbian:raspbian"
      end
    end
  end
end