Files
cms-core/Documentation/Changelog/13.1/Deprecation-102762-GeneralUtilityhmac.rst

82 lines
1.9 KiB
ReStructuredText

.. include:: /Includes.rst.txt
.. _deprecation-102762-1710402828:
=======================================================
Deprecation: #102762 - Deprecate GeneralUtility::hmac()
=======================================================
See :issue:`102762`
Description
===========
The method :php:`\TYPO3\CMS\Core\Utility\GeneralUtility::hmac()`
has been deprecated in TYPO3 v13 and will be removed with v14 in
favor of :ref:`feature-102761-1704532036`.
Impact
======
Usage of the method will raise a deprecation level log entry in
TYPO3 v13 and a fatal error in TYPO3 v14.
Affected installations
======================
All third-party extensions using :php:`\TYPO3\CMS\Core\Utility\GeneralUtility::hmac()`.
Migration
=========
All usages of :php:`\TYPO3\CMS\Core\Utility\GeneralUtility::hmac()`
must be migrated to use the :php:`hmac()` method in the class
:php:`\TYPO3\CMS\Core\Crypto\HashService`.
Before
------
.. code-block:: php
//use TYPO3\CMS\Core\Utility\GeneralUtility;
$hmac = GeneralUtility::hmac('some-input', 'some-secret');
After
-----
.. code-block:: php
:caption: Using :php:`GeneralUtility::makeInstance()`
//use TYPO3\CMS\Core\Crypto\HashService;
//use TYPO3\CMS\Core\Utility\GeneralUtility;
$hashService = GeneralUtility::makeInstance(HashService::class);
$hmac = $hashService->hmac('some-input', 'some-secret');
.. code-block:: php
:caption: Using dependency injection
namespace MyVendor\MyExt\Services;
use TYPO3\CMS\Core\Crypto\HashService;
use TYPO3\CMS\Core\Utility\GeneralUtility;
final readonly class MyService
{
public function __construct(
private HashService $hashService,
) {}
public function someMethod(): void
{
$hmac = $this->hashService->hmac('some-input', 'some-secret');
}
}
If possible, use dependency injection to inject :php:`HashService` into your class.
.. index:: Backend, FullyScanned, ext:core