mirror of
https://github.com/OPSnet/Gazelle.git
synced 2026-11-07 06:16:00 -10:00
replace openssl_random_pseudo_bytes with native php random functions
This commit is contained in:
1 parent
3ea21d03d0
commit
82a332ebcf
8 files changed
+21
-33
No files matched your search
+1
-1
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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>:
|
||||
{%- 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">
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in new issue
Block a user