From c6ee2c461cf7f9a57548fcf9fe6477e213eba414 Mon Sep 17 00:00:00 2001 From: Art4 Date: Thu, 6 Feb 2025 08:29:14 +0000 Subject: [PATCH] Revert "Refactor Crypto::randomDigits()" This reverts commit 940884e4bd0c1f68757e464f46b4e76c1f4da5b1. --- src/Util/Crypto.php | 9 ++++++++- tests/Unit/Util/CryptoTest.php | 5 +++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Util/Crypto.php b/src/Util/Crypto.php index 4c0e9b72dc..588be8f932 100644 --- a/src/Util/Crypto.php +++ b/src/Util/Crypto.php @@ -305,6 +305,13 @@ class Crypto */ public static function randomDigits($digits) { - return random_int(0, 10 ** $digits - 1); + $rn = ''; + + // generating cryptographically secure pseudo-random integers + for ($i = 0; $i < $digits; $i++) { + $rn .= random_int(0, 9); + } + + return (int) $rn; } } diff --git a/tests/Unit/Util/CryptoTest.php b/tests/Unit/Util/CryptoTest.php index 41fb1e2826..55d24562a9 100644 --- a/tests/Unit/Util/CryptoTest.php +++ b/tests/Unit/Util/CryptoTest.php @@ -21,10 +21,11 @@ class CryptoTest extends TestCase { $random_int = $this->getFunctionMock('Friendica\Util', 'random_int'); $random_int->expects($this->any())->willReturnCallback(function ($min, $max) { - return 12345678; + return 1; }); - self::assertSame(12345678, Crypto::randomDigits(8)); + self::assertSame(1, Crypto::randomDigits(1)); + self::assertSame(11111111, Crypto::randomDigits(8)); } public function testDiasporaPubRsaToMe()