# File lib/openid/server.rb, line 241
      def DiffieHellmanServerSession.from_query(query)
        dh_modulus = query['openid.dh_modulus']
        dh_gen = query['openid.dh_gen']
        dh = OpenID::DiffieHellman.from_base64(dh_modulus, dh_gen)

        consumer_pubkey = query['openid.dh_consumer_public']
        unless consumer_pubkey
          msg = 'No openid.dh_consumer_public found for DH-SHA1 session'
          raise ProtocolError.new(query, msg)
        end

        consumer_pubkey = OpenID::Util.base64_to_num(consumer_pubkey)
        return new(dh, consumer_pubkey)
      end