replace openssl_random_pseudo_bytes with native php random functions

This commit is contained in:
sheepish authored and Spine committed 2026-10-31 11:39:15 +01:00
1 parent 3ea21d03d0
commit 82a332ebcf
8 files changed
+21 -33

No files matched your search

+1 -1
View File
@@ -12,7 +12,7 @@ class Crypto {
throw new \Exception("internal openssl iv error");
}
$key = static::hash($key);
$iv = openssl_random_pseudo_bytes($iv_size);
$iv = random_bytes($iv_size); // @phpstan-ignore argument.type (iv is >0)
$cipher = openssl_encrypt(
$plaintext, static::ENC_ALGO, $key, OPENSSL_RAW_DATA, $iv,
$tag, $aad, static::GCM_TAG_SIZE);
+4 -8
View File
@@ -683,16 +683,12 @@ function make_utf8(?string $str): string {
* @param int $len
* @return string random alphanumeric string
*/
function randomString($len = 32) {
function randomString(int $len = 32): string {
$alphabet = str_split('abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789');
$max = count($alphabet);
$mask = 2 ** (int)ceil(log($len, 2)) - 1;
$max = count($alphabet) - 1;
$out = '';
while (strlen($out) < $len) {
$n = ord(openssl_random_pseudo_bytes(1)) & $mask;
if ($n < $max) {
$out .= $alphabet[$n];
}
for ($i = 0; $i < $len; $i++) {
$out .= $alphabet[random_int(0, $max)];
}
return $out;
}
-2
View File
@@ -40,7 +40,6 @@ if (isset($_GET['mode']) && $_GET['mode'] === 'userrank') {
'table' => $rankTable,
]);
} else {
$random = openssl_random_pseudo_bytes(8, $strong);
$db = new DB();
$pg = new DB\Pg(PG_RO_DSN);
echo $Twig->render('admin/site-info.twig', [
@@ -48,7 +47,6 @@ if (isset($_GET['mode']) && $_GET['mode'] === 'userrank') {
'gid' => gid(posix_getgid()),
'euid' => uid(posix_geteuid()),
'egid' => gid(posix_getegid()),
'openssl_strong' => $strong,
'mysql_version' => $db->version(),
'index' => [
'redundant' => $db->redundantIndexList(),
+2 -8
View File
@@ -29,15 +29,9 @@ div#phpinfo hr {width: 934px; background-color: #ccc; border: 0; height: 1px;}
<span style="width: 70px; display: inline-block">Uptime:</span> {{ site_info.uptime.uptime|raw }} <br>
<span style="width: 70px; display: inline-block">Idle time:</span> {{ site_info.uptime.idletime|raw }} <br><br>
<span style="width: 100px; display: inline-block">User:</span> {{ uid }} <br>
<span style="width: 100px; display: inline-block">Group:</span> {{ euid }} <br>
<span style="width: 100px; display: inline-block">Group:</span> {{ gid }} <br>
<span style="width: 100px; display: inline-block">Effective User:</span> {{ euid }} <br>
<span style="width: 100px; display: inline-block">Effective Group:</span> {{ euid }} <br>
<br><tt>openssl_random_pseudo_bytes()</tt>:&nbsp;
{%- if openssl_strong -%}
<span style="color:lime;">Strong</span>
{%- else -%}
<span style="color:orangered;"><b>Weak/broken</span>
{%- endif -%}
<span style="width: 100px; display: inline-block">Effective Group:</span> {{ egid }}
</div>
<h3>Timestamps</h3>
<div class="box pad">
+1 -1
View File
@@ -97,7 +97,7 @@ class RequestTest extends TestCase {
);
$this->assertCount(0, $this->request->tagNameList());
$nameList = ['phpunit.' . randomString(6), 'phpunit.' . randomString(6)];
$nameList = ['phpunit.' . strtolower(randomString(6)), 'phpunit.' . strtolower(randomString(6))];
sort($nameList);
$tagMan = new Manager\Tag();
$tag = $tagMan->create($nameList[0], $admin);
+1 -1
View File
@@ -33,7 +33,7 @@ class SearchEmailTest extends TestCase {
$this->assertSame(3, $search->add($list), 'search-add-list');
$emailList = array_map(fn($u) => $u->email(), $this->userList);
sort($emailList);
sort($emailList, SORT_STRING | SORT_FLAG_CASE);
$this->assertSame($emailList, $search->emailList(), 'search-email-list');
$search->setColumn(1); // Username
+7 -7
View File
@@ -73,8 +73,9 @@ class TGroupTest extends TestCase {
/* Random artist names may not be in alphabetical order, but
* will be rendered in order, so arrange as appropriate.
*/
protected function namePair(string $one, string $two): array {
return $two < $one ? [$two, $one] : [$one, $two];
protected function namePair(string ...$names): array {
sort($names, SORT_STRING | SORT_FLAG_CASE);
return $names;
}
public function testTGroupCreate(): void {
@@ -591,7 +592,7 @@ class TGroupTest extends TestCase {
public function testTGroupTag(): void {
$user = $this->userList['admin'];
$name = 'phpunit.' . randomString(6);
$name = 'phpunit.' . strtolower(randomString(6));
$this->assertSame(
'tags_',
@@ -611,7 +612,7 @@ class TGroupTest extends TestCase {
$this->assertSame(
'tags_' . ucfirst(str_replace('.', '_', $name)),
$this->tgroup->primaryTagCss(),
'tgroup-create-noprimary-tag-css'
'tgroup-create-primary-tag-css'
);
$tag2 = $tagMan->create('phpunit.' . randomString(6), $user);
@@ -937,12 +938,11 @@ class TGroupTest extends TestCase {
$this->tgroup->artistRole()->text(),
'tgroup-dj-3-text',
);
$sortedArtistList = [
$sortedArtistList = $this->namePair(
$artistName[0],
$artistName[1],
$artistName[2],
];
sort($sortedArtistList);
);
$this->assertSame(
'<span class="tooltip" style="float: none" title="'
. implode(' ⁝ ', $sortedArtistList)
+5 -5
View File
@@ -62,7 +62,7 @@ class TagTest extends TestCase {
public function testCreate(): void {
$manager = new Manager\Tag();
$name = self::PREFIX . randomString(5);
$name = self::PREFIX . strtolower(randomString(5));
$this->assertNull($manager->findByName($name), 'tag-lookup-fail');
$this->user = Helper::makeUser('tag.' . randomString(6), 'tag');
@@ -329,7 +329,7 @@ class TagTest extends TestCase {
$this->user = Helper::makeUser('tag.' . randomString(8), 'tag.split');
$this->user->requestContext()->setViewer($this->user);
$manager = new Manager\Tag();
$name = self::PREFIX . randomString(10);
$name = self::PREFIX . strtolower(randomString(10));
$tag = $manager->create($name, $this->user);
$this->user->addBounty(500 * 1024 ** 3);
@@ -380,7 +380,7 @@ class TagTest extends TestCase {
$this->user = Helper::makeUser('tag.' . randomString(8), 'tag.split');
$this->user->requestContext()->setViewer($this->user);
$manager = new Manager\Tag();
$name = self::PREFIX . randomString(10);
$name = self::PREFIX . strtolower(randomString(10));
$tag = $manager->create($name, $this->user);
$this->user->addBounty(500 * 1024 ** 3);
@@ -430,7 +430,7 @@ class TagTest extends TestCase {
public function testTag(): void {
$this->user = Helper::makeUser('tag.' . randomString(8), 'tag.tgroup');
$manager = new Manager\Tag();
$name = self::PREFIX . randomString(10);
$name = self::PREFIX . strtolower(randomString(10));
$tag = $manager->create($name, $this->user);
$this->assertSame($name, $tag->name(), 'tag-instance-name');
$this->assertSame(
@@ -467,7 +467,7 @@ class TagTest extends TestCase {
public function testTagRejection(): void {
$this->user = Helper::makeUser('tag.' . randomString(6), 'tag');
$manager = new Manager\Tag();
$name = 'reject.' . randomString(16);
$name = 'reject.' . strtolower(randomString(16));
$id = $manager->createRejected($name, $this->user);
$this->assertGreaterThan(0, $id, 'tag-reject-create');