Index: t3lib/class.t3lib_install.php
===================================================================
--- t3lib/class.t3lib_install.php	(revision 7082)
+++ t3lib/class.t3lib_install.php	(working copy)
@@ -185,7 +185,7 @@
 			$line_array[] = $variable." = '".$this->slashValueForSingleDashes($value)."';	// ".$comment;
 			$this->touchedLine = -1;
 		}
-		if ($variable == '$typo_db_password') {
+		if (($variable == '$typo_db_password') || ($variable = '$TYPO3_CONF_VARS[\'BE\'][\'installToolPassword\']')) {
 			$this->messages[] = 'Updated ' . $variable;
 		} else {
 			$this->messages[] = $variable . " = '" . htmlspecialchars($value) . "'";
Index: typo3/init.php
===================================================================
--- typo3/init.php	(revision 7082)
+++ typo3/init.php	(working copy)
@@ -346,6 +346,8 @@
 	$install_check->allowUpdateLocalConf = 1;
 	$install_check->init();
 	exit;
+} elseif (!defined('TYPO3_enterInstallScript')) {
+	define('TYPO3_enterInstallScript', 0);
 }
 
 
Index: typo3/sysext/sv/ext_autoload.php
===================================================================
--- typo3/sysext/sv/ext_autoload.php	(revision 7082)
+++ typo3/sysext/sv/ext_autoload.php	(working copy)
@@ -6,6 +6,7 @@
  */
 $extensionPath = t3lib_extMgm::extPath('sv');
 return array(
+	'tx_sv_authbase' => $extensionPath . 'class.tx_sv_authbase.php',
 	'tx_sv_reports_serviceslist' => $extensionPath . 'reports/class.tx_sv_reports_serviceslist.php',
 );
 ?>
Index: typo3/sysext/saltedpasswords/ext_localconf.php
===================================================================
--- typo3/sysext/saltedpasswords/ext_localconf.php	(revision 7082)
+++ typo3/sysext/saltedpasswords/ext_localconf.php	(working copy)
@@ -24,9 +24,9 @@
 	'auth',
 	'tx_saltedpasswords_sv1',
 	array(
-		'title' => 'FE/BE Authentification salted',
-		'description' => 'Salting of passwords for Frontend and Backend',
-		'subtype' => 'authUserFE,authUserBE',
+		'title' => 'FE/BE/Install-Tool Authentification salted',
+		'description' => 'Salting of passwords for Frontend, Backend and Install Tool',
+		'subtype' => 'authUserFE,authUserBE,authInstallTool',
 		'available' => TRUE,
 		'priority' => 70, // must be higher than tx_sv_auth (50) and rsaauth (60) but lower than OpenID (75)
 		'quality' => 70,
Index: typo3/sysext/saltedpasswords/sv1/class.tx_saltedpasswords_sv1.php
===================================================================
--- typo3/sysext/saltedpasswords/sv1/class.tx_saltedpasswords_sv1.php	(revision 7082)
+++ typo3/sysext/saltedpasswords/sv1/class.tx_saltedpasswords_sv1.php	(working copy)
@@ -131,6 +131,7 @@
 			// existing record is in format of Salted Hash password
 		if (is_object($this->objInstanceSaltedPW)) {
 			$validPasswd = $this->objInstanceSaltedPW->checkPassword($password,$user['password']);
+			$this->hashedPassword = $this->objInstanceSaltedPW->getHashedPassword($password);
 
 				// record is in format of Salted Hash password but authentication failed
 				// skip further authentication methods
@@ -285,9 +286,13 @@
 	 */
 	protected function updatePassword($uid, $updateFields) {
 		if (TYPO3_MODE === 'BE') {
-			$GLOBALS['TYPO3_DB']->exec_UPDATEquery( 'be_users', sprintf('uid = %u', $uid), $updateFields);
+			if (TYPO3_enterInstallScript) {
+				$this->pObj->updatePassword = $updateFields['password'];
+			} else {
+				$GLOBALS['TYPO3_DB']->exec_UPDATEquery('be_users', 'uid = '. abs(intval($uid)), $updateFields);
+			}
 		} else {
-			$GLOBALS['TYPO3_DB']->exec_UPDATEquery( 'fe_users', sprintf('uid = %u', $uid), $updateFields);
+			$GLOBALS['TYPO3_DB']->exec_UPDATEquery('fe_users', 'uid = ' . abs(intval($uid)), $updateFields);
 		}
 
 		t3lib_div::devLog(sprintf('Automatic password update for %s user with uid %u', TYPO3_MODE, $uid), $this->extKey, 1);
Index: typo3/sysext/install/mod/class.tx_install.php
===================================================================
--- typo3/sysext/install/mod/class.tx_install.php	(revision 7082)
+++ typo3/sysext/install/mod/class.tx_install.php	(working copy)
@@ -142,6 +142,8 @@
  *
  */
 
+if (!(defined('TYPO3_enterInstallScript') && TYPO3_enterInstallScript)) 	die ('Access denied.');
+
 // include requirements definition:
 require_once(t3lib_extMgm::extPath('install') . 'requirements.php');
 
@@ -231,12 +233,30 @@
 		'about' => 'About'
 	);
 	var $JSmessage = '';
+	var $JScode = '';
 
+		// Will get set to the path of the ENABLE_INSTALL_TOOL file in constructor
+	var $enableInstallToolFile = '';
 
+		// Defines wheter log messages should get written for login attempts
+	var $writeAttemptLog = FALSE;
+	var $writeDevLog = FALSE;
+		// This variable gets set by service classes when the current password hash in localconf.php should get updated
+		// because of changes in encryption/hashing parameters
+	var $updatePassword = '';
 
+		// Getting set to the value of $TYPO3_CONF_VARS['BE']['loginSecurityLevel'] in the constructor
+	var $loginSecurityLevel = '';
+	var $security_level = '';
 
+		// The minimal number of characters required for a somewhat secure password
+	var $passwordMinChars = 5;
 
 
+
+
+
+
 	/**
 	 * Constructor
 	 *
@@ -244,7 +264,6 @@
 	 */
 	function tx_install()	{
 		parent::t3lib_install();
-
 		if (!$GLOBALS['TYPO3_CONF_VARS']['BE']['installToolPassword'])	die("Install Tool deactivated.<br />You must enable it by setting a password in typo3conf/localconf.php. If you insert the line below, the password will be 'joh316':<br /><br />\$TYPO3_CONF_VARS['BE']['installToolPassword'] = 'bacb98acf97e0b6112b1d1b650b84971';");
 
 		if ($this->sendNoCacheHeaders)	{
@@ -258,6 +277,7 @@
 			// ****************************
 			// Initializing incoming vars.
 			// ****************************
+		$this->enableInstallToolFile = PATH_typo3conf . 'ENABLE_INSTALL_TOOL';
 		$this->INSTALL = t3lib_div::_GP('TYPO3_INSTALL');
 		$this->mode = t3lib_div::_GP('mode');
 		if ($this->mode !== '123') {
@@ -331,14 +351,21 @@
 ';
 		}
 
+			// The first one is for the login form hook of "rsaauth" extension, the second for salted password handling of "saltedpasswords"
+		$this->loginSecurityLevel = $GLOBALS['TYPO3_CONF_VARS']['BE']['loginSecurityLevel'];
+		$this->security_level = $GLOBALS['TYPO3_CONF_VARS']['BE']['loginSecurityLevel'];
+
+			// Retrieve the newPasswordHash value from previous call to the install tool and set it to a new random value
+		$this->newPasswordHash = $this->session->getNewPasswordHash();
+		$this->session->setNewPasswordHash();
+
 		if ($this->session->isAuthorized() || $this->checkPassword())	{
 			$this->passwordOK=1;
 			$this->session->refreshSession();
 
-			$enableInstallToolFile = PATH_typo3conf . 'ENABLE_INSTALL_TOOL';
-			if (is_file ($enableInstallToolFile)) {
+			if (is_file ($this->enableInstallToolFile)) {
 					// Extend the age of the ENABLE_INSTALL_TOOL file by one hour
-				@touch($enableInstallToolFile);
+				@touch($this->enableInstallToolFile);
 			}
 
 			if($this->redirect_url)	{
@@ -350,17 +377,43 @@
 	}
 
 	/**
-	 * Returns true if submitted password is ok.
+	 * Returns TRUE if submitted password is ok.
 	 *
 	 * If password is ok, set session as "authorized".
 	 *
-	 * @return boolean true if the submitted password was ok and session was
-	 *                 authorized, false otherwise
+	 * @return boolean	TRUE if the submitted password was ok and session was authorized, FALSE otherwise
 	 */
 	function checkPassword() {
 		$p = t3lib_div::_GP('password');
 
-		if ($p && md5($p)==$GLOBALS['TYPO3_CONF_VARS']['BE']['installToolPassword'])	{
+			// Perform password check
+		$passwordOk = FALSE;
+		if (t3lib_extMgm::isLoaded('saltedpasswords') || t3lib_extMgm::isLoaded('rsaauth')) {
+				// Use the "saltedpasswords" and/or "rsaauth" system extension for more security by using password checking services
+			$altPass = t3lib_div::_GP('userident');
+			$p = $altPass ? $altPass : $p;
+			$passwordOk = $this->checkPasswordViaService($p);
+			$p = $this->hashedPassword;
+		} elseif ($p) {
+				// Perform plain md5 hashed password comparison
+			$this->hashedPassword = md5($p);
+			$passwordOk = ($this->hashedPassword === $GLOBALS['TYPO3_CONF_VARS']['BE']['installToolPassword']);
+		}
+
+			// If a new password should get set, and the correct hash value gets submitted
+			// set the new password in localconf.php and authenticate this session
+		$setNewSubmit = t3lib_div::_GP('setNewPassword');
+		if ($setNewSubmit && $this->hashedPassword) {
+			$currentKey = trim(t3lib_div::getUrl($this->enableInstallToolFile));
+			$storedKey = $this->newPasswordHash.':'.t3lib_div::getIndpEnv('REMOTE_ADDR');
+			if (!strcmp($storedKey, $currentKey)) {
+					// When the correct value was found in ENABLE_INSTALL_TOOL set the submitted (currently wrong) password as new one.
+				$this->setNewPassword($this->hashedPassword);
+				$passwordOk = TRUE;
+			}
+		}
+
+		if ($passwordOk) {
 			$this->session->setAuthorized();
 
 				// Sending warning email
@@ -374,7 +427,7 @@
 					'From: TYPO3 Install Tool WARNING <>'
 				);
 			}
-			return true;
+			return TRUE;
 		} else {
 				// Bad password, send warning:
 			if ($p)	{
@@ -391,36 +444,159 @@
 					);
 				}
 			}
-			return false;
+			return FALSE;
 		}
 	}
 
+
 	/**
+	 * Returns TRUE if submitted password is ok. Checks password by calling the auth service
+	 *
+	 * @return string	The submitted password
+	 * @return boolean	Returns TRUE if the submitted password was ok
+	 */
+	function checkPasswordViaService($password) {
+		$serviceChain='';
+		$authenticated = FALSE;
+
+			// The submitted data
+		$loginData = array(
+			'uident' => $password,
+			'uident_text' => $password,
+				// As there are no users for the install tool we supply a dummy user name
+			'uname' => 'SYSTEM_InstallTool',
+		);
+		$authInfo = $_SERVER;
+		$tempuser = array(
+			'password' => $GLOBALS['TYPO3_CONF_VARS']['BE']['installToolPassword'],
+			'lockToDomain' => $GLOBALS['TYPO3_CONF_VARS']['BE']['installTool_lockToDomain'],
+				// As there are no users for the install tool we supply a uid of "0"
+			'uid' => 0,
+		);
+
+		while (is_object($serviceObj = t3lib_div::makeInstanceService('auth', 'authInstallTool', $serviceChain))) {
+			
+			$serviceChain .= ',' . $serviceObj->getServiceKey();
+			$serviceObj->initAuth('authInstallTool', $loginData, $authInfo, $this);
+			$ret = $serviceObj->authUser($tempuser);
+
+				// Set the hash of the password which was used for login
+			$md5HashedPassword = md5($serviceObj->login['uident_text'] ? $serviceObj->login['uident_text'] : $serviceObj->login['uident']);
+			$this->hashedPassword = $serviceObj->hashedPassword ? $serviceObj->hashedPassword : $md5HashedPassword;
+
+			if ($ret > 0) {
+					// if the service returns >=200 then no more checking is needed 
+					// useful for IP checking without password
+				if (intval($ret) >= 200) {
+					$authenticated = TRUE;
+					break;
+				} elseif (intval($ret) >= 100) {
+						// Just go on. User is still not authenticated but there's no reason to stop now.
+				} else {
+					$authenticated = TRUE;
+				}
+			} else {
+				$authenticated = FALSE;
+				break;
+			}
+		}
+
+			// Handle Password update to encrypted/salted passwords:
+			// The service classes found that the password has to get updated
+			// This is the case when parameters like hashing iterations or encryption/salting mechanisms have changed
+		if ($authenticated && $this->updatePassword) {
+			$this->setNewPassword($this->updatePassword);
+		}
+
+		return $authenticated;
+	}
+
+
+	/**
+	 * Sets the submitted password as install tool password
+	 *
+	 * @return string	The submitted password
+	 * @return boolean	Returns TRUE if the submitted password was ok
+	 */
+	protected function setNewPassword($newPassword) {
+		$this->allowUpdateLocalConf = 1;
+		$lines = $this->writeToLocalconf_control();
+		$this->setValueInLocalconfFile($lines, '$TYPO3_CONF_VARS[\'BE\'][\'installToolPassword\']', $newPassword);
+		$this->writeToLocalconf_control($lines, FALSE);
+		$this->allowUpdateLocalConf = 0;
+
+			// Restart session object because install-password has changed
+		$GLOBALS['TYPO3_CONF_VARS']['BE']['installToolPassword'] = $newPassword;
+		unset($this->session);
+		$this->session = t3lib_div::makeInstance('tx_install_session');
+		$this->session->startSession();
+	}
+
+	function getRsaFormTag($params = array()) {
+		$loginFormHook = t3lib_div::makeInstance('tx_rsaauth_loginformhook');
+		$content = '';
+		if ($altFormTag = $loginFormHook->getLoginFormTag($params, $this)) {
+			$content .= $loginFormHook->getLoginScripts(array(), $this);
+			$content .= $altFormTag;
+				// For compatibility with saltedpasswords system extension
+			$content .= '<input type="hidden" name="username" value="" />';
+			$content .= '<input type="hidden" name="userident" value="" />';
+		}
+		return $content;
+	}
+
+	/**
 	 * [Describe function...]
 	 *
 	 * @return	[type]		...
 	 */
 	function loginForm()	{
-		$p = t3lib_div::_GP('password');
 		$redirect_url = $this->redirect_url ? $this->redirect_url : $this->action;
 
 		$this->messageFunc_nl2br=0;
 		$this->silent=0;
+		$passwordField = 'password';
+		$formName = 'passwordForm';
+		$content = '';
+		$formStart = '<form action="index.php" method="post" name="passwordForm">';
 
-		$content = '<form action="index.php" method="post" name="passwordForm">
-			<input type="password" name="password"><br />
+		if (t3lib_extMgm::isLoaded('rsaauth')) {
+			$rsaFormTag = $this->getRsaFormTag();
+			if ($rsaFormTag) {
+					// Use RSA encrypted login
+				$formStart = $rsaFormTag;
+				$passwordField = 'p_field';
+				$formName = 'loginform';
+			}
+		}
+
+		$content .= $formStart . '
+			<input type="password" name="' . $passwordField . '"><br />
 			<input type="hidden" name="redirect_url" value="'.htmlspecialchars($redirect_url).'">
-			<input type="submit" value="Log in"><br />
+			<input type="submit" name="loginButton" value="Log in"><br />
 			<br />
 
-			'.$this->fw('The Install Tool Password is <i>not</i> the admin password of TYPO3.<br />
-				If you don\'t know the current password, you can set a new one by setting the value of $TYPO3_CONF_VARS[\'BE\'][\'installToolPassword\'] in typo3conf/localconf.php to the md5() hash value of the password you desire.'.
-				($p ? '<br /><br />The password you just tried has this md5-value: <br /><br />'.md5($p) : '')
-				).'
+			'.$this->fw('The Install Tool Password is <i>not</i> the admin password of TYPO3.'.
+				(t3lib_div::_GP('setNewPassword') || t3lib_div::_GP('loginButton') ? 
+					('<br /><br />If you don\'t know the current password, you can set a new one by filling in the new password in the above input field, then copy and paste the below value to the ENABLE_INSTALL_TOOL file and hit "Set new Password" button.
+					<br /><br />Copy and paste to ENABLE_INSTALL_TOOL<br />
+					<input type="text" name="setPasswordKey" value="' . $this->session->getNewPasswordHash() . ':' . t3lib_div::getIndpEnv('REMOTE_ADDR') . '" readonly="readonly" size="50" onclick="this.select();" />
+					<br /><br /><input type="submit" name="setNewPassword" value="Set new password" onclick="return checkNewPassword();" />') : '')).'
 			</form>
 			<script type="text/javascript">
 			<!--
-				document.passwordForm.password.focus();
+
+				function checkNewPassword() {
+					var currentPass = document.' . $formName . '.' . $passwordField . '.value;
+					if (currentPass.length < ' . $this->passwordMinChars . ') {
+						alert("The password must have at least ' . $this->passwordMinChars. ' characters!");
+						document.' . $formName . '.' . $passwordField . '.focus();
+						document.' . $formName . '.' . $passwordField . '.select();
+						return false;
+					}
+					return true;
+				}
+				document.' . $formName . '.' . $passwordField . '.focus();
 			//-->
 			</script>';
 
@@ -1364,11 +1540,16 @@
 									$doit=1;
 									if ($k=='BE' && $vk=='installToolPassword')	{
 										if ($value)	{
-											if (isset($_POST['installToolPassword_check']) && (!t3lib_div::_GP('installToolPassword_check') || strcmp(t3lib_div::_GP('installToolPassword_check'),$value)))	{
-												$doit=0;
-												t3lib_div::debug('ERROR: The two passwords did not match! The password was not changed.');
+											if (($rsaPass = t3lib_div::_GP('userident')) && t3lib_extMgm::isLoaded('rsaauth')) {
+												$this->checkPasswordViaService($rsaPass);
+												$value = $this->hashedPassword;
+											} else {
+												if (isset($_POST['installToolPassword_check']) && (!t3lib_div::_GP('installToolPassword_check') || strcmp(t3lib_div::_GP('installToolPassword_check'),$value)))	{
+													$doit=0;
+													t3lib_div::debug('ERROR: The two passwords did not match! The password was not changed.');
+												}
+												if (t3lib_div::_GP('installToolPassword_md5'))	$value =md5($value);
 											}
-											if (t3lib_div::_GP('installToolPassword_md5'))	$value =md5($value);
 										} else $doit=0;
 									}
 
@@ -4923,6 +5104,11 @@
 
 		':'').'
 <script type="text/javascript" src="../contrib/prototype/prototype.js"></script>
+<script type="text/javascript">
+/*<![CDATA[*/
+'.$this->JScode.'
+/*]]>*/
+</script>
 	</head>
 	<body>'.$this->contentBeforeTable.'
 		<div align="center">';
@@ -5102,14 +5288,58 @@
 	 * @return	[type]		...
 	 */
 	function alterPasswordForm()	{
-			$content = '<form action="'.$this->scriptSelf.'?TYPO3_INSTALL[type]=extConfig" method="post">
+
+		$formAction = $this->scriptSelf.'?TYPO3_INSTALL[type]=extConfig';
+		$passwordField = 'TYPO3_INSTALL[extConfig][BE][installToolPassword]';
+
+		$formStart = '<form action="' . $formAction . '" method="post" onsubmit="return comparePasswords();">';
+		$useRsa = FALSE;
+		if (t3lib_extMgm::isLoaded('rsaauth')) {
+			$rsaFormTag = $this->getRsaFormTag(array('formAction' => $formAction, 'formOnSubmit' => 'return comparePasswords() && tx_rsaauth_encrypt();'));
+			if ($rsaFormTag) {
+					// Use RSA encrypted login
+				$useRsa = TRUE;
+				$formStart = $rsaFormTag;
+				$formStart .= '<input type="hidden" name="' . $passwordField. '" value="1" />';
+				$passwordField = 'p_field';
+				$formName = 'loginform';
+			}
+		}
+
+		$this->JScode = '
+				function comparePasswords() {
+					var pass1 = document.getElementById("changePassword1").value;
+					var pass2 = document.getElementById("changePassword2").value;
+					if (pass1.length < ' . $this->passwordMinChars . ') {
+						alert("The password must have at least ' . $this->passwordMinChars. ' characters!");
+						document.getElementById("changePassword2").value = "";
+						document.getElementById("changePassword1").value = "";
+						document.getElementById("changePassword1").focus();
+						return false;
+					}
+					if (pass1 != pass2) {
+						alert("The two passwords do not match");
+						document.getElementById("changePassword2").value = "";
+						document.getElementById("changePassword1").value = "";
+						document.getElementById("changePassword1").focus();
+						return false;
+					}
+					' . ($useRsa ? '
+						// Unset second value so no cleartext password gets transmitted
+					document.getElementById("changePassword2").value = "";
+					' : '') . '
+					return true;
+				}
+			';
+		$content = '
+			' . $formStart . '
 			Enter new password:
-			<input type="password" name="TYPO3_INSTALL[extConfig][BE][installToolPassword]" /><br />Enter again:
-			<input type="password" name="installToolPassword_check" />
+			<input type="password" id="changePassword1" name="' . $passwordField . '" /><br />Enter again:
+			<input type="password" id="changePassword2" name="installToolPassword_check" />
 			<input type="hidden" name="installToolPassword_md5" value="1" />
 			<input type="submit" value="Set new password" /><br />
 			</form>';
-			return $content;
+		return $content;
 	}
 
 	/**
Index: typo3/sysext/install/mod/class.tx_install_session.php
===================================================================
--- typo3/sysext/install/mod/class.tx_install_session.php	(revision 7082)
+++ typo3/sysext/install/mod/class.tx_install_session.php	(working copy)
@@ -205,6 +205,28 @@
 	}
 
 	/**
+	 * Sets a random hash value in the session for retrieval upon next hit.
+	 * This is used for allowing to set a new Install Tool Password when this
+	 * value has been written to ENABLE_INSTALL_TOOL by an admin
+	 *
+	 * @return void
+	 */
+	public function setNewPasswordHash() {
+		$_SESSION['newPasswordHash'] = md5(serialize(microtime()).rand(0, 10000000));
+	}
+
+
+	/**
+	 * Returns the stored hash value for comparison against the value from ENABLE_INSTALL_TOOL
+	 *
+	 * @return string	The current temporary password hash
+	 */
+	public function getNewPasswordHash() {
+		return $_SESSION['newPasswordHash'];
+	}
+
+
+	/**
 	 * Check if we have an already authorized session
 	 *
 	 * @return boolean True if this session has been authorized before (by a correct password)
Index: typo3/sysext/rsaauth/hooks/class.tx_rsaauth_loginformhook.php
===================================================================
--- typo3/sysext/rsaauth/hooks/class.tx_rsaauth_loginformhook.php	(revision 7082)
+++ typo3/sysext/rsaauth/hooks/class.tx_rsaauth_loginformhook.php	(working copy)
@@ -44,9 +44,11 @@
 	/**
 	 * Adds RSA-specific JavaScript and returns a form tag
 	 *
+	 * @param	array	$params	Parameters to the script
+	 * @param	object	$pObj	Calling object
 	 * @return	string	Form tag
 	 */
-	public function getLoginFormTag(array $params, SC_index& $pObj) {
+	public function getLoginFormTag(array $params, &$pObj) {
 		$form = null;
 		if ($pObj->loginSecurityLevel == 'rsa') {
 
@@ -55,7 +57,7 @@
 			if (!is_null($backend)) {
 
 				// Add form tag
-				$form = '<form action="index.php" method="post" name="loginform" onsubmit="tx_rsaauth_encrypt();">';
+				$form = '<form action="' . ($params['formAction'] ? $params['formAction'] : 'index.php') . '" method="post" name="loginform" onsubmit="' . ($params['formOnSubmit'] ? $params['formOnSubmit'] : 'tx_rsaauth_encrypt();' ) . '">';
 
 				// Generate a new key pair
 				$keyPair = $backend->createNewKeyPair();
@@ -78,10 +80,10 @@
 	 * Provides form code for the superchallenged authentication.
 	 *
 	 * @param	array	$params	Parameters to the script
-	 * @param	SC_index	$pObj	Calling object
+	 * @param	object	$pObj	Calling object
 	 * @return	string	The code for the login form
 	 */
-	public function getLoginScripts(array $params, SC_index &$pObj) {
+	public function getLoginScripts(array $params, &$pObj) {
 		$content = '';
 
 		if ($pObj->loginSecurityLevel == 'rsa') {
Index: typo3/sysext/rsaauth/ext_localconf.php
===================================================================
--- typo3/sysext/rsaauth/ext_localconf.php	(revision 7082)
+++ typo3/sysext/rsaauth/ext_localconf.php	(working copy)
@@ -9,7 +9,7 @@
 		'title' => 'RSA authentication',
 		'description' => 'Authenticates users by using encrypted passwords',
 
-		'subtype' => 'getUserBE,authUserBE,getUserFE,authUserFE',
+		'subtype' => 'getUserBE,authUserBE,getUserFE,authUserFE,authInstallTool',
 
 		'available' => TRUE,
 		'priority' => 60,	// tx_svauth_sv1 has 50, t3sec_saltedpw has 55. This service must have higher priority!
