TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:31 +02:00
commit 3e43c11539
407 changed files with 51272 additions and 0 deletions
@@ -0,0 +1,35 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
<div class="form-check">
<input
type="radio"
class="form-check-input"
id="t3-install-tool-configuration-passwordHashing-argon2i"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-passwordHashing-argon2i" class="form-check-label">
<strong>Argon2i</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
</div>
<p>
<f:if condition="{preset.isAvailable}">
<f:then>
Select this one if in doubt: Argon2i is a modern key derivation function that was selected as
the winner of the Password Hashing Competition in July 2015.
</f:then>
<f:else>
Argon2i is not available on this system. This is sad since it is a modern password hash
algorithm and the winner of the Password Hashing Competition in July 2015. It is easily
available on all platforms since PHP version 7.2. There is no sane reason to run PHP >7.2
without argon2i. Please reach out to your hoster to fix this and select this hash algorithm
as soon as it is available.
</f:else>
</f:if>
</p>
</f:be.infobox>
</html>
@@ -0,0 +1,33 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
<div class="form-check">
<input
type="radio"
class="form-check-input"
id="t3-install-tool-configuration-passwordHashing-argon2id"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-passwordHashing-argon2id" class="form-check-label">
<strong>Argon2id</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
</div>
<p>
<f:if condition="{preset.isAvailable}">
<f:then>
<strong>Use Argon2id if you are using PHP >= 7.3 on all instances (local, test, production, ...)!</strong><br />
Argon2id is a modern key derivation function. It provides better resistance
to some forms of attack compared to Argon2i.
</f:then>
<f:else>
Argon2id is not available on this system. If you want to use Argon2id make sure you are using PHP >= 7.3
with Argon support.
</f:else>
</f:if>
</p>
</f:be.infobox>
</html>
@@ -0,0 +1,34 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
<div class="form-check">
<input
type="radio"
class="form-check-input"
id="t3-install-tool-configuration-passwordHashing-bcrypt"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-passwordHashing-bcrypt" class="form-check-label">
<strong>bcrypt</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
</div>
<p>
<f:if condition="{preset.isAvailable}">
<f:then>
bcrypt is a good password hashing algorithm. It however needs some additional quirks
for long passwords in PHP and should only be used if Argon2id or Argon2i is not available.
</f:then>
<f:else>
bcrypt is not available on this system. TYPO3 password storage not only requires bcrypt itself,
but also sha384 to be available to use this algorithm. One of these or both are missing.
bcrypt is also used as a fallback if Argon2id or Argon2i are not available.
Reach out to your hoster to fix these issues and prefer installation of Argon2id or Argon2i.
</f:else>
</f:if>
</p>
</f:be.infobox>
</html>
@@ -0,0 +1,40 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="{f:constant(name: 'TYPO3\CMS\Core\Type\ContextualFeedbackSeverity::WARNING')}" disableIcon="true">
<div class="form-check">
<input
type="radio"
class="form-check-input"
id="t3-install-tool-configuration-passwordHashing-custom"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
disabled="disabled"
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-passwordHashing-custom" class="form-check-label">
<strong>Custom configuration</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
</div>
<p>Custom password hash settings. This interface does not allow modification of the values, they are just shown.
Configuring custom hash settings is for advanced users who know exactly what they are doing. Refer to the
core <be:link.documentation identifier="t3coreapi:password-hashing" class="text-decoration-underline">documentation</be:link.documentation> for details.</p>
<f:for each="{preset.configurationDescriptors}" as="configuration" key="configurationKey">
<div class="row mb-3">
<label class="col-sm-6 col-form-label" for="{feature.name}{preset.name}{configurationKey}">{configurationKey}</label>
<div class="col-sm-6">
<f:render partial="Settings/ReadonlyInfo" arguments="{configuration: configuration}" />
<input
id="{feature.name}{preset.name}{configurationKey}"
type="text"
name="install[values][{feature.name}][{preset.name}][{configurationKey}]"
value="{configuration.value}"
class="form-control t3js-custom-preset"
data-radio="t3-install-tool-configuration-passwordHashing-custom"
{f:if(condition: '!{isWritable} || {configuration.readonly}', then: 'disabled')}
/>
</div>
</div>
</f:for>
</f:be.infobox>
</html>
@@ -0,0 +1,34 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
<div class="form-check">
<input
type="radio"
class="form-check-input"
id="t3-install-tool-configuration-passwordHashing-pbkdf2"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-passwordHashing-pbkdf2" class="form-check-label">
<strong>PBKDF2</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
</div>
<p>
<f:if condition="{preset.isAvailable}">
<f:then>
PBKDF2 is a key derivation function recommended by IETF in RFC 8018 as part of the PKCS series, even
though newer password hashing functions such as Argon2id or Argon2i are designed to address weaknesses of PBKDF2.
It could be a preferred password hash algorithm if storing passwords in a FIPS compliant way is necessary.
Usually, selecting Argon2id or Argon2i if available as hash algorithm is ideal.
</f:then>
<f:else>
PBKDF2 is not available on this system. This is very uncommon. If Argon2id, Argon2i and bcrypt are also not available,
you should reach out to your hoster to fix this as soon as possible.
</f:else>
</f:if>
</p>
</f:be.infobox>
</html>
@@ -0,0 +1,34 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:be.infobox state="{f:if(condition:'{preset.isAvailable}', then:'0', else:'2')}" disableIcon="true">
<div class="form-check">
<input
type="radio"
class="form-check-input"
id="t3-install-tool-configuration-passwordHashing-phpass"
name="install[values][{feature.name}][enable]"
value="{preset.name}"
{f:if(condition: '{preset.isAvailable} && {isWritable}', then:'', else:'disabled="disabled"')}
{f:if(condition: preset.isActive, then:'checked="checked"')}
/>
<label for="t3-install-tool-configuration-passwordHashing-phpass" class="form-check-label">
<strong>phpass</strong> {f:if(condition: preset.isActive, then:' [Active]')}
</label>
</div>
<p>
<f:if condition="{preset.isAvailable}">
<f:then>
In almost all cases, a modern hash algorithm like Argon2id or Argon2i should be preferred.
phpass is a portable public domain password hashing framework for use in PHP applications since 2005.
The implementation should work on almost all PHP builds. It might be a suitable password storage hash
method in seldom cases if third party systems must use the same password hash on a low database level
and no sane different authentication service can be used for whatever reason.
</f:then>
<f:else>
That's funny: phpass is always available!
</f:else>
</f:if>
</p>
</f:be.infobox>
</html>