public void execLogin() throws IOException {
        /*J̎擾*/
        int module_data_size = NumUtil.readInteger(In);
        int module_security = NumUtil.readInteger(In);
        byte[] module = new byte[module_data_size];
        int module_read = BuffUtil.readStream(In, module, 0, module_data_size);
        if (module_read != module_data_size) {
            Logger.debug("NGXgُłB@UserRequest#execLogin#1");
            throw new IOException("NGXgُłB");
        }
        int power_data_size = NumUtil.readInteger(In);
        int power_security = NumUtil.readInteger(In);
        byte[] power = new byte[power_data_size];
        int power_read = BuffUtil.readStream(In, power, 0, power.length);
        if (power_read != power_data_size) {
            Logger.debug("NGXgُłB@UserRequest#execLogin#2");
            throw new IOException("NGXgُłB");
        }
        /*JÍ@쐬*/
        RSACipher cipher =
                new RSACipher(power_security, power, module_security, module); ;
        /*ÍꂽpX[h̎擾*/
        int pass_data_size = NumUtil.readInteger(In);
        int pass_org_size = NumUtil.readInteger(In);
        byte[] pass = new byte[pass_data_size];
        int pass_read = BuffUtil.readStream(In, pass, 0, pass.length);
        if (pass_read != pass_data_size) {
            Logger.debug("NGXgُłB@UserRequest#execLogin#3");
            throw new IOException("NGXgُłB");
        }
        /*ʂ̏o*/
        if (User.login(cipher, pass_org_size, pass)) {
            IntValue max_channel = new IntValue(0);
            byte[] key = User.initialize(max_channel);
            ReqUtil.writeHeader(Out, false,false, key.length + 16);
            NumUtil.writeInteger(Out, HadukiCode.LOGIN_SUCCESS);
            NumUtil.writeInteger(Out, max_channel.getValue());
            NumUtil.writeInteger(Out, key.length);
            NumUtil.writeInteger(Out, 256);
            Out.write(key);
        } else {
            ReqUtil.writeHeader(Out, false,false, 4);
            NumUtil.writeInteger(Out, HadukiCode.LOGIN_FAILURE);
        }
    }