HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/quadcode/vendor/starkbank/ecdsa/tests/testRandom.php
<?php

namespace EllipticCurve\Test;
use EllipticCurve\Test\TestCase;


echo "\n\nRunning 1000 tests:";
\Test\printHeader("Random");


const SECOND_TO_MICROSECOND = 1000;


class TestRandom extends TestCase
{
    public function testMany()
    {
        $averageSign = 0;
        $averageVerify = 0;
        $testQuantity = 1000;
        $success = true;
        for ($i=0; $i<$testQuantity; $i++) {
            $privateKey1 = new \EllipticCurve\PrivateKey();
            $publicKey1 = $privateKey1->publicKey();

            $privateKeyPem = $privateKey1->toPem();
            $publicKeyPem = $publicKey1->toPem();

            $privateKey2 = \EllipticCurve\PrivateKey::fromPem($privateKeyPem);
            $publicKey2 = \EllipticCurve\PublicKey::fromPem($publicKeyPem);

            $message = "test";

            $startSign = microtime(true);
            $signatureBase64 = \EllipticCurve\Ecdsa::sign($message, $privateKey2)->toBase64();
            $elapsedTimeSign = microtime(true) - $startSign;
            $averageSign += $elapsedTimeSign;

            $signature = \EllipticCurve\Signature::fromBase64($signatureBase64);

            $startVerify = microtime(true);
            $result = \EllipticCurve\Ecdsa::verify($message, $signature, $publicKey2);
            $elapsedTimeVerify = microtime(true) - $startVerify;
            $averageVerify += $elapsedTimeVerify;
            $success = $success & $result;
        }
        \Test\assertEqual($success, true);
        $averageSign = ($averageSign / $testQuantity) * SECOND_TO_MICROSECOND;
        $averageVerify = ($averageVerify / $testQuantity) * SECOND_TO_MICROSECOND;
        echo sprintf("\nAverage time sign: %.1f ms.", $averageSign);
        echo sprintf("\nAverage time verify: %.1f ms.", $averageVerify);
    }
}


$tests = new TestRandom();
$tests->run();