Sha256: ab92190e5b6a49d1f57783c87b83b27e6671ce1242b58abd375c459dd8cab21d

Contents?: true

Size: 1.48 KB

Versions: 4

Compression:

Stored size: 1.48 KB

Contents

module SSLyze
  #
  # Key exchange information.
  #
  class KeyExchange

    #
    # Initializes the key exchange information.
    #
    # @param [Nokogiri::XML::Node] node
    #   The `<keyExchange>` information.
    #
    def initialize(node)
      @node = node
    end

    #
    # @return [String]
    #
    def a
      @a ||= @node['A']
    end

    #
    # @return [String]
    #
    def b
      @b ||= @node['B']
    end

    #
    # @return [Integer]
    #
    def cofactor
      @cofactor ||= @node['Cofactor'].to_i
    end

    #
    # @return [String]
    #
    def field_type
      @field_type ||= @node['Field_Type']
    end

    #
    # @return [String]
    #
    def generator
      @generator ||= @node['Generator']
    end

    #
    # @return [Symbol]
    #
    def generator_type
      @generator ||= @node['GeneratorType'].to_sym
    end

    #
    # @return [Integer]
    #
    def group_size
      @group_size ||= @node['GroupSize'].to_i
    end

    #
    # @return [String]
    #
    def prime
      @prime ||= @node['Prime']
    end

    #
    # @return [String]
    #
    def seed
      @seed ||= @node['Seed']
    end

    #
    # @return [:DH, :ECDHE]
    #
    def type
      @type ||= @node['Type'].to_sym
    end

    #
    # Determines if DH key exchange was used.
    #
    # @return [Boolean]
    #
    def dh?
      type == :DH
    end

    #
    # Determines if ECDHE key exchange was used.
    #
    # @return [Boolean]
    #
    def ecdhe?
      type == :ECDHE
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-sslyze-0.2.1 lib/sslyze/key_exchange.rb
ruby-sslyze-0.2.0 lib/sslyze/key_exchange.rb
ruby-sslyze-0.1.1 lib/sslyze/key_exchange.rb
ruby-sslyze-0.1.0 lib/sslyze/key_exchange.rb