# File lib/openid/server.rb, line 143
      def CheckAuthRequest.from_query(query)       
        assoc_handle = query['openid.assoc_handle']
        sig = query['openid.sig']
        signed = query['openid.signed']
        invalidate_handle = query['openid.invalidate_handle']

        unless assoc_handle and sig and signed
          raise ProtocolError.new(query,
                                  "#{@mode} request missing required paramter")
        end

        signed = signed.split(',')
        signed_pairs = []

        signed.each do |field|
          if field == 'mode'
            value = 'id_res'
          else
            value = query['openid.'+field]
            if value.nil?
              raise ProtocolError.new(query, "Couldn't find signed field #{field}")
            end
          end
          signed_pairs << [field, value]
        end
        
        return new(assoc_handle, sig, signed_pairs, invalidate_handle)
      end