Plugin Directory

Changeset 1946575


Ignore:
Timestamp:
09/25/2018 07:30:45 AM (7 years ago)
Author:
piotrmocko
Message:

Version 1.20.0

Location:
perfectdashboard/trunk
Files:
31 edited

Legend:

Unmodified
Added
Removed
  • perfectdashboard/trunk/lang/autoupdater-fi.po

    r1908602 r1946575  
    1 #: tmpl/configuration_form.tmpl.php:19 tmpl/configuration_form.tmpl.php:38
    2 #: tmpl/configuration_form.tmpl.php:42
     1#: tmpl/configuration_form.tmpl.php:19 tmpl/configuration_form.tmpl.php:38 tmpl/configuration_form.tmpl.php:42
    32msgid "Advanced settings"
    43msgstr "Edistyneet asetukset"
     
    5756msgstr "Asetusten tallennus epäonnistui"
    5857
    59 #: tmpl/configuration_form_autoupdater_fields.tmpl.php:83
    60 #: tmpl/configuration_form_autoupdater_fields.tmpl.php:132
     58#: tmpl/configuration_form_autoupdater_fields.tmpl.php:83 tmpl/configuration_form_autoupdater_fields.tmpl.php:132
    6159msgid "Hide"
    6260msgstr "Piilota"
     
    7270#: tmpl/configuration_form_autoupdater_fields.tmpl.php:178
    7371msgid ""
    74 "Provide an e-mail address to receive a notification after the automatic "
    75 "update of the site, in accordance with our hosting Privacy Policy, you have "
     72"Provide an e-mail address to receive a notification after the automatic update of the site, in accordance with our hosting Privacy Policy, you have "
    7673"agreed on."
    7774msgstr "Syötä sähköpostiosoite, jotta saat ilmotuksia automaattisista sivujen päivityksistä, jotka lähetetään tietosuoja selosteemme mukaisesti"
    78 
    7975
    8076#: tmpl/configuration_form_advanced_fields.tmpl.php:111
    8177msgid "Put your website into the maintenance mode"
    8278msgstr "Laita nettisivut ylläpitotilaan"
     79
     80#: tmpl/configuration_form_autoupdater_fields.tmpl.php:202
     81msgid "Notification on failed update"
     82msgstr "Ilmoitus epäonnistuneesta päivityksestä"
     83
     84#: tmpl/configuration_form_autoupdater_fields.tmpl.php:184
     85msgid "Notification on successful update"
     86msgstr "Ilmoitus onnistuneesta päivityksestä"
    8387
    8488#: tmpl/configuration_form_advanced_fields.tmpl.php:6
     
    102106msgstr "Asetukset on tallennettu"
    103107
    104 #: tmpl/configuration_form_autoupdater_fields.tmpl.php:82
    105 #: tmpl/configuration_form_autoupdater_fields.tmpl.php:131
     108#: tmpl/configuration_form_autoupdater_fields.tmpl.php:214
     109msgid "Receive a notification after a failed update"
     110msgstr "Vastaanota ilmoitus epäonnistuneen päivityksen jälkeen"
     111
     112#: tmpl/configuration_form_autoupdater_fields.tmpl.php:196
     113msgid "Receive a notification after a successful update"
     114msgstr "Vastaanota ilmoitus onnistuneen päivityksen jälkeen"
     115
     116#: tmpl/configuration_form_autoupdater_fields.tmpl.php:82 tmpl/configuration_form_autoupdater_fields.tmpl.php:131
    106117msgid "Show"
    107118msgstr "Näytä"
     
    124135
    125136#: tmpl/configuration_form.tmpl.php:61
    126 msgid ""
    127 "The email address entered did not appear to be a valid email address. Please "
    128 "enter a valid email address."
     137msgid "The email address entered did not appear to be a valid email address. Please enter a valid email address."
    129138msgstr "Syöttämäsi sähköpostiosoite ei ole validi sähköpostiosoite. Syötä validi sähköpostiosoite"
    130139
    131140#: tmpl/configuration_form_advanced_fields.tmpl.php:67
    132 msgid ""
    133 "The response will be encrypted by the plugin if your website is not secured "
    134 "with the TLS"
     141msgid "The response will be encrypted by the plugin if your website is not secured with the TLS"
    135142msgstr "Vastaus salataan tämän lisäosan puolesta, jos nettisivusi ei ole suojattu TLS:llä."
    136143
     
    140147
    141148#: tmpl/configuration_form_advanced_fields.tmpl.php:45
    142 msgid ""
    143 "This key is used to encrpyt the response if your website is not secured with "
    144 "the TLS"
     149msgid "This key is used to encrpyt the response if your website is not secured with the TLS"
    145150msgstr "Tätä avainta käytetään vastauksen salaamiseen, jos nettisivusi ei ole suojattu TLS:llä."
    146151
     
    166171
    167172#: tmpl/configuration_form_autoupdater_fields.tmpl.php:44
    168 msgid ""
    169 "to the latest available version but with a weekly delay to wait for "
    170 "extensions' updates"
     173msgid "to the latest available version but with a weekly delay to wait for extensions' updates"
    171174msgstr "viimeisimpään versioon, mutta viikon viiveellä odottomaan liitännäisten päivityksiä"
    172175
  • perfectdashboard/trunk/lib/src/Api.php

    r1883279 r1946575  
    7373        }
    7474
    75         // Validate the request payload
    76         $auth = AutoUpdater_Authentication::getInstance();
    77         if (!$auth->validate($payload))
     75        try
     76        {
     77            // Validate the request payload
     78            $auth = AutoUpdater_Authentication::getInstance();
     79            $auth->validate($payload);
     80        }
     81        catch (Exception $e)
    7882        {
    7983            AutoUpdater_Response::getInstance()
    8084                ->setCode(403)
    8185                ->setAutoupdaterHeader()
    82                 ->send();
     86                ->setBody(array(
     87                    'error' => array(
     88                        'code'    => $e->getCode(),
     89                        'message' => $e->getMessage(),
     90                    ),
     91                ))
     92                ->sendJSON();
    8393        }
    8494
  • perfectdashboard/trunk/lib/src/Authentication.php

    r1883279 r1946575  
    2727     *
    2828     * @return bool
     29     *
     30     * @throws Exception
    2931     */
    3032    public function validate($payload)
     
    3335        {
    3436            AutoUpdater_Log::debug('Invalid timestamp');
    35 
    36             return false;
     37            throw new Exception('Invalid timestamp', 403);
    3738        }
    3839
     
    4142        if (!$signature || !hash_equals($_REQUEST['pd_signature'], $signature))
    4243        {
    43             AutoUpdater_Log::debug('Invalid request signature');
    44 
    45             return false;
     44            AutoUpdater_Log::debug('Invalid signature');
     45            throw new Exception('Invalid signature', 403);
    4646        }
    4747
     
    5555            {
    5656                AutoUpdater_Log::debug('Write token has expired');
    57 
    58                 return false;
     57                throw new Exception('Token has expired', 403);
    5958            }
    6059        }
  • perfectdashboard/trunk/lib/src/Backuptool.php

    r1899892 r1946575  
    295295        // Download a new package
    296296        $download_url = $customURL ? $customURL : AutoUpdater_Config::getAutoUpdaterUrl()
    297             . 'download/backuptool/autoupdater.zip';
     297            . 'download/backuptool/autoupdater.zip?php_version=' . phpversion();
    298298        $file_path    = $filemanager->download($download_url);
    299299
  • perfectdashboard/trunk/lib/src/vendor/autoload.php

    r1883279 r1946575  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInitdfef324225849e29106b95ef25feaa97::getLoader();
     7return ComposerAutoloaderInit316423e819ec7452588ab21b1fdf96e0::getLoader();
  • perfectdashboard/trunk/lib/src/vendor/composer/autoload_real.php

    r1883279 r1946575  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInitdfef324225849e29106b95ef25feaa97
     5class ComposerAutoloaderInit316423e819ec7452588ab21b1fdf96e0
    66{
    77    private static $loader;
     
    2020        }
    2121
    22         spl_autoload_register(array('ComposerAutoloaderInitdfef324225849e29106b95ef25feaa97', 'loadClassLoader'), true, true);
     22        spl_autoload_register(array('ComposerAutoloaderInit316423e819ec7452588ab21b1fdf96e0', 'loadClassLoader'), true, true);
    2323        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
    24         spl_autoload_unregister(array('ComposerAutoloaderInitdfef324225849e29106b95ef25feaa97', 'loadClassLoader'));
     24        spl_autoload_unregister(array('ComposerAutoloaderInit316423e819ec7452588ab21b1fdf96e0', 'loadClassLoader'));
    2525
    2626        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    2828            require_once __DIR__ . '/autoload_static.php';
    2929
    30             call_user_func(\Composer\Autoload\ComposerStaticInitdfef324225849e29106b95ef25feaa97::getInitializer($loader));
     30            call_user_func(\Composer\Autoload\ComposerStaticInit316423e819ec7452588ab21b1fdf96e0::getInitializer($loader));
    3131        } else {
    3232            $map = require __DIR__ . '/autoload_namespaces.php';
     
    4949
    5050        if ($useStaticLoader) {
    51             $includeFiles = Composer\Autoload\ComposerStaticInitdfef324225849e29106b95ef25feaa97::$files;
     51            $includeFiles = Composer\Autoload\ComposerStaticInit316423e819ec7452588ab21b1fdf96e0::$files;
    5252        } else {
    5353            $includeFiles = require __DIR__ . '/autoload_files.php';
    5454        }
    5555        foreach ($includeFiles as $fileIdentifier => $file) {
    56             composerRequiredfef324225849e29106b95ef25feaa97($fileIdentifier, $file);
     56            composerRequire316423e819ec7452588ab21b1fdf96e0($fileIdentifier, $file);
    5757        }
    5858
     
    6161}
    6262
    63 function composerRequiredfef324225849e29106b95ef25feaa97($fileIdentifier, $file)
     63function composerRequire316423e819ec7452588ab21b1fdf96e0($fileIdentifier, $file)
    6464{
    6565    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • perfectdashboard/trunk/lib/src/vendor/composer/autoload_static.php

    r1883279 r1946575  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInitdfef324225849e29106b95ef25feaa97
     7class ComposerStaticInit316423e819ec7452588ab21b1fdf96e0
    88{
    99    public static $files = array (
  • perfectdashboard/trunk/lib/src/vendor/composer/installed.json

    r1899892 r1946575  
    5252    {
    5353        "name": "paragonie/sodium_compat",
    54         "version": "v1.6.3",
    55         "version_normalized": "1.6.3.0",
     54        "version": "v1.7.0",
     55        "version_normalized": "1.7.0.0",
    5656        "source": {
    5757            "type": "git",
    5858            "url": "https://github.com/paragonie/sodium_compat.git",
    59             "reference": "7d0549c3947eaea620f4e523f42ab236cf7fd304"
     59            "reference": "7b73005be3c224f12c47bd75a23ce24b762e47e8"
    6060        },
    6161        "dist": {
    6262            "type": "zip",
    63             "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/7d0549c3947eaea620f4e523f42ab236cf7fd304",
    64             "reference": "7d0549c3947eaea620f4e523f42ab236cf7fd304",
     63            "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/7b73005be3c224f12c47bd75a23ce24b762e47e8",
     64            "reference": "7b73005be3c224f12c47bd75a23ce24b762e47e8",
    6565            "shasum": ""
    6666        },
     
    7676            "ext-sodium": "PHP >= 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security."
    7777        },
    78         "time": "2018-06-06T17:30:29+00:00",
     78        "time": "2018-09-22T03:59:58+00:00",
    7979        "type": "library",
    8080        "installation-source": "dist",
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/README.md

    r1853488 r1946575  
    2626`security at paragonie dot com` so we can help get the ball rolling.
    2727
    28 If you'd like to learn more about the defensive security measures we've taken,
     28However, sodium_compat has been adopted by high profile open source projects,
     29such as [Joomla!](https://github.com/joomla/joomla-cms/blob/459d74686d2a638ec51149d7c44ddab8075852be/composer.json#L40)
     30and [Magento](https://github.com/magento/magento2/blob/8fd89cfdf52c561ac0ca7bc20fd38ef688e201b0/composer.json#L44).
     31
     32If you'd like to learn more about the defensive security measures we've taken
     33to prevent sodium_compat from being a source of vulnerability in your systems,
    2934please read [*Cryptographically Secure PHP Development*](https://paragonie.com/blog/2017/02/cryptographically-secure-php-development).
    3035
     
    116121extension installed already.
    117122
    118 Since this doesn't require a namespace, this API *is* exposed on PHP 5.2.
    119 
    120123## General-Use Polyfill
    121124
     
    146149code already written for the libsodium PHP extension should work with our
    147150polyfill without additional code changes.
     151
     152Since this doesn't require a namespace, this API *is* exposed on PHP 5.2.
    148153
    149154Since version 0.7.0, we have our own namespaced API (`ParagonIE\Sodium\*`) to allow brevity
     
    201206
    202207This is also true of non-Windows 32-bit operating systems, or if somehow PHP
    203 was compiled where `PHP_INT_SIZE` equals `4` instead of `8`.
     208was compiled where `PHP_INT_SIZE` equals `4` instead of `8` (i.e. Linux on i386).
    204209
    205210## API Coverage
     211
     212**Recommended reading:** [Libsodium Quick Reference](https://paragonie.com/blog/2017/06/libsodium-quick-reference-quick-comparison-similar-functions-and-which-one-use)
    206213
    207214* Mainline NaCl Features
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Compat.php

    r1883279 r1946575  
    143143     * Compared to memcmp(), compare() is more useful for sorting.
    144144     *
    145      * @param string $left The left operand; must be a string
     145     * @param string $left  The left operand; must be a string
    146146     * @param string $right The right operand; must be a string
    147147     * @return int          < 0 if the left operand is less than the right
     
    239239            throw new SodiumException('Message must be at least CRYPTO_AEAD_AES256GCM_ABYTES long');
    240240        }
    241 
    242         if (!self::crypto_aead_aes256gcm_is_available()) {
    243             throw new SodiumException('AES-256-GCM is not available');
    244         }
     241        if (!is_callable('openssl_decrypt')) {
     242            throw new SodiumException('The OpenSSL extension is not installed, or openssl_decrypt() is not available');
     243        }
     244
     245        /** @var string $ctext */
    245246        $ctext = ParagonIE_Sodium_Core_Util::substr($ciphertext, 0, -self::CRYPTO_AEAD_AES256GCM_ABYTES);
     247        /** @var string $authTag */
    246248        $authTag = ParagonIE_Sodium_Core_Util::substr($ciphertext, -self::CRYPTO_AEAD_AES256GCM_ABYTES, 16);
    247249        return openssl_decrypt(
     
    294296            throw new SodiumException('Key must be CRYPTO_AEAD_AES256GCM_KEYBYTES long');
    295297        }
     298
     299        if (!is_callable('openssl_encrypt')) {
     300            throw new SodiumException('The OpenSSL extension is not installed, or openssl_encrypt() is not available');
     301        }
     302
    296303        $authTag = '';
    297304        $ciphertext = openssl_encrypt(
     
    312319     *
    313320     * @return string
     321     * @throws Exception
     322     * @throws Error
    314323     */
    315324    public static function crypto_aead_aes256gcm_keygen()
     
    328337     *
    329338     * @param string $ciphertext Encrypted message (with Poly1305 MAC appended)
    330      * @param string $assocData Authenticated Associated Data (unencrypted)
    331      * @param string $nonce Number to be used only Once; must be 8 bytes
    332      * @param string $key Encryption key
     339     * @param string $assocData  Authenticated Associated Data (unencrypted)
     340     * @param string $nonce      Number to be used only Once; must be 8 bytes
     341     * @param string $key        Encryption key
    333342     *
    334343     * @return string            The original plaintext message
     
    410419     * @param string $plaintext Message to be encrypted
    411420     * @param string $assocData Authenticated Associated Data (unencrypted)
    412      * @param string $nonce Number to be used only Once; must be 8 bytes
    413      * @param string $key Encryption key
     421     * @param string $nonce     Number to be used only Once; must be 8 bytes
     422     * @param string $key       Encryption key
    414423     *
    415424     * @return string           Ciphertext with a 16-byte Poly1305 message
     
    482491     *
    483492     * @param string $ciphertext Encrypted message (with Poly1305 MAC appended)
    484      * @param string $assocData Authenticated Associated Data (unencrypted)
    485      * @param string $nonce Number to be used only Once; must be 12 bytes
    486      * @param string $key Encryption key
     493     * @param string $assocData  Authenticated Associated Data (unencrypted)
     494     * @param string $nonce      Number to be used only Once; must be 12 bytes
     495     * @param string $key        Encryption key
    487496     *
    488497     * @return string            The original plaintext message
     
    558567     *
    559568     * @return string
     569     * @throws Exception
     570     * @throws Error
    560571     */
    561572    public static function crypto_aead_chacha20poly1305_keygen()
     
    642653     *
    643654     * @return string
     655     * @throws Exception
     656     * @throws Error
    644657     */
    645658    public static function crypto_aead_chacha20poly1305_ietf_keygen()
     
    767780     *
    768781     * @return string
     782     * @throws Exception
     783     * @throws Error
    769784     */
    770785    public static function crypto_aead_xchacha20poly1305_ietf_keygen()
     
    815830    /**
    816831     * @return string
     832     * @throws Exception
     833     * @throws Error
    817834     */
    818835    public static function crypto_auth_keygen()
     
    10051022            return (string) call_user_func('\\Sodium\\crypto_box_keypair');
    10061023        }
     1024        if (PHP_INT_SIZE === 4) {
     1025            return ParagonIE_Sodium_Crypto32::box_keypair();
     1026        }
    10071027        return ParagonIE_Sodium_Crypto::box_keypair();
    10081028    }
     
    10951115     * Extract the public key from a crypto_box keypair.
    10961116     *
    1097      * @param string $keypair
     1117     * @param string $keypair Keypair containing secret and public key
    10981118     * @return string         Your crypto_box public key
    10991119     * @throws SodiumException
     
    11271147     *
    11281148     * @param string $secretKey Any X25519 secret key
    1129      * @return string      The corresponding X25519 public key
     1149     * @return string           The corresponding X25519 public key
    11301150     * @throws SodiumException
    11311151     * @throws TypeError
     
    12611281     *
    12621282     * @param string &$ctx BLAKE2 hashing context. Generated by crypto_generichash_init().
    1263      * @param int $length Hash output size.
     1283     * @param int $length  Hash output size.
    12641284     * @return string      Final BLAKE2b hash.
    12651285     * @throws SodiumException
     
    13381358     * Update a BLAKE2b hashing context with additional data.
    13391359     *
    1340      * @param string &$ctx BLAKE2 hashing context. Generated by crypto_generichash_init().
     1360     * @param string &$ctx    BLAKE2 hashing context. Generated by crypto_generichash_init().
    13411361     *                        $ctx is passed by reference and gets updated in-place.
    13421362     * @param string $message The message to append to the existing hash state.
     
    13701390    /**
    13711391     * @return string
     1392     * @throws Exception
     1393     * @throws Error
    13721394     */
    13731395    public static function crypto_generichash_keygen()
     
    15881610
    15891611        if (self::useNewSodiumAPI()) {
    1590             return (string) sodium_crypto_pwhash_scryptsalsa208sha256($outlen, $passwd, $salt, $opslimit, $memlimit);
     1612            return (string) sodium_crypto_pwhash_scryptsalsa208sha256(
     1613                (int) $outlen,
     1614                (string) $passwd,
     1615                (string) $salt,
     1616                (int) $opslimit,
     1617                (int) $memlimit
     1618            );
    15911619        }
    15921620        if (self::use_fallback('crypto_pwhash_scryptsalsa208sha256')) {
    1593             return (string) call_user_func('\\Sodium\\crypto_pwhash_scryptsalsa208sha256', $outlen, $passwd, $salt, $opslimit, $memlimit);
     1621            return (string) call_user_func(
     1622                '\\Sodium\\crypto_pwhash_scryptsalsa208sha256',
     1623                (int) $outlen,
     1624                (string) $passwd,
     1625                (string) $salt,
     1626                (int) $opslimit,
     1627                (int) $memlimit
     1628            );
    15941629        }
    15951630        // This is the best we can do.
     
    16331668
    16341669        if (self::useNewSodiumAPI()) {
    1635             return (string) sodium_crypto_pwhash_scryptsalsa208sha256_str($passwd, $opslimit, $memlimit);
     1670            return (string) sodium_crypto_pwhash_scryptsalsa208sha256_str(
     1671                (string) $passwd,
     1672                (int) $opslimit,
     1673                (int) $memlimit
     1674            );
    16361675        }
    16371676        if (self::use_fallback('crypto_pwhash_scryptsalsa208sha256_str')) {
    1638             return (string) call_user_func('\\Sodium\\crypto_pwhash_scryptsalsa208sha256_str', $passwd, $opslimit, $memlimit);
     1677            return (string) call_user_func(
     1678                '\\Sodium\\crypto_pwhash_scryptsalsa208sha256_str',
     1679                (string) $passwd,
     1680                (int) $opslimit,
     1681                (int) $memlimit
     1682            );
    16391683        }
    16401684        // This is the best we can do.
     
    16571701
    16581702        if (self::useNewSodiumAPI()) {
    1659             return (bool) sodium_crypto_pwhash_scryptsalsa208sha256_str_verify($passwd, $hash);
     1703            return (bool) sodium_crypto_pwhash_scryptsalsa208sha256_str_verify(
     1704                (string) $passwd,
     1705                (string) $hash
     1706            );
    16601707        }
    16611708        if (self::use_fallback('crypto_pwhash_scryptsalsa208sha256_str_verify')) {
    1662             return (bool) call_user_func('\\Sodium\\crypto_pwhash_scryptsalsa208sha256_str_verify', $passwd, $hash);
     1709            return (bool) call_user_func(
     1710                '\\Sodium\\crypto_pwhash_scryptsalsa208sha256_str_verify',
     1711                (string) $passwd,
     1712                (string) $hash
     1713            );
    16631714        }
    16641715        // This is the best we can do.
     
    18381889     *
    18391890     * @return string
     1891     * @throws Exception
     1892     * @throws Error
    18401893     */
    18411894    public static function crypto_secretbox_keygen()
     
    19472000     *
    19482001     * @return string
     2002     * @throws Exception
     2003     * @throws Error
    19492004     */
    19502005    public static function crypto_shorthash_keygen()
     
    22432298        }
    22442299        if (self::use_fallback('crypto_sign_verify_detached')) {
    2245             return (bool) call_user_func('\\Sodium\\crypto_sign_verify_detached', $signature, $message, $publicKey);
     2300            return (bool) call_user_func(
     2301                '\\Sodium\\crypto_sign_verify_detached',
     2302                $signature,
     2303                $message,
     2304                $publicKey
     2305            );
    22462306        }
    22472307        if (PHP_INT_SIZE === 4) {
     
    24122472     *
    24132473     * @return string
     2474     * @throws Exception
     2475     * @throws Error
    24142476     */
    24152477    public static function crypto_stream_keygen()
     
    24642526        }
    24652527        if (self::use_fallback('increment')) {
    2466             @call_user_func('\\Sodium\\increment', $var);
     2528            $func = '\\Sodium\\increment';
     2529            $func($var);
    24672530            return;
    24682531        }
     
    25642627        }
    25652628        if (self::use_fallback('memzero')) {
    2566             @call_user_func('\\Sodium\\memzero', $var);
    2567             return;
     2629            $func = '\\Sodium\\memzero';
     2630            $func($var);
     2631            if ($var === null) {
     2632                return;
     2633            }
    25682634        }
    25692635        // This is the best we can do.
     
    25802646     * @param int $numBytes
    25812647     * @return string
     2648     * @throws Exception
    25822649     * @throws TypeError
    25832650     */
     
    25892656                $numBytes = (int) $numBytes;
    25902657            } else {
    2591                 throw new TypeError('Argument 1 must be an integer, ' . gettype($numBytes) . ' given.');
     2658                throw new TypeError(
     2659                    'Argument 1 must be an integer, ' . gettype($numBytes) . ' given.'
     2660                );
    25922661            }
    25932662        }
     
    26032672     * @param int $range
    26042673     * @return int
     2674     * @throws Exception
     2675     * @throws Error
    26052676     * @throws TypeError
    26062677     */
     
    26102681        if (!is_int($range)) {
    26112682            if (is_numeric($range)) {
    2612                 $range = (int)$range;
     2683                $range = (int) $range;
    26132684            } else {
    2614                 throw new TypeError('Argument 1 must be an integer, ' . gettype($range) . ' given.');
     2685                throw new TypeError(
     2686                    'Argument 1 must be an integer, ' . gettype($range) . ' given.'
     2687                );
    26152688            }
    26162689        }
     
    26252698     *
    26262699     * @return int
     2700     * @throws Exception
     2701     * @throws Error
     2702     * @throws TypeError
    26272703     */
    26282704    public static function randombytes_random16()
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core/BLAKE2b.php

    r1853488 r1946575  
    132132            throw new SodiumException('y[1] is not an integer');
    133133        }
    134         return self::new64($x[0] ^ $y[0], $x[1] ^ $y[1]);
     134        return self::new64(
     135            (int) ($x[0] ^ $y[0]),
     136            (int) ($x[1] ^ $y[1])
     137        );
    135138    }
    136139
     
    164167        if ($c < 32) {
    165168            /** @var int $h0 */
    166             $h0 = ($x[0] << $c) | (
     169            $h0 = ((int) ($x[0]) << $c) | (
    167170                (
    168                     $x[1] & ((1 << $c) - 1)
     171                    (int) ($x[1]) & ((1 << $c) - 1)
    169172                        <<
    170173                    (32 - $c)
     
    172175            );
    173176            /** @var int $l0 */
    174             $l0 = $x[1] << $c;
     177            $l0 = (int) ($x[1]) << $c;
    175178        } else {
    176179            /** @var int $h0 */
    177             $h0 = $x[1] << ($c - 32);
     180            $h0 = (int) ($x[1]) << ($c - 32);
    178181        }
    179182
     
    183186        if ($c1 < 32) {
    184187            /** @var int $h1 */
    185             $h1 = $x[0] >> $c1;
     188            $h1 = (int) ($x[0]) >> $c1;
    186189            /** @var int $l1 */
    187             $l1 = ($x[1] >> $c1) | ($x[0] & ((1 << $c1) - 1)) << (32 - $c1);
     190            $l1 = ((int) ($x[1]) >> $c1) | ((int) ($x[0]) & ((1 << $c1) - 1)) << (32 - $c1);
    188191        } else {
    189192            /** @var int $l1 */
    190             $l1 = $x[0] >> ($c1 - 32);
     193            $l1 = (int) ($x[0]) >> ($c1 - 32);
    191194        }
    192195
     
    218221    {
    219222        /** @var int $l */
    220         $l = $x[$i]   | ($x[$i+1]<<8) | ($x[$i+2]<<16) | ($x[$i+3]<<24);
     223        $l = (int) ($x[$i])
     224             | ((int) ($x[$i+1]) << 8)
     225             | ((int) ($x[$i+2]) << 16)
     226             | ((int) ($x[$i+3]) << 24);
    221227        /** @var int $h */
    222         $h = $x[$i+4] | ($x[$i+5]<<8) | ($x[$i+6]<<16) | ($x[$i+7]<<24);
     228        $h = (int) ($x[$i+4])
     229             | ((int) ($x[$i+5]) << 8)
     230             | ((int) ($x[$i+6]) << 16)
     231             | ((int) ($x[$i+7]) << 24);
    223232        return self::new64($h, $l);
    224233    }
     
    244253            /** @var int $uIdx */
    245254            $uIdx = ((7 - $j) & 4) >> 2;
    246             $x[$i]   = ($u[$uIdx] & 0xff);
     255            $x[$i]   = ((int) ($u[$uIdx]) & 0xff);
    247256            if (++$i > $maxLength) {
    248257                return;
     
    623632    {
    624633        /**
    625          * @var array<mixed, int>
     634         * @var array<int, int|string> $arr
    626635         */
    627636        $arr = $a->toArray();
     
    669678        $str .= self::SplFixedArrayToString($ctx[3]);
    670679
     680        /** @var int $ctx4 */
     681        $ctx4 = (int) $ctx[4];
     682
    671683        # size_t buflen;
    672684        $str .= implode('', array(
    673             self::intToChr($ctx[4] & 0xff),
    674             self::intToChr(($ctx[4] >> 8) & 0xff),
    675             self::intToChr(($ctx[4] >> 16) & 0xff),
    676             self::intToChr(($ctx[4] >> 24) & 0xff),
    677             self::intToChr(($ctx[4] >> 32) & 0xff),
    678             self::intToChr(($ctx[4] >> 40) & 0xff),
    679             self::intToChr(($ctx[4] >> 48) & 0xff),
    680             self::intToChr(($ctx[4] >> 56) & 0xff)
     685            self::intToChr($ctx4 & 0xff),
     686            self::intToChr(($ctx4 >> 8) & 0xff),
     687            self::intToChr(($ctx4 >> 16) & 0xff),
     688            self::intToChr(($ctx4 >> 24) & 0xff),
     689            self::intToChr(($ctx4 >> 32) & 0xff),
     690            self::intToChr(($ctx4 >> 40) & 0xff),
     691            self::intToChr(($ctx4 >> 48) & 0xff),
     692            self::intToChr(($ctx4 >> 56) & 0xff)
    681693        ));
    682694        # uint8_t last_node;
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core/Curve25519.php

    r1853488 r1946575  
    8989            /** @var int $x */
    9090            $x = (($f[$i] ^ $g[$i]) & $b);
    91             $h[$i] = (int) ($f[$i] ^ $x);
     91            $h[$i] = (int) ((int) ($f[$i]) ^ $x);
    9292        }
    9393        return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray($h);
     
    454454        /** @var int $f9_2 */
    455455        $f9_2 = $f9 << 1;
    456         $f0g0    = self::mul($f0,    $g0, 27);
    457         $f0g1    = self::mul($f0,    $g1, 26);
    458         $f0g2    = self::mul($f0,    $g2, 27);
    459         $f0g3    = self::mul($f0,    $g3, 26);
    460         $f0g4    = self::mul($f0,    $g4, 27);
    461         $f0g5    = self::mul($f0,    $g5, 26);
    462         $f0g6    = self::mul($f0,    $g6, 27);
    463         $f0g7    = self::mul($f0,    $g7, 26);
    464         $f0g8    = self::mul($f0,    $g8, 27);
    465         $f0g9    = self::mul($f0,    $g9, 27);
    466         $f1g0    = self::mul($f1,    $g0, 27);
    467         $f1g1_2  = self::mul($f1_2,  $g1, 26);
    468         $f1g2    = self::mul($f1,    $g2, 27);
    469         $f1g3_2  = self::mul($f1_2,  $g3, 26);
    470         $f1g4    = self::mul($f1,    $g4, 27);
    471         $f1g5_2  = self::mul($f1_2,  $g5, 26);
    472         $f1g6    = self::mul($f1,    $g6, 27);
    473         $f1g7_2  = self::mul($f1_2,  $g7, 26);
    474         $f1g8    = self::mul($f1,    $g8, 27);
    475         $f1g9_38 = self::mul($g9_19, $f1_2, 27);
    476         $f2g0    = self::mul($f2,    $g0, 27);
    477         $f2g1    = self::mul($f2,    $g1, 26);
    478         $f2g2    = self::mul($f2,    $g2, 27);
    479         $f2g3    = self::mul($f2,    $g3, 26);
    480         $f2g4    = self::mul($f2,    $g4, 27);
    481         $f2g5    = self::mul($f2,    $g5, 26);
    482         $f2g6    = self::mul($f2,    $g6, 27);
    483         $f2g7    = self::mul($f2,    $g7, 26);
    484         $f2g8_19 = self::mul($g8_19, $f2, 27);
    485         $f2g9_19 = self::mul($g9_19, $f2, 27);
    486         $f3g0    = self::mul($f3,    $g0, 27);
    487         $f3g1_2  = self::mul($f3_2,  $g1, 26);
    488         $f3g2    = self::mul($f3,    $g2, 27);
    489         $f3g3_2  = self::mul($f3_2,  $g3, 26);
    490         $f3g4    = self::mul($f3,    $g4, 27);
    491         $f3g5_2  = self::mul($f3_2,  $g5, 26);
    492         $f3g6    = self::mul($f3,    $g6, 27);
    493         $f3g7_38 = self::mul($g7_19, $f3_2, 27);
    494         $f3g8_19 = self::mul($g8_19, $f3, 27);
    495         $f3g9_38 = self::mul($g9_19, $f3_2, 27);
    496         $f4g0    = self::mul($f4,    $g0, 27);
    497         $f4g1    = self::mul($f4,    $g1, 26);
    498         $f4g2    = self::mul($f4,    $g2, 27);
    499         $f4g3    = self::mul($f4,    $g3, 26);
    500         $f4g4    = self::mul($f4,    $g4, 27);
    501         $f4g5    = self::mul($f4,    $g5, 26);
    502         $f4g6_19 = self::mul($g6_19, $f4, 27);
    503         $f4g7_19 = self::mul($g7_19, $f4, 27);
    504         $f4g8_19 = self::mul($g8_19, $f4, 27);
    505         $f4g9_19 = self::mul($g9_19, $f4, 27);
    506         $f5g0    = self::mul($f5,    $g0, 27);
    507         $f5g1_2  = self::mul($f5_2,  $g1, 26);
    508         $f5g2    = self::mul($f5,    $g2, 27);
    509         $f5g3_2  = self::mul($f5_2,  $g3, 26);
    510         $f5g4    = self::mul($f5,    $g4, 27);
    511         $f5g5_38 = self::mul($g5_19, $f5_2, 27);
    512         $f5g6_19 = self::mul($g6_19, $f5, 26);
    513         $f5g7_38 = self::mul($g7_19, $f5_2, 27);
    514         $f5g8_19 = self::mul($g8_19, $f5, 26);
    515         $f5g9_38 = self::mul($g9_19, $f5_2, 27);
    516         $f6g0    = self::mul($f6,    $g0, 27);
    517         $f6g1    = self::mul($f6,    $g1, 26);
    518         $f6g2    = self::mul($f6,    $g2, 27);
    519         $f6g3    = self::mul($f6,    $g3, 26);
    520         $f6g4_19 = self::mul($g4_19, $f6, 27);
    521         $f6g5_19 = self::mul($g5_19, $f6, 27);
    522         $f6g6_19 = self::mul($g6_19, $f6, 27);
    523         $f6g7_19 = self::mul($g7_19, $f6, 27);
    524         $f6g8_19 = self::mul($g8_19, $f6, 27);
    525         $f6g9_19 = self::mul($g9_19, $f6, 27);
    526         $f7g0    = self::mul($f7,    $g0, 27);
    527         $f7g1_2  = self::mul($f7_2,  $g1, 26);
    528         $f7g2    = self::mul($f7,    $g2, 27);
    529         $f7g3_38 = self::mul($g3_19, $f7_2, 27);
    530         $f7g4_19 = self::mul($g4_19, $f7, 27);
    531         $f7g5_38 = self::mul($g5_19, $f7_2, 27);
    532         $f7g6_19 = self::mul($g6_19, $f7, 27);
    533         $f7g7_38 = self::mul($g7_19, $f7_2, 27);
    534         $f7g8_19 = self::mul($g8_19, $f7, 27);
    535         $f7g9_38 = self::mul($g9_19,$f7_2, 27);
    536         $f8g0    = self::mul($f8,    $g0, 27);
    537         $f8g1    = self::mul($f8,    $g1, 26);
    538         $f8g2_19 = self::mul($g2_19, $f8, 27);
    539         $f8g3_19 = self::mul($g3_19, $f8, 27);
    540         $f8g4_19 = self::mul($g4_19, $f8, 27);
    541         $f8g5_19 = self::mul($g5_19, $f8, 27);
    542         $f8g6_19 = self::mul($g6_19, $f8, 27);
    543         $f8g7_19 = self::mul($g7_19, $f8, 27);
    544         $f8g8_19 = self::mul($g8_19, $f8, 27);
    545         $f8g9_19 = self::mul($g9_19, $f8, 27);
    546         $f9g0    = self::mul($f9,    $g0, 27);
    547         $f9g1_38 = self::mul($g1_19, $f9_2, 27);
    548         $f9g2_19 = self::mul($g2_19, $f9, 27);
    549         $f9g3_38 = self::mul($g3_19, $f9_2, 27);
    550         $f9g4_19 = self::mul($g4_19, $f9, 27);
    551         $f9g5_38 = self::mul($g5_19, $f9_2, 27);
    552         $f9g6_19 = self::mul($g6_19, $f9, 27);
    553         $f9g7_38 = self::mul($g7_19, $f9_2, 27);
    554         $f9g8_19 = self::mul($g8_19, $f9, 27);
    555         $f9g9_38 = self::mul($g9_19, $f9_2, 27);
     456        $f0g0    = self::mul($f0,    $g0, 26);
     457        $f0g1    = self::mul($f0,    $g1, 25);
     458        $f0g2    = self::mul($f0,    $g2, 26);
     459        $f0g3    = self::mul($f0,    $g3, 25);
     460        $f0g4    = self::mul($f0,    $g4, 26);
     461        $f0g5    = self::mul($f0,    $g5, 25);
     462        $f0g6    = self::mul($f0,    $g6, 26);
     463        $f0g7    = self::mul($f0,    $g7, 25);
     464        $f0g8    = self::mul($f0,    $g8, 26);
     465        $f0g9    = self::mul($f0,    $g9, 26);
     466        $f1g0    = self::mul($f1,    $g0, 26);
     467        $f1g1_2  = self::mul($f1_2,  $g1, 25);
     468        $f1g2    = self::mul($f1,    $g2, 26);
     469        $f1g3_2  = self::mul($f1_2,  $g3, 25);
     470        $f1g4    = self::mul($f1,    $g4, 26);
     471        $f1g5_2  = self::mul($f1_2,  $g5, 25);
     472        $f1g6    = self::mul($f1,    $g6, 26);
     473        $f1g7_2  = self::mul($f1_2,  $g7, 25);
     474        $f1g8    = self::mul($f1,    $g8, 26);
     475        $f1g9_38 = self::mul($g9_19, $f1_2, 26);
     476        $f2g0    = self::mul($f2,    $g0, 26);
     477        $f2g1    = self::mul($f2,    $g1, 25);
     478        $f2g2    = self::mul($f2,    $g2, 26);
     479        $f2g3    = self::mul($f2,    $g3, 25);
     480        $f2g4    = self::mul($f2,    $g4, 26);
     481        $f2g5    = self::mul($f2,    $g5, 25);
     482        $f2g6    = self::mul($f2,    $g6, 26);
     483        $f2g7    = self::mul($f2,    $g7, 25);
     484        $f2g8_19 = self::mul($g8_19, $f2, 26);
     485        $f2g9_19 = self::mul($g9_19, $f2, 26);
     486        $f3g0    = self::mul($f3,    $g0, 26);
     487        $f3g1_2  = self::mul($f3_2,  $g1, 25);
     488        $f3g2    = self::mul($f3,    $g2, 26);
     489        $f3g3_2  = self::mul($f3_2,  $g3, 25);
     490        $f3g4    = self::mul($f3,    $g4, 26);
     491        $f3g5_2  = self::mul($f3_2,  $g5, 25);
     492        $f3g6    = self::mul($f3,    $g6, 26);
     493        $f3g7_38 = self::mul($g7_19, $f3_2, 26);
     494        $f3g8_19 = self::mul($g8_19, $f3, 25);
     495        $f3g9_38 = self::mul($g9_19, $f3_2, 26);
     496        $f4g0    = self::mul($f4,    $g0, 26);
     497        $f4g1    = self::mul($f4,    $g1, 25);
     498        $f4g2    = self::mul($f4,    $g2, 26);
     499        $f4g3    = self::mul($f4,    $g3, 25);
     500        $f4g4    = self::mul($f4,    $g4, 26);
     501        $f4g5    = self::mul($f4,    $g5, 25);
     502        $f4g6_19 = self::mul($g6_19, $f4, 26);
     503        $f4g7_19 = self::mul($g7_19, $f4, 26);
     504        $f4g8_19 = self::mul($g8_19, $f4, 26);
     505        $f4g9_19 = self::mul($g9_19, $f4, 26);
     506        $f5g0    = self::mul($f5,    $g0, 26);
     507        $f5g1_2  = self::mul($f5_2,  $g1, 25);
     508        $f5g2    = self::mul($f5,    $g2, 26);
     509        $f5g3_2  = self::mul($f5_2,  $g3, 25);
     510        $f5g4    = self::mul($f5,    $g4, 26);
     511        $f5g5_38 = self::mul($g5_19, $f5_2, 26);
     512        $f5g6_19 = self::mul($g6_19, $f5, 25);
     513        $f5g7_38 = self::mul($g7_19, $f5_2, 26);
     514        $f5g8_19 = self::mul($g8_19, $f5, 25);
     515        $f5g9_38 = self::mul($g9_19, $f5_2, 26);
     516        $f6g0    = self::mul($f6,    $g0, 26);
     517        $f6g1    = self::mul($f6,    $g1, 25);
     518        $f6g2    = self::mul($f6,    $g2, 26);
     519        $f6g3    = self::mul($f6,    $g3, 25);
     520        $f6g4_19 = self::mul($g4_19, $f6, 26);
     521        $f6g5_19 = self::mul($g5_19, $f6, 26);
     522        $f6g6_19 = self::mul($g6_19, $f6, 26);
     523        $f6g7_19 = self::mul($g7_19, $f6, 26);
     524        $f6g8_19 = self::mul($g8_19, $f6, 26);
     525        $f6g9_19 = self::mul($g9_19, $f6, 26);
     526        $f7g0    = self::mul($f7,    $g0, 26);
     527        $f7g1_2  = self::mul($f7_2,  $g1, 25);
     528        $f7g2    = self::mul($f7,    $g2, 26);
     529        $f7g3_38 = self::mul($g3_19, $f7_2, 26);
     530        $f7g4_19 = self::mul($g4_19, $f7, 26);
     531        $f7g5_38 = self::mul($g5_19, $f7_2, 26);
     532        $f7g6_19 = self::mul($g6_19, $f7, 25);
     533        $f7g7_38 = self::mul($g7_19, $f7_2, 26);
     534        $f7g8_19 = self::mul($g8_19, $f7, 25);
     535        $f7g9_38 = self::mul($g9_19,$f7_2, 26);
     536        $f8g0    = self::mul($f8,    $g0, 26);
     537        $f8g1    = self::mul($f8,    $g1, 25);
     538        $f8g2_19 = self::mul($g2_19, $f8, 26);
     539        $f8g3_19 = self::mul($g3_19, $f8, 26);
     540        $f8g4_19 = self::mul($g4_19, $f8, 26);
     541        $f8g5_19 = self::mul($g5_19, $f8, 26);
     542        $f8g6_19 = self::mul($g6_19, $f8, 26);
     543        $f8g7_19 = self::mul($g7_19, $f8, 26);
     544        $f8g8_19 = self::mul($g8_19, $f8, 26);
     545        $f8g9_19 = self::mul($g9_19, $f8, 26);
     546        $f9g0    = self::mul($f9,    $g0, 26);
     547        $f9g1_38 = self::mul($g1_19, $f9_2, 26);
     548        $f9g2_19 = self::mul($g2_19, $f9, 25);
     549        $f9g3_38 = self::mul($g3_19, $f9_2, 26);
     550        $f9g4_19 = self::mul($g4_19, $f9, 25);
     551        $f9g5_38 = self::mul($g5_19, $f9_2, 26);
     552        $f9g6_19 = self::mul($g6_19, $f9, 25);
     553        $f9g7_38 = self::mul($g7_19, $f9_2, 26);
     554        $f9g8_19 = self::mul($g8_19, $f9, 25);
     555        $f9g9_38 = self::mul($g9_19, $f9_2, 26);
    556556        $h0 = $f0g0 + $f1g9_38 + $f2g8_19 + $f3g7_38 + $f4g6_19 + $f5g5_38 + $f6g4_19 + $f7g3_38 + $f8g2_19 + $f9g1_38;
    557557        $h1 = $f0g1 + $f1g0    + $f2g9_19 + $f3g8_19 + $f4g7_19 + $f5g6_19 + $f6g5_19 + $f7g4_19 + $f8g3_19 + $f9g2_19;
     
    700700        $f8_19 = self::mul($f8, 19, 5);
    701701        $f9_38 = self::mul($f9, 38, 6);
    702         $f0f0    = self::mul($f0,    $f0,    26);
    703         $f0f1_2  = self::mul($f0_2,  $f1,    26);
    704         $f0f2_2  = self::mul($f0_2,  $f2,    26);
    705         $f0f3_2  = self::mul($f0_2,  $f3,    26);
    706         $f0f4_2  = self::mul($f0_2,  $f4,    26);
    707         $f0f5_2  = self::mul($f0_2,  $f5,    26);
    708         $f0f6_2  = self::mul($f0_2,  $f6,    26);
    709         $f0f7_2  = self::mul($f0_2,  $f7,    26);
    710         $f0f8_2  = self::mul($f0_2,  $f8,    26);
    711         $f0f9_2  = self::mul($f0_2,  $f9,    26);
    712         $f1f1_2  = self::mul($f1_2,  $f1,    26);
    713         $f1f2_2  = self::mul($f1_2,  $f2,    26);
    714         $f1f3_4  = self::mul($f1_2,  $f3_2,  26);
    715         $f1f4_2  = self::mul($f1_2,  $f4,    26);
    716         $f1f5_4  = self::mul($f1_2,  $f5_2,  27);
    717         $f1f6_2  = self::mul($f1_2,  $f6,    26);
    718         $f1f7_4  = self::mul($f1_2,  $f7_2,  26);
    719         $f1f8_2  = self::mul($f1_2,  $f8,    26);
    720         $f1f9_76 = self::mul($f9_38, $f1_2,  26);
    721         $f2f2    = self::mul($f2,    $f2,    26);
    722         $f2f3_2  = self::mul($f2_2,  $f3,    26);
    723         $f2f4_2  = self::mul($f2_2,  $f4,    26);
    724         $f2f5_2  = self::mul($f2_2,  $f5,    26);
    725         $f2f6_2  = self::mul($f2_2,  $f6,    26);
    726         $f2f7_2  = self::mul($f2_2,  $f7,    26);
    727         $f2f8_38 = self::mul($f8_19, $f2_2,  27);
    728         $f2f9_38 = self::mul($f9_38, $f2,    26);
    729         $f3f3_2  = self::mul($f3_2,  $f3,    26);
    730         $f3f4_2  = self::mul($f3_2,  $f4,    26);
    731         $f3f5_4  = self::mul($f3_2,  $f5_2,  27);
    732         $f3f6_2  = self::mul($f3_2,  $f6,    26);
    733         $f3f7_76 = self::mul($f7_38, $f3_2,  26);
    734         $f3f8_38 = self::mul($f8_19, $f3_2,  26);
    735         $f3f9_76 = self::mul($f9_38, $f3_2,  26);
    736         $f4f4    = self::mul($f4,    $f4,    26);
    737         $f4f5_2  = self::mul($f4_2,  $f5,    26);
    738         $f4f6_38 = self::mul($f6_19, $f4_2,  27);
    739         $f4f7_38 = self::mul($f7_38, $f4,    26);
    740         $f4f8_38 = self::mul($f8_19, $f4_2,  27);
    741         $f4f9_38 = self::mul($f9_38, $f4,    26);
    742         $f5f5_38 = self::mul($f5_38, $f5,    26);
    743         $f5f6_38 = self::mul($f6_19, $f5_2,  27);
    744         $f5f7_76 = self::mul($f7_38, $f5_2,  27);
    745         $f5f8_38 = self::mul($f8_19, $f5_2,  27);
    746         $f5f9_76 = self::mul($f9_38, $f5_2,  27);
    747         $f6f6_19 = self::mul($f6_19, $f6,    26);
    748         $f6f7_38 = self::mul($f7_38, $f6,    26);
    749         $f6f8_38 = self::mul($f8_19, $f6_2,  27);
    750         $f6f9_38 = self::mul($f9_38, $f6,    26);
    751         $f7f7_38 = self::mul($f7_38, $f7,    26);
    752         $f7f8_38 = self::mul($f8_19, $f7_2,  27);
    753         $f7f9_76 = self::mul($f9_38, $f7_2,  27);
    754         $f8f8_19 = self::mul($f8_19, $f8,    26);
    755         $f8f9_38 = self::mul($f9_38, $f8,    26);
    756         $f9f9_38 = self::mul($f9_38, $f9,    27);
     702        $f0f0    = self::mul($f0,    $f0,    25);
     703        $f0f1_2  = self::mul($f0_2,  $f1,    24);
     704        $f0f2_2  = self::mul($f0_2,  $f2,    25);
     705        $f0f3_2  = self::mul($f0_2,  $f3,    24);
     706        $f0f4_2  = self::mul($f0_2,  $f4,    25);
     707        $f0f5_2  = self::mul($f0_2,  $f5,    25);
     708        $f0f6_2  = self::mul($f0_2,  $f6,    25);
     709        $f0f7_2  = self::mul($f0_2,  $f7,    24);
     710        $f0f8_2  = self::mul($f0_2,  $f8,    25);
     711        $f0f9_2  = self::mul($f0_2,  $f9,    25);
     712        $f1f1_2  = self::mul($f1_2,  $f1,    24);
     713        $f1f2_2  = self::mul($f1_2,  $f2,    25);
     714        $f1f3_4  = self::mul($f1_2,  $f3_2,  25);
     715        $f1f4_2  = self::mul($f1_2,  $f4,    25);
     716        $f1f5_4  = self::mul($f1_2,  $f5_2,  26);
     717        $f1f6_2  = self::mul($f1_2,  $f6,    25);
     718        $f1f7_4  = self::mul($f1_2,  $f7_2,  25);
     719        $f1f8_2  = self::mul($f1_2,  $f8,    25);
     720        $f1f9_76 = self::mul($f9_38, $f1_2,  25);
     721        $f2f2    = self::mul($f2,    $f2,    25);
     722        $f2f3_2  = self::mul($f2_2,  $f3,    24);
     723        $f2f4_2  = self::mul($f2_2,  $f4,    25);
     724        $f2f5_2  = self::mul($f2_2,  $f5,    25);
     725        $f2f6_2  = self::mul($f2_2,  $f6,    25);
     726        $f2f7_2  = self::mul($f2_2,  $f7,    24);
     727        $f2f8_38 = self::mul($f8_19, $f2_2,  26);
     728        $f2f9_38 = self::mul($f9_38, $f2,    25);
     729        $f3f3_2  = self::mul($f3_2,  $f3,    24);
     730        $f3f4_2  = self::mul($f3_2,  $f4,    25);
     731        $f3f5_4  = self::mul($f3_2,  $f5_2,  26);
     732        $f3f6_2  = self::mul($f3_2,  $f6,    25);
     733        $f3f7_76 = self::mul($f7_38, $f3_2,  25);
     734        $f3f8_38 = self::mul($f8_19, $f3_2,  25);
     735        $f3f9_76 = self::mul($f9_38, $f3_2,  25);
     736        $f4f4    = self::mul($f4,    $f4,    25);
     737        $f4f5_2  = self::mul($f4_2,  $f5,    25);
     738        $f4f6_38 = self::mul($f6_19, $f4_2,  26);
     739        $f4f7_38 = self::mul($f7_38, $f4,    25);
     740        $f4f8_38 = self::mul($f8_19, $f4_2,  26);
     741        $f4f9_38 = self::mul($f9_38, $f4,    25);
     742        $f5f5_38 = self::mul($f5_38, $f5,    25);
     743        $f5f6_38 = self::mul($f6_19, $f5_2,  26);
     744        $f5f7_76 = self::mul($f7_38, $f5_2,  26);
     745        $f5f8_38 = self::mul($f8_19, $f5_2,  26);
     746        $f5f9_76 = self::mul($f9_38, $f5_2,  26);
     747        $f6f6_19 = self::mul($f6_19, $f6,    25);
     748        $f6f7_38 = self::mul($f7_38, $f6,    25);
     749        $f6f8_38 = self::mul($f8_19, $f6_2,  26);
     750        $f6f9_38 = self::mul($f9_38, $f6,    25);
     751        $f7f7_38 = self::mul($f7_38, $f7,    24);
     752        $f7f8_38 = self::mul($f8_19, $f7_2,  25);
     753        $f7f9_76 = self::mul($f9_38, $f7_2,  25);
     754        $f8f8_19 = self::mul($f8_19, $f8,    25);
     755        $f8f9_38 = self::mul($f9_38, $f8,    25);
     756        $f9f9_38 = self::mul($f9_38, $f9,    25);
    757757        $h0 = $f0f0   + $f1f9_76 + $f2f8_38 + $f3f7_76 + $f4f6_38 + $f5f5_38;
    758758        $h1 = $f0f1_2 + $f2f9_38 + $f3f8_38 + $f4f7_38 + $f5f6_38;
     
    882882        $f8_19 = self::mul($f8, 19, 5); /* 1.959375*2^30 */
    883883        $f9_38 = self::mul($f9, 38, 6); /* 1.959375*2^30 */
    884         $f0f0 = self::mul($f0, $f0, 26);
    885         $f0f1_2 = self::mul($f0_2, $f1, 26);
    886         $f0f2_2 = self::mul($f0_2, $f2, 26);
    887         $f0f3_2 = self::mul($f0_2, $f3, 26);
    888         $f0f4_2 = self::mul($f0_2, $f4, 26);
    889         $f0f5_2 = self::mul($f0_2, $f5, 26);
    890         $f0f6_2 = self::mul($f0_2, $f6, 26);
    891         $f0f7_2 = self::mul($f0_2, $f7, 26);
    892         $f0f8_2 = self::mul($f0_2, $f8, 26);
    893         $f0f9_2 = self::mul($f0_2, $f9, 26);
    894         $f1f1_2 = self::mul($f1_2,  $f1, 26);
    895         $f1f2_2 = self::mul($f1_2,  $f2, 26);
    896         $f1f3_4 = self::mul($f1_2,  $f3_2, 27);
    897         $f1f4_2 = self::mul($f1_2,  $f4, 26);
    898         $f1f5_4 = self::mul($f1_2,  $f5_2, 27);
    899         $f1f6_2 = self::mul($f1_2,  $f6, 26);
    900         $f1f7_4 = self::mul($f1_2,  $f7_2, 27);
    901         $f1f8_2 = self::mul($f1_2,  $f8, 26);
    902         $f1f9_76 = self::mul($f9_38, $f1_2, 27);
    903         $f2f2 = self::mul($f2,  $f2, 26);
    904         $f2f3_2 = self::mul($f2_2,  $f3, 26);
    905         $f2f4_2 = self::mul($f2_2,  $f4, 26);
    906         $f2f5_2 = self::mul($f2_2,  $f5, 26);
    907         $f2f6_2 = self::mul($f2_2,  $f6, 26);
    908         $f2f7_2 = self::mul($f2_2,  $f7, 26);
    909         $f2f8_38 = self::mul($f8_19, $f2_2, 27);
    910         $f2f9_38 = self::mul($f9_38, $f2, 26);
    911         $f3f3_2 = self::mul($f3_2,  $f3, 26);
    912         $f3f4_2 = self::mul($f3_2,  $f4, 26);
    913         $f3f5_4 = self::mul($f3_2,  $f5_2, 27);
    914         $f3f6_2 = self::mul($f3_2,  $f6, 27);
    915         $f3f7_76 = self::mul($f7_38, $f3_2, 27);
    916         $f3f8_38 = self::mul($f8_19, $f3_2, 27);
    917         $f3f9_76 = self::mul($f9_38, $f3_2, 27);
    918         $f4f4 = self::mul($f4,  $f4, 26);
    919         $f4f5_2 = self::mul($f4_2,  $f5, 26);
    920         $f4f6_38 = self::mul($f6_19, $f4_2, 27);
    921         $f4f7_38 = self::mul($f7_38, $f4, 27);
    922         $f4f8_38 = self::mul($f8_19, $f4_2, 27);
    923         $f4f9_38 = self::mul($f9_38, $f4, 27);
    924         $f5f5_38 = self::mul($f5_38, $f5, 26);
    925         $f5f6_38 = self::mul($f6_19, $f5_2, 27);
    926         $f5f7_76 = self::mul($f7_38, $f5_2, 27);
    927         $f5f8_38 = self::mul($f8_19, $f5_2, 27);
    928         $f5f9_76 = self::mul($f9_38, $f5_2, 27);
    929         $f6f6_19 = self::mul($f6_19, $f6, 26);
    930         $f6f7_38 = self::mul($f7_38, $f6, 26);
    931         $f6f8_38 = self::mul($f8_19, $f6_2, 27);
    932         $f6f9_38 = self::mul($f9_38, $f6, 26);
    933         $f7f7_38 = self::mul($f7_38, $f7, 26);
    934         $f7f8_38 = self::mul($f8_19, $f7_2, 27);
    935         $f7f9_76 = self::mul($f9_38, $f7_2, 27);
    936         $f8f8_19 = self::mul($f8_19, $f8, 26);
    937         $f8f9_38 = self::mul($f9_38, $f8, 26);
    938         $f9f9_38 = self::mul($f9_38, $f9, 27);
     884        $f0f0 = self::mul($f0, $f0, 24);
     885        $f0f1_2 = self::mul($f0_2, $f1, 24);
     886        $f0f2_2 = self::mul($f0_2, $f2, 24);
     887        $f0f3_2 = self::mul($f0_2, $f3, 24);
     888        $f0f4_2 = self::mul($f0_2, $f4, 24);
     889        $f0f5_2 = self::mul($f0_2, $f5, 24);
     890        $f0f6_2 = self::mul($f0_2, $f6, 24);
     891        $f0f7_2 = self::mul($f0_2, $f7, 24);
     892        $f0f8_2 = self::mul($f0_2, $f8, 24);
     893        $f0f9_2 = self::mul($f0_2, $f9, 24);
     894        $f1f1_2 = self::mul($f1_2,  $f1, 24);
     895        $f1f2_2 = self::mul($f1_2,  $f2, 24);
     896        $f1f3_4 = self::mul($f1_2,  $f3_2, 24);
     897        $f1f4_2 = self::mul($f1_2,  $f4, 24);
     898        $f1f5_4 = self::mul($f1_2,  $f5_2, 24);
     899        $f1f6_2 = self::mul($f1_2,  $f6, 24);
     900        $f1f7_4 = self::mul($f1_2,  $f7_2, 24);
     901        $f1f8_2 = self::mul($f1_2,  $f8, 24);
     902        $f1f9_76 = self::mul($f9_38, $f1_2, 24);
     903        $f2f2 = self::mul($f2,  $f2, 24);
     904        $f2f3_2 = self::mul($f2_2,  $f3, 24);
     905        $f2f4_2 = self::mul($f2_2,  $f4, 24);
     906        $f2f5_2 = self::mul($f2_2,  $f5, 24);
     907        $f2f6_2 = self::mul($f2_2,  $f6, 24);
     908        $f2f7_2 = self::mul($f2_2,  $f7, 24);
     909        $f2f8_38 = self::mul($f8_19, $f2_2, 25);
     910        $f2f9_38 = self::mul($f9_38, $f2, 24);
     911        $f3f3_2 = self::mul($f3_2,  $f3, 24);
     912        $f3f4_2 = self::mul($f3_2,  $f4, 24);
     913        $f3f5_4 = self::mul($f3_2,  $f5_2, 24);
     914        $f3f6_2 = self::mul($f3_2,  $f6, 24);
     915        $f3f7_76 = self::mul($f7_38, $f3_2, 24);
     916        $f3f8_38 = self::mul($f8_19, $f3_2, 24);
     917        $f3f9_76 = self::mul($f9_38, $f3_2, 24);
     918        $f4f4 = self::mul($f4,  $f4, 24);
     919        $f4f5_2 = self::mul($f4_2,  $f5, 24);
     920        $f4f6_38 = self::mul($f6_19, $f4_2, 25);
     921        $f4f7_38 = self::mul($f7_38, $f4, 24);
     922        $f4f8_38 = self::mul($f8_19, $f4_2, 25);
     923        $f4f9_38 = self::mul($f9_38, $f4, 24);
     924        $f5f5_38 = self::mul($f5_38, $f5, 24);
     925        $f5f6_38 = self::mul($f6_19, $f5_2, 24);
     926        $f5f7_76 = self::mul($f7_38, $f5_2, 24);
     927        $f5f8_38 = self::mul($f8_19, $f5_2, 24);
     928        $f5f9_76 = self::mul($f9_38, $f5_2, 24);
     929        $f6f6_19 = self::mul($f6_19, $f6, 24);
     930        $f6f7_38 = self::mul($f7_38, $f6, 24);
     931        $f6f8_38 = self::mul($f8_19, $f6_2, 25);
     932        $f6f9_38 = self::mul($f9_38, $f6, 24);
     933        $f7f7_38 = self::mul($f7_38, $f7, 24);
     934        $f7f8_38 = self::mul($f8_19, $f7_2, 24);
     935        $f7f9_76 = self::mul($f9_38, $f7_2, 24);
     936        $f8f8_19 = self::mul($f8_19, $f8, 24);
     937        $f8f9_38 = self::mul($f9_38, $f8, 24);
     938        $f9f9_38 = self::mul($f9_38, $f9, 24);
    939939
    940940        /** @var int $h0 */
     
    18411841        # slide(aslide,a);
    18421842        # slide(bslide,b);
     1843        /** @var array<int, int> $aslide */
    18431844        $aslide = self::slide($a);
     1845        /** @var array<int, int> $bslide */
    18441846        $bslide = self::slide($b);
    18451847
     
    20812083        $s2 = $c2 + self::mul($a0, $b2, 24) + self::mul($a1, $b1, 24) + self::mul($a2, $b0, 24);
    20822084        $s3 = $c3 + self::mul($a0, $b3, 24) + self::mul($a1, $b2, 24) + self::mul($a2, $b1, 24) + self::mul($a3, $b0, 24);
    2083         $s4 = $c4 + self::mul($a0, $b4, 24) + self::mul($a1, $b3, 24) + self::mul($a2, $b2, 24) + self::mul($a3, $b1, 24) + self::mul($a4, $b0, 24);
    2084         $s5 = $c5 + self::mul($a0, $b5, 24) + self::mul($a1, $b4, 24) + self::mul($a2, $b3, 24) + self::mul($a3, $b2, 24) + self::mul($a4, $b1, 24) + self::mul($a5, $b0, 24);
    2085         $s6 = $c6 + self::mul($a0, $b6, 24) + self::mul($a1, $b5, 24) + self::mul($a2, $b4, 24) + self::mul($a3, $b3, 24) + self::mul($a4, $b2, 24) + self::mul($a5, $b1, 24) + self::mul($a6, $b0, 24);
    2086         $s7 = $c7 + self::mul($a0, $b7, 24) + self::mul($a1, $b6, 24) + self::mul($a2, $b5, 24) + self::mul($a3, $b4, 24) + self::mul($a4, $b3, 24) + self::mul($a5, $b2, 24) + self::mul($a6, $b1, 24) + self::mul($a7, $b0, 24);
    2087         $s8 = $c8 + self::mul($a0, $b8, 24) + self::mul($a1, $b7, 24) + self::mul($a2, $b6, 24) + self::mul($a3, $b5, 24) + self::mul($a4, $b4, 24) + self::mul($a5, $b3, 24) + self::mul($a6, $b2, 24) + self::mul($a7, $b1, 24) + self::mul($a8, $b0, 24);
    2088         $s9 = $c9 + self::mul($a0, $b9, 24) + self::mul($a1, $b8, 24) + self::mul($a2, $b7, 24) + self::mul($a3, $b6, 24) + self::mul($a4, $b5, 24) + self::mul($a5, $b4, 24) + self::mul($a6, $b3, 24) + self::mul($a7, $b2, 24) + self::mul($a8, $b1, 24) + self::mul($a9, $b0, 24);
    2089         $s10 = $c10 + self::mul($a0, $b10, 24) + self::mul($a1, $b9, 24) + self::mul($a2, $b8, 24) + self::mul($a3, $b7, 24) + self::mul($a4, $b6, 24) + self::mul($a5, $b5, 24) + self::mul($a6, $b4, 24) + self::mul($a7, $b3, 24) + self::mul($a8, $b2, 24) + self::mul($a9, $b1, 24) + self::mul($a10, $b0, 24);
    2090         $s11 = $c11 + self::mul($a0, $b11, 24) + self::mul($a1, $b10, 24) + self::mul($a2, $b9, 24) + self::mul($a3, $b8, 24) + self::mul($a4, $b7, 24) + self::mul($a5, $b6, 24) + self::mul($a6, $b5, 24) + self::mul($a7, $b4, 24) + self::mul($a8, $b3, 24) + self::mul($a9, $b2, 24) + self::mul($a10, $b1, 24) + self::mul($a11, $b0, 24);
    2091         $s12 = self::mul($a1, $b11, 24) + self::mul($a2, $b10, 24) + self::mul($a3, $b9, 24) + self::mul($a4, $b8, 24) + self::mul($a5, $b7, 24) + self::mul($a6, $b6, 24) + self::mul($a7, $b5, 24) + self::mul($a8, $b4, 24) + self::mul($a9, $b3, 24) + self::mul($a10, $b2, 24) + self::mul($a11, $b1, 24);
    2092         $s13 = self::mul($a2, $b11, 24) + self::mul($a3, $b10, 24) + self::mul($a4, $b9, 24) + self::mul($a5, $b8, 24) + self::mul($a6, $b7, 24) + self::mul($a7, $b6, 24) + self::mul($a8, $b5, 24) + self::mul($a9, $b4, 24) + self::mul($a10, $b3, 24) + self::mul($a11, $b2, 24);
    2093         $s14 = self::mul($a3, $b11, 24) + self::mul($a4, $b10, 24) + self::mul($a5, $b9, 24) + self::mul($a6, $b8, 24) + self::mul($a7, $b7, 24) + self::mul($a8, $b6, 24) + self::mul($a9, $b5, 24) + self::mul($a10, $b4, 24) + self::mul($a11, $b3, 24);
    2094         $s15 = self::mul($a4, $b11, 24) + self::mul($a5, $b10, 24) + self::mul($a6, $b9, 24) + self::mul($a7, $b8, 24) + self::mul($a8, $b7, 24) + self::mul($a9, $b6, 24) + self::mul($a10, $b5, 24) + self::mul($a11, $b4, 24);
    2095         $s16 = self::mul($a5, $b11, 24) + self::mul($a6, $b10, 24) + self::mul($a7, $b9, 24) + self::mul($a8, $b8, 24) + self::mul($a9, $b7, 24) + self::mul($a10, $b6, 24) + self::mul($a11, $b5, 24);
    2096         $s17 = self::mul($a6, $b11, 24) + self::mul($a7, $b10, 24) + self::mul($a8, $b9, 24) + self::mul($a9, $b8, 24) + self::mul($a10, $b7, 24) + self::mul($a11, $b6, 24);
    2097         $s18 = self::mul($a7, $b11, 24) + self::mul($a8, $b10, 24) + self::mul($a9, $b9, 24) + self::mul($a10, $b8, 24) + self::mul($a11, $b7, 24);
     2085        $s4 = $c4 + self::mul($a0, $b4, 24) + self::mul($a1, $b3, 24) + self::mul($a2, $b2, 24) + self::mul($a3, $b1, 24) +
     2086               self::mul($a4, $b0, 24);
     2087        $s5 = $c5 + self::mul($a0, $b5, 24) + self::mul($a1, $b4, 24) + self::mul($a2, $b3, 24) + self::mul($a3, $b2, 24) +
     2088               self::mul($a4, $b1, 24) + self::mul($a5, $b0, 24);
     2089        $s6 = $c6 + self::mul($a0, $b6, 24) + self::mul($a1, $b5, 24) + self::mul($a2, $b4, 24) + self::mul($a3, $b3, 24) +
     2090               self::mul($a4, $b2, 24) + self::mul($a5, $b1, 24) + self::mul($a6, $b0, 24);
     2091        $s7 = $c7 + self::mul($a0, $b7, 24) + self::mul($a1, $b6, 24) + self::mul($a2, $b5, 24) + self::mul($a3, $b4, 24) +
     2092               self::mul($a4, $b3, 24) + self::mul($a5, $b2, 24) + self::mul($a6, $b1, 24) + self::mul($a7, $b0, 24);
     2093        $s8 = $c8 + self::mul($a0, $b8, 24) + self::mul($a1, $b7, 24) + self::mul($a2, $b6, 24) + self::mul($a3, $b5, 24) +
     2094               self::mul($a4, $b4, 24) + self::mul($a5, $b3, 24) + self::mul($a6, $b2, 24) + self::mul($a7, $b1, 24) +
     2095               self::mul($a8, $b0, 24);
     2096        $s9 = $c9 + self::mul($a0, $b9, 24) + self::mul($a1, $b8, 24) + self::mul($a2, $b7, 24) + self::mul($a3, $b6, 24) +
     2097               self::mul($a4, $b5, 24) + self::mul($a5, $b4, 24) + self::mul($a6, $b3, 24) + self::mul($a7, $b2, 24) +
     2098               self::mul($a8, $b1, 24) + self::mul($a9, $b0, 24);
     2099        $s10 = $c10 + self::mul($a0, $b10, 24) + self::mul($a1, $b9, 24) + self::mul($a2, $b8, 24) + self::mul($a3, $b7, 24) +
     2100               self::mul($a4, $b6, 24) + self::mul($a5, $b5, 24) + self::mul($a6, $b4, 24) + self::mul($a7, $b3, 24) +
     2101               self::mul($a8, $b2, 24) + self::mul($a9, $b1, 24) + self::mul($a10, $b0, 24);
     2102        $s11 = $c11 + self::mul($a0, $b11, 24) + self::mul($a1, $b10, 24) + self::mul($a2, $b9, 24) + self::mul($a3, $b8, 24) +
     2103               self::mul($a4, $b7, 24) + self::mul($a5, $b6, 24) + self::mul($a6, $b5, 24) + self::mul($a7, $b4, 24) +
     2104               self::mul($a8, $b3, 24) + self::mul($a9, $b2, 24) + self::mul($a10, $b1, 24) + self::mul($a11, $b0, 24);
     2105        $s12 = self::mul($a1, $b11, 24) + self::mul($a2, $b10, 24) + self::mul($a3, $b9, 24) + self::mul($a4, $b8, 24) +
     2106               self::mul($a5, $b7, 24) + self::mul($a6, $b6, 24) + self::mul($a7, $b5, 24) + self::mul($a8, $b4, 24) +
     2107               self::mul($a9, $b3, 24) + self::mul($a10, $b2, 24) + self::mul($a11, $b1, 24);
     2108        $s13 = self::mul($a2, $b11, 24) + self::mul($a3, $b10, 24) + self::mul($a4, $b9, 24) + self::mul($a5, $b8, 24) +
     2109               self::mul($a6, $b7, 24) + self::mul($a7, $b6, 24) + self::mul($a8, $b5, 24) + self::mul($a9, $b4, 24) +
     2110               self::mul($a10, $b3, 24) + self::mul($a11, $b2, 24);
     2111        $s14 = self::mul($a3, $b11, 24) + self::mul($a4, $b10, 24) + self::mul($a5, $b9, 24) + self::mul($a6, $b8, 24) +
     2112               self::mul($a7, $b7, 24) + self::mul($a8, $b6, 24) + self::mul($a9, $b5, 24) + self::mul($a10, $b4, 24) +
     2113               self::mul($a11, $b3, 24);
     2114        $s15 = self::mul($a4, $b11, 24) + self::mul($a5, $b10, 24) + self::mul($a6, $b9, 24) + self::mul($a7, $b8, 24) +
     2115               self::mul($a8, $b7, 24) + self::mul($a9, $b6, 24) + self::mul($a10, $b5, 24) + self::mul($a11, $b4, 24);
     2116        $s16 = self::mul($a5, $b11, 24) + self::mul($a6, $b10, 24) + self::mul($a7, $b9, 24) + self::mul($a8, $b8, 24) +
     2117               self::mul($a9, $b7, 24) + self::mul($a10, $b6, 24) + self::mul($a11, $b5, 24);
     2118        $s17 = self::mul($a6, $b11, 24) + self::mul($a7, $b10, 24) + self::mul($a8, $b9, 24) + self::mul($a9, $b8, 24) +
     2119               self::mul($a10, $b7, 24) + self::mul($a11, $b6, 24);
     2120        $s18 = self::mul($a7, $b11, 24) + self::mul($a8, $b10, 24) + self::mul($a9, $b9, 24) + self::mul($a10, $b8, 24) +
     2121               self::mul($a11, $b7, 24);
    20982122        $s19 = self::mul($a8, $b11, 24) + self::mul($a9, $b10, 24) + self::mul($a10, $b9, 24) + self::mul($a11, $b8, 24);
    20992123        $s20 = self::mul($a9, $b11, 24) + self::mul($a10, $b10, 24) + self::mul($a11, $b9, 24);
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core/Curve25519/Fe.php

    r1853488 r1946575  
    2323
    2424    /**
    25      * ParagonIE_Sodium_Core_Curve25519_Fe constructor.
    26      * @param int $size
    27      */
    28     public function __construct($size = 10)
    29     {
    30         $this->size = 10;
    31     }
    32 
    33     /**
    3425     * @internal You should not use this directly from another application
    3526     *
     
    4839        $array = array_values($array);
    4940
    50         $obj = new ParagonIE_Sodium_Core_Curve25519_Fe($count);
     41        $obj = new ParagonIE_Sodium_Core_Curve25519_Fe();
    5142        if ($save_indexes) {
    5243            for ($i = 0; $i < $count; ++$i) {
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core/Ed25519.php

    r1853488 r1946575  
    1717     *
    1818     * @return string (96 bytes)
     19     * @throws Exception
    1920     * @throws SodiumException
    2021     * @throws TypeError
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core/Poly1305/State.php

    r1853488 r1946575  
    185185            /* h *= r */
    186186            $d0 = (
    187                 self::mul($h0, $r0, 31) +
    188                 self::mul($h1, $s4, 31) +
    189                 self::mul($h2, $s3, 31) +
    190                 self::mul($h3, $s2, 31) +
    191                 self::mul($h4, $s1, 31)
     187                self::mul($h0, $r0, 25) +
     188                self::mul($s4, $h1, 26) +
     189                self::mul($s3, $h2, 26) +
     190                self::mul($s2, $h3, 26) +
     191                self::mul($s1, $h4, 26)
    192192            );
    193193
    194194            $d1 = (
    195                 self::mul($h0, $r1, 31) +
    196                 self::mul($h1, $r0, 31) +
    197                 self::mul($h2, $s4, 31) +
    198                 self::mul($h3, $s3, 31) +
    199                 self::mul($h4, $s2, 31)
     195                self::mul($h0, $r1, 25) +
     196                self::mul($h1, $r0, 25) +
     197                self::mul($s4, $h2, 26) +
     198                self::mul($s3, $h3, 26) +
     199                self::mul($s2, $h4, 26)
    200200            );
    201201
    202202            $d2 = (
    203                 self::mul($h0, $r2, 31) +
    204                 self::mul($h1, $r1, 31) +
    205                 self::mul($h2, $r0, 31) +
    206                 self::mul($h3, $s4, 31) +
    207                 self::mul($h4, $s3, 31)
     203                self::mul($h0, $r2, 25) +
     204                self::mul($h1, $r1, 25) +
     205                self::mul($h2, $r0, 25) +
     206                self::mul($s4, $h3, 26) +
     207                self::mul($s3, $h4, 26)
    208208            );
    209209
    210210            $d3 = (
    211                 self::mul($h0, $r3, 31) +
    212                 self::mul($h1, $r2, 31) +
    213                 self::mul($h2, $r1, 31) +
    214                 self::mul($h3, $r0, 31) +
    215                 self::mul($h4, $s4, 31)
     211                self::mul($h0, $r3, 25) +
     212                self::mul($h1, $r2, 25) +
     213                self::mul($h2, $r1, 25) +
     214                self::mul($h3, $r0, 25) +
     215                self::mul($s4, $h4, 26)
    216216            );
    217217
    218218            $d4 = (
    219                 self::mul($h0, $r4, 31) +
    220                 self::mul($h1, $r3, 31) +
    221                 self::mul($h2, $r2, 31) +
    222                 self::mul($h3, $r1, 31) +
    223                 self::mul($h4, $r0, 31)
     219                self::mul($h0, $r4, 25) +
     220                self::mul($h1, $r3, 25) +
     221                self::mul($h2, $r2, 25) +
     222                self::mul($h3, $r1, 25) +
     223                self::mul($h4, $r0, 25)
    224224            );
    225225
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core/Util.php

    r1853488 r1946575  
    550550         * @var int
    551551         */
    552         $mask = -(($b >> $defaultSize) & 1);
     552        $mask = -(($b >> ((int) $defaultSize)) & 1);
    553553
    554554        /**
     
    913913            $mbstring = extension_loaded('mbstring')
    914914                &&
    915             (ini_get('mbstring.func_overload') & MB_OVERLOAD_STRING);
     915            ((int) (ini_get('mbstring.func_overload')) & MB_OVERLOAD_STRING);
    916916        }
    917917        /** @var bool $mbstring */
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core32/BLAKE2b.php

    r1853488 r1946575  
    139139    {
    140140        /** @var int $l */
    141         $l = $x[$i]   | ($x[$i+1]<<8) | ($x[$i+2]<<16) | ($x[$i+3]<<24);
     141        $l = (int) ($x[$i])
     142             | ((int) ($x[$i+1]) << 8)
     143             | ((int) ($x[$i+2]) << 16)
     144             | ((int) ($x[$i+3]) << 24);
    142145        /** @var int $h */
    143         $h = $x[$i+4] | ($x[$i+5]<<8) | ($x[$i+6]<<16) | ($x[$i+7]<<24);
     146        $h = (int) ($x[$i+4])
     147             | ((int) ($x[$i+5]) << 8)
     148             | ((int) ($x[$i+6]) << 16)
     149             | ((int) ($x[$i+7]) << 24);
    144150        return self::new64($h, $l);
    145151    }
     
    558564    {
    559565        /**
    560          * @var array<mixed, int>
     566         * @var array<int, string|int>
    561567         */
    562568        $arr = $a->toArray();
     
    610616        $str .= self::SplFixedArrayToString($ctx[3]);
    611617
     618        /** @var int $ctx4 */
     619        $ctx4 = $ctx[4];
     620
    612621        # size_t buflen;
    613622        $str .= implode('', array(
    614             self::intToChr($ctx[4] & 0xff),
    615             self::intToChr(($ctx[4] >> 8) & 0xff),
    616             self::intToChr(($ctx[4] >> 16) & 0xff),
    617             self::intToChr(($ctx[4] >> 24) & 0xff),
    618             self::intToChr(($ctx[4] >> 32) & 0xff),
    619             self::intToChr(($ctx[4] >> 40) & 0xff),
    620             self::intToChr(($ctx[4] >> 48) & 0xff),
    621             self::intToChr(($ctx[4] >> 56) & 0xff)
     623            self::intToChr($ctx4 & 0xff),
     624            self::intToChr(($ctx4 >> 8) & 0xff),
     625            self::intToChr(($ctx4 >> 16) & 0xff),
     626            self::intToChr(($ctx4 >> 24) & 0xff),
     627            self::intToChr(($ctx4 >> 32) & 0xff),
     628            self::intToChr(($ctx4 >> 40) & 0xff),
     629            self::intToChr(($ctx4 >> 48) & 0xff),
     630            self::intToChr(($ctx4 >> 56) & 0xff)
    622631        ));
    623632        # uint8_t last_node;
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core32/Curve25519.php

    r1853488 r1946575  
    104104     * @param int $b
    105105     * @return ParagonIE_Sodium_Core32_Curve25519_Fe
     106     * @throws SodiumException
    106107     * @throws TypeError
    107108     * @psalm-suppress MixedAssignment
     
    507508        /** @var ParagonIE_Sodium_Core32_Int64 $f9_2 */
    508509        $f9_2 = $f9->shiftLeft(1);
    509         $f0g0    = $f0->mulInt64($g0, 31);
    510         $f0g1    = $f0->mulInt64($g1, 31);
    511         $f0g2    = $f0->mulInt64($g2, 31);
    512         $f0g3    = $f0->mulInt64($g3, 31);
    513         $f0g4    = $f0->mulInt64($g4, 31);
    514         $f0g5    = $f0->mulInt64($g5, 31);
    515         $f0g6    = $f0->mulInt64($g6, 31);
    516         $f0g7    = $f0->mulInt64($g7, 31);
    517         $f0g8    = $f0->mulInt64($g8, 31);
    518         $f0g9    = $f0->mulInt64($g9, 31);
    519         $f1g0    = $f1->mulInt64($g0, 31);
    520         $f1g1_2  = $f1_2->mulInt64($g1, 31);
    521         $f1g2    = $f1->mulInt64($g2, 31);
    522         $f1g3_2  = $f1_2->mulInt64($g3, 31);
    523         $f1g4    = $f1->mulInt64($g4, 31);
    524         $f1g5_2  = $f1_2->mulInt64($g5, 31);
    525         $f1g6    = $f1->mulInt64($g6, 31);
    526         $f1g7_2  = $f1_2->mulInt64($g7, 31);
    527         $f1g8    = $f1->mulInt64($g8, 31);
    528         $f1g9_38 = $g9_19->mulInt64($f1_2, 31);
    529         $f2g0    = $f2->mulInt64($g0, 31);
    530         $f2g1    = $f2->mulInt64($g1, 31);
    531         $f2g2    = $f2->mulInt64($g2, 31);
    532         $f2g3    = $f2->mulInt64($g3, 31);
    533         $f2g4    = $f2->mulInt64($g4, 31);
    534         $f2g5    = $f2->mulInt64($g5, 31);
    535         $f2g6    = $f2->mulInt64($g6, 31);
    536         $f2g7    = $f2->mulInt64($g7, 31);
    537         $f2g8_19 = $g8_19->mulInt64($f2, 31);
    538         $f2g9_19 = $g9_19->mulInt64($f2, 31);
    539         $f3g0    = $f3->mulInt64($g0, 31);
    540         $f3g1_2  = $f3_2->mulInt64($g1, 31);
    541         $f3g2    = $f3->mulInt64($g2, 31);
    542         $f3g3_2  = $f3_2->mulInt64($g3, 31);
    543         $f3g4    = $f3->mulInt64($g4, 31);
    544         $f3g5_2  = $f3_2->mulInt64($g5, 31);
    545         $f3g6    = $f3->mulInt64($g6, 31);
    546         $f3g7_38 = $g7_19->mulInt64($f3_2, 31);
    547         $f3g8_19 = $g8_19->mulInt64($f3, 31);
    548         $f3g9_38 = $g9_19->mulInt64($f3_2, 31);
    549         $f4g0    = $f4->mulInt64($g0, 31);
    550         $f4g1    = $f4->mulInt64($g1, 31);
    551         $f4g2    = $f4->mulInt64($g2, 31);
    552         $f4g3    = $f4->mulInt64($g3, 31);
    553         $f4g4    = $f4->mulInt64($g4, 31);
    554         $f4g5    = $f4->mulInt64($g5, 31);
    555         $f4g6_19 = $g6_19->mulInt64($f4, 31);
    556         $f4g7_19 = $g7_19->mulInt64($f4, 31);
    557         $f4g8_19 = $g8_19->mulInt64($f4, 31);
    558         $f4g9_19 = $g9_19->mulInt64($f4, 31);
    559         $f5g0    = $f5->mulInt64($g0, 31);
    560         $f5g1_2  = $f5_2->mulInt64($g1, 31);
    561         $f5g2    = $f5->mulInt64($g2, 31);
    562         $f5g3_2  = $f5_2->mulInt64($g3, 31);
    563         $f5g4    = $f5->mulInt64($g4, 31);
    564         $f5g5_38 = $g5_19->mulInt64($f5_2, 31);
    565         $f5g6_19 = $g6_19->mulInt64($f5, 31);
    566         $f5g7_38 = $g7_19->mulInt64($f5_2, 31);
    567         $f5g8_19 = $g8_19->mulInt64($f5, 31);
    568         $f5g9_38 = $g9_19->mulInt64($f5_2, 31);
    569         $f6g0    = $f6->mulInt64($g0, 31);
    570         $f6g1    = $f6->mulInt64($g1, 31);
    571         $f6g2    = $f6->mulInt64($g2, 31);
    572         $f6g3    = $f6->mulInt64($g3, 31);
    573         $f6g4_19 = $g4_19->mulInt64($f6, 31);
    574         $f6g5_19 = $g5_19->mulInt64($f6, 31);
    575         $f6g6_19 = $g6_19->mulInt64($f6, 31);
    576         $f6g7_19 = $g7_19->mulInt64($f6, 31);
    577         $f6g8_19 = $g8_19->mulInt64($f6, 31);
    578         $f6g9_19 = $g9_19->mulInt64($f6, 31);
    579         $f7g0    = $f7->mulInt64($g0, 31);
    580         $f7g1_2  = $g1->mulInt64($f7_2, 31);
    581         $f7g2    = $f7->mulInt64($g2, 31);
    582         $f7g3_38 = $g3_19->mulInt64($f7_2, 31);
    583         $f7g4_19 = $g4_19->mulInt64($f7, 31);
    584         $f7g5_38 = $g5_19->mulInt64($f7_2, 31);
    585         $f7g6_19 = $g6_19->mulInt64($f7, 31);
    586         $f7g7_38 = $g7_19->mulInt64($f7_2, 31);
    587         $f7g8_19 = $g8_19->mulInt64($f7, 31);
    588         $f7g9_38 = $g9_19->mulInt64($f7_2, 31);
    589         $f8g0    = $f8->mulInt64($g0, 31);
    590         $f8g1    = $f8->mulInt64($g1, 31);
    591         $f8g2_19 = $f8->mulInt64($g2_19, 31);
    592         $f8g3_19 = $f8->mulInt64($g3_19, 31);
    593         $f8g4_19 = $f8->mulInt64($g4_19, 31);
    594         $f8g5_19 = $f8->mulInt64($g5_19, 31);
    595         $f8g6_19 = $f8->mulInt64($g6_19, 31);
    596         $f8g7_19 = $f8->mulInt64($g7_19, 31);
    597         $f8g8_19 = $f8->mulInt64($g8_19, 31);
    598         $f8g9_19 = $f8->mulInt64($g9_19, 31);
    599         $f9g0    = $f9->mulInt64($g0, 31);
    600         $f9g1_38 = $f9_2->mulInt64($g1_19, 31);
    601         $f9g2_19 = $f9->mulInt64($g2_19, 31);
    602         $f9g3_38 = $f9_2->mulInt64($g3_19, 31);
    603         $f9g4_19 = $f9->mulInt64($g4_19, 31);
    604         $f9g5_38 = $f9_2->mulInt64($g5_19, 31);
    605         $f9g6_19 = $f9->mulInt64($g6_19, 31);
    606         $f9g7_38 = $f9_2->mulInt64($g7_19, 31);
    607         $f9g8_19 = $f9->mulInt64($g8_19, 31);
    608         $f9g9_38 = $f9_2->mulInt64($g9_19, 31);
     510        $f0g0    = $f0->mulInt64($g0, 30);
     511        $f0g1    = $f0->mulInt64($g1, 29);
     512        $f0g2    = $f0->mulInt64($g2, 30);
     513        $f0g3    = $f0->mulInt64($g3, 29);
     514        $f0g4    = $f0->mulInt64($g4, 30);
     515        $f0g5    = $f0->mulInt64($g5, 29);
     516        $f0g6    = $f0->mulInt64($g6, 30);
     517        $f0g7    = $f0->mulInt64($g7, 29);
     518        $f0g8    = $f0->mulInt64($g8, 30);
     519        $f0g9    = $f0->mulInt64($g9, 30);
     520        $f1g0    = $f1->mulInt64($g0, 30);
     521        $f1g1_2  = $f1_2->mulInt64($g1, 30);
     522        $f1g2    = $f1->mulInt64($g2, 30);
     523        $f1g3_2  = $f1_2->mulInt64($g3, 30);
     524        $f1g4    = $f1->mulInt64($g4, 30);
     525        $f1g5_2  = $f1_2->mulInt64($g5, 30);
     526        $f1g6    = $f1->mulInt64($g6, 30);
     527        $f1g7_2  = $f1_2->mulInt64($g7, 30);
     528        $f1g8    = $f1->mulInt64($g8, 30);
     529        $f1g9_38 = $g9_19->mulInt64($f1_2, 30);
     530        $f2g0    = $f2->mulInt64($g0, 30);
     531        $f2g1    = $f2->mulInt64($g1, 29);
     532        $f2g2    = $f2->mulInt64($g2, 30);
     533        $f2g3    = $f2->mulInt64($g3, 29);
     534        $f2g4    = $f2->mulInt64($g4, 30);
     535        $f2g5    = $f2->mulInt64($g5, 29);
     536        $f2g6    = $f2->mulInt64($g6, 30);
     537        $f2g7    = $f2->mulInt64($g7, 29);
     538        $f2g8_19 = $g8_19->mulInt64($f2, 30);
     539        $f2g9_19 = $g9_19->mulInt64($f2, 30);
     540        $f3g0    = $f3->mulInt64($g0, 30);
     541        $f3g1_2  = $f3_2->mulInt64($g1, 30);
     542        $f3g2    = $f3->mulInt64($g2, 30);
     543        $f3g3_2  = $f3_2->mulInt64($g3, 30);
     544        $f3g4    = $f3->mulInt64($g4, 30);
     545        $f3g5_2  = $f3_2->mulInt64($g5, 30);
     546        $f3g6    = $f3->mulInt64($g6, 30);
     547        $f3g7_38 = $g7_19->mulInt64($f3_2, 30);
     548        $f3g8_19 = $g8_19->mulInt64($f3, 30);
     549        $f3g9_38 = $g9_19->mulInt64($f3_2, 30);
     550        $f4g0    = $f4->mulInt64($g0, 30);
     551        $f4g1    = $f4->mulInt64($g1, 30);
     552        $f4g2    = $f4->mulInt64($g2, 30);
     553        $f4g3    = $f4->mulInt64($g3, 30);
     554        $f4g4    = $f4->mulInt64($g4, 30);
     555        $f4g5    = $f4->mulInt64($g5, 30);
     556        $f4g6_19 = $g6_19->mulInt64($f4, 30);
     557        $f4g7_19 = $g7_19->mulInt64($f4, 30);
     558        $f4g8_19 = $g8_19->mulInt64($f4, 30);
     559        $f4g9_19 = $g9_19->mulInt64($f4, 30);
     560        $f5g0    = $f5->mulInt64($g0, 30);
     561        $f5g1_2  = $f5_2->mulInt64($g1, 30);
     562        $f5g2    = $f5->mulInt64($g2, 30);
     563        $f5g3_2  = $f5_2->mulInt64($g3, 30);
     564        $f5g4    = $f5->mulInt64($g4, 30);
     565        $f5g5_38 = $g5_19->mulInt64($f5_2, 30);
     566        $f5g6_19 = $g6_19->mulInt64($f5, 30);
     567        $f5g7_38 = $g7_19->mulInt64($f5_2, 30);
     568        $f5g8_19 = $g8_19->mulInt64($f5, 30);
     569        $f5g9_38 = $g9_19->mulInt64($f5_2, 30);
     570        $f6g0    = $f6->mulInt64($g0, 30);
     571        $f6g1    = $f6->mulInt64($g1, 30);
     572        $f6g2    = $f6->mulInt64($g2, 30);
     573        $f6g3    = $f6->mulInt64($g3, 30);
     574        $f6g4_19 = $g4_19->mulInt64($f6, 30);
     575        $f6g5_19 = $g5_19->mulInt64($f6, 30);
     576        $f6g6_19 = $g6_19->mulInt64($f6, 30);
     577        $f6g7_19 = $g7_19->mulInt64($f6, 30);
     578        $f6g8_19 = $g8_19->mulInt64($f6, 30);
     579        $f6g9_19 = $g9_19->mulInt64($f6, 30);
     580        $f7g0    = $f7->mulInt64($g0, 30);
     581        $f7g1_2  = $g1->mulInt64($f7_2, 30);
     582        $f7g2    = $f7->mulInt64($g2, 30);
     583        $f7g3_38 = $g3_19->mulInt64($f7_2, 30);
     584        $f7g4_19 = $g4_19->mulInt64($f7, 30);
     585        $f7g5_38 = $g5_19->mulInt64($f7_2, 30);
     586        $f7g6_19 = $g6_19->mulInt64($f7, 30);
     587        $f7g7_38 = $g7_19->mulInt64($f7_2, 30);
     588        $f7g8_19 = $g8_19->mulInt64($f7, 30);
     589        $f7g9_38 = $g9_19->mulInt64($f7_2, 30);
     590        $f8g0    = $f8->mulInt64($g0, 30);
     591        $f8g1    = $f8->mulInt64($g1, 29);
     592        $f8g2_19 = $g2_19->mulInt64($f8, 30);
     593        $f8g3_19 = $g3_19->mulInt64($f8, 30);
     594        $f8g4_19 = $g4_19->mulInt64($f8, 30);
     595        $f8g5_19 = $g5_19->mulInt64($f8, 30);
     596        $f8g6_19 = $g6_19->mulInt64($f8, 30);
     597        $f8g7_19 = $g7_19->mulInt64($f8, 30);
     598        $f8g8_19 = $g8_19->mulInt64($f8, 30);
     599        $f8g9_19 = $g9_19->mulInt64($f8, 30);
     600        $f9g0    = $f9->mulInt64($g0, 30);
     601        $f9g1_38 = $g1_19->mulInt64($f9_2, 30);
     602        $f9g2_19 = $g2_19->mulInt64($f9, 30);
     603        $f9g3_38 = $g3_19->mulInt64($f9_2, 30);
     604        $f9g4_19 = $g4_19->mulInt64($f9, 30);
     605        $f9g5_38 = $g5_19->mulInt64($f9_2, 30);
     606        $f9g6_19 = $g6_19->mulInt64($f9, 30);
     607        $f9g7_38 = $g7_19->mulInt64($f9_2, 30);
     608        $f9g8_19 = $g8_19->mulInt64($f9, 30);
     609        $f9g9_38 = $g9_19->mulInt64($f9_2, 30);
    609610
    610611        // $h0 = $f0g0 + $f1g9_38 + $f2g8_19 + $f3g7_38 + $f4g6_19 + $f5g5_38 + $f6g4_19 + $f7g3_38 + $f8g2_19 + $f9g1_38;
     
    716717
    717718        $carry9 = $h9->addInt(1 << 24)->shiftRight(25);
    718         $h0 = $h0->addInt64($carry9->mulInt(19));
     719        $h0 = $h0->addInt64($carry9->mulInt(19, 5));
    719720        $h9 = $h9->subInt64($carry9->shiftLeft(25));
    720721
     
    811812        $f9_38 = $f9->mulInt(38, 6);
    812813        /** @var ParagonIE_Sodium_Core32_Int64 $f0f0*/
    813         $f0f0    = $f0->mulInt64($f0, 31);
    814         $f0f1_2  = $f0_2->mulInt64($f1, 31);
    815         $f0f2_2 =  $f0_2->mulInt64($f2, 31);
    816         $f0f3_2 =  $f0_2->mulInt64($f3, 31);
    817         $f0f4_2 =  $f0_2->mulInt64($f4, 31);
    818         $f0f5_2 =  $f0_2->mulInt64($f5, 31);
    819         $f0f6_2 =  $f0_2->mulInt64($f6, 31);
    820         $f0f7_2 =  $f0_2->mulInt64($f7, 31);
    821         $f0f8_2 =  $f0_2->mulInt64($f8, 31);
    822         $f0f9_2 =  $f0_2->mulInt64($f9, 31);
    823 
    824         $f1f1_2 = $f1_2->mulInt64($f1, 31);
    825         $f1f2_2 = $f1_2->mulInt64($f2, 31);
    826         $f1f3_4 = $f1_2->mulInt64($f3_2, 31);
    827         $f1f4_2 = $f1_2->mulInt64($f4, 31);
    828         $f1f5_4 = $f1_2->mulInt64($f5_2, 31);
    829         $f1f6_2 = $f1_2->mulInt64($f6, 31);
    830         $f1f7_4 = $f1_2->mulInt64($f7_2, 31);
    831         $f1f8_2 = $f1_2->mulInt64($f8, 31);
    832         $f1f9_76 = $f1_2->mulInt64($f9_38, 31);
    833 
    834         $f2f2 = $f2->mulInt64($f2, 31);
    835         $f2f3_2 = $f2_2->mulInt64($f3, 31);
    836         $f2f4_2 = $f2_2->mulInt64($f4, 31);
    837         $f2f5_2 = $f2_2->mulInt64($f5, 31);
    838         $f2f6_2 = $f2_2->mulInt64($f6, 31);
    839         $f2f7_2 = $f2_2->mulInt64($f7, 31);
    840         $f2f8_38 = $f8_19->mulInt64($f2_2, 31);
    841         $f2f9_38 = $f9_38->mulInt64($f2, 31);
    842 
    843         $f3f3_2 = $f3_2->mulInt64($f3, 31);
    844         $f3f4_2 = $f3_2->mulInt64($f4, 31);
    845         $f3f5_4 = $f3_2->mulInt64($f5_2, 31);
    846         $f3f6_2 = $f3_2->mulInt64($f6, 31);
    847         $f3f7_76 = $f7_38->mulInt64($f3_2, 31);
    848         $f3f8_38 = $f8_19->mulInt64($f3_2, 31);
    849         $f3f9_76 = $f9_38->mulInt64($f3_2, 31);
    850 
    851         $f4f4 = $f4->mulInt64($f4, 31);
    852         $f4f5_2 = $f4_2->mulInt64($f5, 31);
    853         $f4f6_38 = $f4_2->mulInt64($f6_19, 31);
    854         $f4f7_38 = $f7_38->mulInt64($f4, 31);
    855         $f4f8_38 = $f8_19->mulInt64($f4_2, 31);
    856         $f4f9_38 = $f9_38->mulInt64($f4, 31);
    857 
    858         $f5f5_38 = $f5_38->mulInt64($f5, 31);
    859         $f5f6_38 = $f6_19->mulInt64($f5_2, 31);
    860         $f5f7_76 = $f7_38->mulInt64($f5_2, 31);
    861         $f5f8_38 = $f8_19->mulInt64($f5_2, 31);
    862         $f5f9_76 = $f9_38->mulInt64($f5_2, 31);
    863 
    864         $f6f6_19 = $f6_19->mulInt64($f6, 31);
    865         $f6f7_38 = $f7_38->mulInt64($f6, 31);
    866         $f6f8_38 = $f8_19->mulInt64($f6_2, 31);
    867         $f6f9_38 = $f6->mulInt64($f9_38, 31);
    868 
    869         $f7f7_38 = $f7->mulInt64($f7_38, 31);
    870         $f7f8_38 = $f7_2->mulInt64($f8_19, 31);
    871         $f7f9_76 = $f7_2->mulInt64($f9_38, 31);
    872 
    873         $f8f8_19 = $f8->mulInt64($f8_19, 31);
    874         $f8f9_38 = $f8->mulInt64($f9_38, 31);
    875 
    876         $f9f9_38 = $f9->mulInt64($f9_38, 31);
     814        $f0f0    = $f0->mulInt64($f0, 29);
     815        $f0f1_2  = $f0_2->mulInt64($f1, 29);
     816        $f0f2_2 =  $f0_2->mulInt64($f2, 29);
     817        $f0f3_2 =  $f0_2->mulInt64($f3, 29);
     818        $f0f4_2 =  $f0_2->mulInt64($f4, 29);
     819        $f0f5_2 =  $f0_2->mulInt64($f5, 29);
     820        $f0f6_2 =  $f0_2->mulInt64($f6, 29);
     821        $f0f7_2 =  $f0_2->mulInt64($f7, 29);
     822        $f0f8_2 =  $f0_2->mulInt64($f8, 29);
     823        $f0f9_2 =  $f0_2->mulInt64($f9, 29);
     824
     825        $f1f1_2 = $f1_2->mulInt64($f1, 29);
     826        $f1f2_2 = $f1_2->mulInt64($f2, 29);
     827        $f1f3_4 = $f1_2->mulInt64($f3_2, 29);
     828        $f1f4_2 = $f1_2->mulInt64($f4, 29);
     829        $f1f5_4 = $f1_2->mulInt64($f5_2, 30);
     830        $f1f6_2 = $f1_2->mulInt64($f6, 29);
     831        $f1f7_4 = $f1_2->mulInt64($f7_2, 29);
     832        $f1f8_2 = $f1_2->mulInt64($f8, 29);
     833        $f1f9_76 = $f9_38->mulInt64($f1_2, 30);
     834
     835        $f2f2 = $f2->mulInt64($f2, 29);
     836        $f2f3_2 = $f2_2->mulInt64($f3, 29);
     837        $f2f4_2 = $f2_2->mulInt64($f4, 29);
     838        $f2f5_2 = $f2_2->mulInt64($f5, 29);
     839        $f2f6_2 = $f2_2->mulInt64($f6, 29);
     840        $f2f7_2 = $f2_2->mulInt64($f7, 29);
     841        $f2f8_38 = $f8_19->mulInt64($f2_2, 30);
     842        $f2f9_38 = $f9_38->mulInt64($f2, 30);
     843
     844        $f3f3_2 = $f3_2->mulInt64($f3, 29);
     845        $f3f4_2 = $f3_2->mulInt64($f4, 29);
     846        $f3f5_4 = $f3_2->mulInt64($f5_2, 30);
     847        $f3f6_2 = $f3_2->mulInt64($f6, 29);
     848        $f3f7_76 = $f7_38->mulInt64($f3_2, 30);
     849        $f3f8_38 = $f8_19->mulInt64($f3_2, 30);
     850        $f3f9_76 = $f9_38->mulInt64($f3_2, 30);
     851
     852        $f4f4 = $f4->mulInt64($f4, 29);
     853        $f4f5_2 = $f4_2->mulInt64($f5, 29);
     854        $f4f6_38 = $f6_19->mulInt64($f4_2, 30);
     855        $f4f7_38 = $f7_38->mulInt64($f4, 30);
     856        $f4f8_38 = $f8_19->mulInt64($f4_2, 30);
     857        $f4f9_38 = $f9_38->mulInt64($f4, 30);
     858
     859        $f5f5_38 = $f5_38->mulInt64($f5, 30);
     860        $f5f6_38 = $f6_19->mulInt64($f5_2, 30);
     861        $f5f7_76 = $f7_38->mulInt64($f5_2, 30);
     862        $f5f8_38 = $f8_19->mulInt64($f5_2, 30);
     863        $f5f9_76 = $f9_38->mulInt64($f5_2, 30);
     864
     865        $f6f6_19 = $f6_19->mulInt64($f6, 30);
     866        $f6f7_38 = $f7_38->mulInt64($f6, 30);
     867        $f6f8_38 = $f8_19->mulInt64($f6_2, 30);
     868        $f6f9_38 = $f9_38->mulInt64($f6, 30);
     869
     870        $f7f7_38 = $f7_38->mulInt64($f7, 29);
     871        $f7f8_38 = $f8_19->mulInt64($f7_2, 30);
     872        $f7f9_76 = $f9_38->mulInt64($f7_2, 30);
     873
     874        $f8f8_19 = $f8_19->mulInt64($f8, 30);
     875        $f8f9_38 = $f9_38->mulInt64($f8, 30);
     876
     877        $f9f9_38 = $f9_38->mulInt64($f9, 29);
    877878
    878879        $h0 = $f0f0->addInt64($f1f9_76)->addInt64($f2f8_38)->addInt64($f3f7_76)->addInt64($f4f6_38)->addInt64($f5f5_38);
     
    941942
    942943        $carry9 = $h9->addInt(1 << 24)->shiftRight(25);
    943         $h0 = $h0->addInt64($carry9->mulInt(19));
     944        $h0 = $h0->addInt64($carry9->mulInt(19, 5));
    944945        $h9 = $h9->subInt64($carry9->shiftLeft(25));
    945946
     
    10131014        $f8_19 = $f8->mulInt(19, 5); /* 1.959375*2^30 */
    10141015        $f9_38 = $f9->mulInt(38, 6); /* 1.959375*2^30 */
    1015         $f0f0 = $f0->mulInt64($f0, 31);
    1016         $f0f1_2 = $f0_2->mulInt64($f1, 31);
    1017         $f0f2_2 = $f0_2->mulInt64($f2, 31);
    1018         $f0f3_2 = $f0_2->mulInt64($f3, 31);
    1019         $f0f4_2 = $f0_2->mulInt64($f4, 31);
    1020         $f0f5_2 = $f0_2->mulInt64($f5, 31);
    1021         $f0f6_2 = $f0_2->mulInt64($f6, 31);
    1022         $f0f7_2 = $f0_2->mulInt64($f7, 31);
    1023         $f0f8_2 = $f0_2->mulInt64($f8, 31);
    1024         $f0f9_2 = $f0_2->mulInt64($f9, 31);
    1025         $f1f1_2 = $f1_2->mulInt64($f1, 31);
    1026         $f1f2_2 = $f1_2->mulInt64($f2, 31);
    1027         $f1f3_4 = $f1_2->mulInt64($f3_2, 31);
    1028         $f1f4_2 = $f1_2->mulInt64($f4, 31);
    1029         $f1f5_4 = $f1_2->mulInt64($f5_2, 31);
    1030         $f1f6_2 = $f1_2->mulInt64($f6, 31);
    1031         $f1f7_4 = $f1_2->mulInt64($f7_2, 31);
    1032         $f1f8_2 = $f1_2->mulInt64($f8, 31);
    1033         $f1f9_76 = $f1_2->mulInt64($f9_38, 31);
    1034         $f2f2 = $f2->mulInt64($f2, 31);
    1035         $f2f3_2 = $f2_2->mulInt64($f3, 31);
    1036         $f2f4_2 = $f2_2->mulInt64($f4, 31);
    1037         $f2f5_2 = $f2_2->mulInt64($f5, 31);
    1038         $f2f6_2 = $f2_2->mulInt64($f6, 31);
    1039         $f2f7_2 = $f2_2->mulInt64($f7, 31);
    1040         $f2f8_38 = $f2_2->mulInt64($f8_19, 31);
    1041         $f2f9_38 = $f2->mulInt64($f9_38, 31);
    1042         $f3f3_2 = $f3_2->mulInt64($f3, 31);
    1043         $f3f4_2 = $f3_2->mulInt64($f4, 31);
    1044         $f3f5_4 = $f3_2->mulInt64($f5_2, 31);
    1045         $f3f6_2 = $f3_2->mulInt64($f6, 31);
    1046         $f3f7_76 = $f3_2->mulInt64($f7_38, 31);
    1047         $f3f8_38 = $f3_2->mulInt64($f8_19, 31);
    1048         $f3f9_76 = $f3_2->mulInt64($f9_38, 31);
    1049         $f4f4 = $f4->mulInt64($f4, 31);
    1050         $f4f5_2 = $f4_2->mulInt64($f5, 31);
    1051         $f4f6_38 = $f4_2->mulInt64($f6_19, 31);
    1052         $f4f7_38 = $f4->mulInt64($f7_38, 31);
    1053         $f4f8_38 = $f4_2->mulInt64($f8_19, 31);
    1054         $f4f9_38 = $f4->mulInt64($f9_38, 31);
    1055         $f5f5_38 = $f5->mulInt64($f5_38, 31);
    1056         $f5f6_38 = $f5_2->mulInt64($f6_19, 31);
    1057         $f5f7_76 = $f5_2->mulInt64($f7_38, 31);
    1058         $f5f8_38 = $f5_2->mulInt64($f8_19, 31);
    1059         $f5f9_76 = $f5_2->mulInt64($f9_38, 31);
    1060         $f6f6_19 = $f6->mulInt64($f6_19, 31);
    1061         $f6f7_38 = $f6->mulInt64($f7_38, 31);
    1062         $f6f8_38 = $f6_2->mulInt64($f8_19, 31);
    1063         $f6f9_38 = $f6->mulInt64($f9_38, 31);
    1064         $f7f7_38 = $f7->mulInt64($f7_38, 31);
    1065         $f7f8_38 = $f7_2->mulInt64($f8_19, 31);
    1066         $f7f9_76 = $f7_2->mulInt64($f9_38, 31);
    1067         $f8f8_19 = $f8->mulInt64($f8_19, 31);
    1068         $f8f9_38 = $f8->mulInt64($f9_38, 31);
    1069         $f9f9_38 = $f9->mulInt64($f9_38, 31);
     1016        $f0f0 = $f0->mulInt64($f0, 28);
     1017        $f0f1_2 = $f0_2->mulInt64($f1, 28);
     1018        $f0f2_2 = $f0_2->mulInt64($f2, 28);
     1019        $f0f3_2 = $f0_2->mulInt64($f3, 28);
     1020        $f0f4_2 = $f0_2->mulInt64($f4, 28);
     1021        $f0f5_2 = $f0_2->mulInt64($f5, 28);
     1022        $f0f6_2 = $f0_2->mulInt64($f6, 28);
     1023        $f0f7_2 = $f0_2->mulInt64($f7, 28);
     1024        $f0f8_2 = $f0_2->mulInt64($f8, 28);
     1025        $f0f9_2 = $f0_2->mulInt64($f9, 28);
     1026        $f1f1_2 = $f1_2->mulInt64($f1, 28);
     1027        $f1f2_2 = $f1_2->mulInt64($f2, 28);
     1028        $f1f3_4 = $f1_2->mulInt64($f3_2, 29);
     1029        $f1f4_2 = $f1_2->mulInt64($f4, 28);
     1030        $f1f5_4 = $f1_2->mulInt64($f5_2, 29);
     1031        $f1f6_2 = $f1_2->mulInt64($f6, 28);
     1032        $f1f7_4 = $f1_2->mulInt64($f7_2, 29);
     1033        $f1f8_2 = $f1_2->mulInt64($f8, 28);
     1034        $f1f9_76 = $f9_38->mulInt64($f1_2, 30);
     1035        $f2f2 = $f2->mulInt64($f2, 28);
     1036        $f2f3_2 = $f2_2->mulInt64($f3, 28);
     1037        $f2f4_2 = $f2_2->mulInt64($f4, 28);
     1038        $f2f5_2 = $f2_2->mulInt64($f5, 28);
     1039        $f2f6_2 = $f2_2->mulInt64($f6, 28);
     1040        $f2f7_2 = $f2_2->mulInt64($f7, 28);
     1041        $f2f8_38 = $f8_19->mulInt64($f2_2, 30);
     1042        $f2f9_38 = $f9_38->mulInt64($f2, 30);
     1043        $f3f3_2 = $f3_2->mulInt64($f3, 28);
     1044        $f3f4_2 = $f3_2->mulInt64($f4, 28);
     1045        $f3f5_4 = $f3_2->mulInt64($f5_2, 28);
     1046        $f3f6_2 = $f3_2->mulInt64($f6, 28);
     1047        $f3f7_76 = $f7_38->mulInt64($f3_2, 30);
     1048        $f3f8_38 = $f8_19->mulInt64($f3_2, 30);
     1049        $f3f9_76 = $f9_38->mulInt64($f3_2, 30);
     1050        $f4f4 = $f4->mulInt64($f4, 28);
     1051        $f4f5_2 = $f4_2->mulInt64($f5, 28);
     1052        $f4f6_38 = $f6_19->mulInt64($f4_2, 30);
     1053        $f4f7_38 = $f7_38->mulInt64($f4, 30);
     1054        $f4f8_38 = $f8_19->mulInt64($f4_2, 30);
     1055        $f4f9_38 = $f9_38->mulInt64($f4, 30);
     1056        $f5f5_38 = $f5_38->mulInt64($f5, 30);
     1057        $f5f6_38 = $f6_19->mulInt64($f5_2, 30);
     1058        $f5f7_76 = $f7_38->mulInt64($f5_2, 30);
     1059        $f5f8_38 = $f8_19->mulInt64($f5_2, 30);
     1060        $f5f9_76 = $f9_38->mulInt64($f5_2, 30);
     1061        $f6f6_19 = $f6_19->mulInt64($f6, 30);
     1062        $f6f7_38 = $f7_38->mulInt64($f6, 30);
     1063        $f6f8_38 = $f8_19->mulInt64($f6_2, 30);
     1064        $f6f9_38 = $f9_38->mulInt64($f6, 30);
     1065        $f7f7_38 = $f7_38->mulInt64($f7, 30);
     1066        $f7f8_38 = $f8_19->mulInt64($f7_2, 30);
     1067        $f7f9_76 = $f9_38->mulInt64($f7_2, 30);
     1068        $f8f8_19 = $f8_19->mulInt64($f8, 30);
     1069        $f8f9_38 = $f9_38->mulInt64($f8, 30);
     1070        $f9f9_38 = $f9_38->mulInt64($f9, 30);
    10701071
    10711072        $h0 = $f0f0->addInt64($f1f9_76)->addInt64($f2f8_38)->addInt64($f3f7_76)->addInt64($f4f6_38)->addInt64($f5f5_38);
     
    10791080        $h8 = $f0f8_2->addInt64($f1f7_4)->addInt64($f2f6_2)->addInt64($f3f5_4)->addInt64($f4f4)->addInt64($f9f9_38);
    10801081        $h9 = $f0f9_2->addInt64($f1f8_2)->addInt64($f2f7_2)->addInt64($f3f6_2)->addInt64($f4f5_2);
    1081 
    1082         /*
    1083         $h6 = (int) ($f0f6_2 + $f1f5_4  + $f2f4_2  + $f3f3_2  + $f7f9_76 + $f8f8_19);
    1084         $h7 = (int) ($f0f7_2 + $f1f6_2  + $f2f5_2  + $f3f4_2  + $f8f9_38);
    1085         $h8 = (int) ($f0f8_2 + $f1f7_4  + $f2f6_2  + $f3f5_4  + $f4f4    + $f9f9_38);
    1086          */
    10871082
    10881083        /**
     
    11451140
    11461141        $carry9 = $h9->addInt(1 << 24)->shiftRight(25);
    1147         $h0 = $h0->addInt64($carry9->mulInt(19));
     1142        $h0 = $h0->addInt64($carry9->mulInt(19, 5));
    11481143        $h9 = $h9->subInt64($carry9->shiftLeft(25));
    11491144
     
    21172112        # slide(aslide,a);
    21182113        # slide(bslide,b);
     2114        /** @var array<int, int> $aslide */
    21192115        $aslide = self::slide($a);
     2116        /** @var array<int, int> $bslide */
    21202117        $bslide = self::slide($b);
    21212118
     
    22862283    public static function sc_muladd($a, $b, $c)
    22872284    {
    2288         $a0 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($a, 0, 3)))->toInt64();
    2289         $a1 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($a, 2, 4)) >> 5))->toInt64();
    2290         $a2 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($a, 5, 3)) >> 2))->toInt64();
    2291         $a3 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($a, 7, 4)) >> 7))->toInt64();
    2292         $a4 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($a, 10, 4)) >> 4))->toInt64();
    2293         $a5 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($a, 13, 3)) >> 1))->toInt64();
    2294         $a6 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($a, 15, 4)) >> 6))->toInt64();
    2295         $a7 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($a, 18, 3)) >> 3))->toInt64();
    2296         $a8 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($a, 21, 3)))->toInt64();
    2297         $a9 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($a, 23, 4)) >> 5))->toInt64();
    2298         $a10 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($a, 26, 3)) >> 2))->toInt64();
    2299         $a11 = ParagonIE_Sodium_Core32_Int32::fromInt(0x1fffffff & (self::load_4(self::substr($a, 28, 4)) >> 7))->toInt64();
    2300         $b0 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($b, 0, 3)))->toInt64();
    2301         $b1 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($b, 2, 4)) >> 5))->toInt64();
    2302         $b2 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($b, 5, 3)) >> 2))->toInt64();
    2303         $b3 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($b, 7, 4)) >> 7))->toInt64();
    2304         $b4 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($b, 10, 4)) >> 4))->toInt64();
    2305         $b5 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($b, 13, 3)) >> 1))->toInt64();
    2306         $b6 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($b, 15, 4)) >> 6))->toInt64();
    2307         $b7 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($b, 18, 3)) >> 3))->toInt64();
    2308         $b8 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($b, 21, 3)))->toInt64();
    2309         $b9 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($b, 23, 4)) >> 5))->toInt64();
    2310         $b10 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($b, 26, 3)) >> 2))->toInt64();
    2311         $b11 = ParagonIE_Sodium_Core32_Int32::fromInt(0x1fffffff & (self::load_4(self::substr($b, 28, 4)) >> 7))->toInt64();
    2312         $c0 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($c, 0, 3)))->toInt64();
    2313         $c1 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($c, 2, 4)) >> 5))->toInt64();
    2314         $c2 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($c, 5, 3)) >> 2))->toInt64();
    2315         $c3 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($c, 7, 4)) >> 7))->toInt64();
    2316         $c4 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($c, 10, 4)) >> 4))->toInt64();
    2317         $c5 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($c, 13, 3)) >> 1))->toInt64();
    2318         $c6 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($c, 15, 4)) >> 6))->toInt64();
    2319         $c7 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($c, 18, 3)) >> 3))->toInt64();
    2320         $c8 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($c, 21, 3)))->toInt64();
    2321         $c9 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($c, 23, 4)) >> 5))->toInt64();
    2322         $c10 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($c, 26, 3)) >> 2))->toInt64();
    2323         $c11 = ParagonIE_Sodium_Core32_Int32::fromInt(0x1fffffff & (self::load_4(self::substr($c, 28, 4)) >> 7))->toInt64();
     2285        $a0 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($a, 0, 3)));
     2286        $a1 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($a, 2, 4)) >> 5));
     2287        $a2 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($a, 5, 3)) >> 2));
     2288        $a3 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($a, 7, 4)) >> 7));
     2289        $a4 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($a, 10, 4)) >> 4));
     2290        $a5 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($a, 13, 3)) >> 1));
     2291        $a6 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($a, 15, 4)) >> 6));
     2292        $a7 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($a, 18, 3)) >> 3));
     2293        $a8 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($a, 21, 3)));
     2294        $a9 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($a, 23, 4)) >> 5));
     2295        $a10 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($a, 26, 3)) >> 2));
     2296        $a11 = ParagonIE_Sodium_Core32_Int64::fromInt(0x1fffffff & (self::load_4(self::substr($a, 28, 4)) >> 7));
     2297        $b0 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($b, 0, 3)));
     2298        $b1 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($b, 2, 4)) >> 5));
     2299        $b2 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($b, 5, 3)) >> 2));
     2300        $b3 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($b, 7, 4)) >> 7));
     2301        $b4 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($b, 10, 4)) >> 4));
     2302        $b5 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($b, 13, 3)) >> 1));
     2303        $b6 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($b, 15, 4)) >> 6));
     2304        $b7 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($b, 18, 3)) >> 3));
     2305        $b8 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($b, 21, 3)));
     2306        $b9 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($b, 23, 4)) >> 5));
     2307        $b10 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($b, 26, 3)) >> 2));
     2308        $b11 = ParagonIE_Sodium_Core32_Int64::fromInt(0x1fffffff & (self::load_4(self::substr($b, 28, 4)) >> 7));
     2309        $c0 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($c, 0, 3)));
     2310        $c1 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($c, 2, 4)) >> 5));
     2311        $c2 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($c, 5, 3)) >> 2));
     2312        $c3 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($c, 7, 4)) >> 7));
     2313        $c4 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($c, 10, 4)) >> 4));
     2314        $c5 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($c, 13, 3)) >> 1));
     2315        $c6 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($c, 15, 4)) >> 6));
     2316        $c7 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($c, 18, 3)) >> 3));
     2317        $c8 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($c, 21, 3)));
     2318        $c9 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($c, 23, 4)) >> 5));
     2319        $c10 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($c, 26, 3)) >> 2));
     2320        $c11 = ParagonIE_Sodium_Core32_Int64::fromInt(0x1fffffff & (self::load_4(self::substr($c, 28, 4)) >> 7));
    23242321
    23252322        /* Can't really avoid the pyramid here: */
     
    23542351        $s1 = $c1->addInt64($a0->mulInt64($b1, 24))->addInt64($a1->mulInt64($b0, 24));
    23552352        $s2 = $c2->addInt64($a0->mulInt64($b2, 24))->addInt64($a1->mulInt64($b1, 24))->addInt64($a2->mulInt64($b0, 24));
    2356         $s3 = $c3->addInt64($a0->mulInt64($b3, 24))->addInt64($a1->mulInt64($b2, 24))->addInt64($a2->mulInt64($b1, 24))->addInt64($a3->mulInt64($b0, 24));
    2357         $s4 = $c4->addInt64($a0->mulInt64($b4, 24))->addInt64($a1->mulInt64($b3, 24))->addInt64($a2->mulInt64($b2, 24))->addInt64($a3->mulInt64($b1, 24))->addInt64($a4->mulInt64($b0, 24));
    2358         $s5 = $c5->addInt64($a0->mulInt64($b5, 24))->addInt64($a1->mulInt64($b4, 24))->addInt64($a2->mulInt64($b3, 24))->addInt64($a3->mulInt64($b2, 24))->addInt64($a4->mulInt64($b1, 24))->addInt64($a5->mulInt64($b0, 24));
    2359         $s6 = $c6->addInt64($a0->mulInt64($b6, 24))->addInt64($a1->mulInt64($b5, 24))->addInt64($a2->mulInt64($b4, 24))->addInt64($a3->mulInt64($b3, 24))->addInt64($a4->mulInt64($b2, 24))->addInt64($a5->mulInt64($b1, 24))
     2353        $s3 = $c3->addInt64($a0->mulInt64($b3, 24))->addInt64($a1->mulInt64($b2, 24))->addInt64($a2->mulInt64($b1, 24))
     2354                 ->addInt64($a3->mulInt64($b0, 24));
     2355        $s4 = $c4->addInt64($a0->mulInt64($b4, 24))->addInt64($a1->mulInt64($b3, 24))->addInt64($a2->mulInt64($b2, 24))
     2356                 ->addInt64($a3->mulInt64($b1, 24))->addInt64($a4->mulInt64($b0, 24));
     2357        $s5 = $c5->addInt64($a0->mulInt64($b5, 24))->addInt64($a1->mulInt64($b4, 24))->addInt64($a2->mulInt64($b3, 24))
     2358                 ->addInt64($a3->mulInt64($b2, 24))->addInt64($a4->mulInt64($b1, 24))->addInt64($a5->mulInt64($b0, 24));
     2359        $s6 = $c6->addInt64($a0->mulInt64($b6, 24))->addInt64($a1->mulInt64($b5, 24))->addInt64($a2->mulInt64($b4, 24))
     2360                 ->addInt64($a3->mulInt64($b3, 24))->addInt64($a4->mulInt64($b2, 24))->addInt64($a5->mulInt64($b1, 24))
    23602361                 ->addInt64($a6->mulInt64($b0, 24));
    2361         $s7 = $c7->addInt64($a0->mulInt64($b7, 24))->addInt64($a1->mulInt64($b6, 24))->addInt64($a2->mulInt64($b5, 24))->addInt64($a3->mulInt64($b4, 24))->addInt64($a4->mulInt64($b3, 24))->addInt64($a5->mulInt64($b2, 24))
     2362        $s7 = $c7->addInt64($a0->mulInt64($b7, 24))->addInt64($a1->mulInt64($b6, 24))->addInt64($a2->mulInt64($b5, 24))
     2363                 ->addInt64($a3->mulInt64($b4, 24))->addInt64($a4->mulInt64($b3, 24))->addInt64($a5->mulInt64($b2, 24))
    23622364                 ->addInt64($a6->mulInt64($b1, 24))->addInt64($a7->mulInt64($b0, 24));
    2363         $s8 = $c8->addInt64($a0->mulInt64($b8, 24))->addInt64($a1->mulInt64($b7, 24))->addInt64($a2->mulInt64($b6, 24))->addInt64($a3->mulInt64($b5, 24))->addInt64($a4->mulInt64($b4, 24))->addInt64($a5->mulInt64($b3, 24))
     2365        $s8 = $c8->addInt64($a0->mulInt64($b8, 24))->addInt64($a1->mulInt64($b7, 24))->addInt64($a2->mulInt64($b6, 24))
     2366                 ->addInt64($a3->mulInt64($b5, 24))->addInt64($a4->mulInt64($b4, 24))->addInt64($a5->mulInt64($b3, 24))
    23642367                 ->addInt64($a6->mulInt64($b2, 24))->addInt64($a7->mulInt64($b1, 24))->addInt64($a8->mulInt64($b0, 24));
    2365         $s9 = $c9->addInt64($a0->mulInt64($b9, 24))->addInt64($a1->mulInt64($b8, 24))->addInt64($a2->mulInt64($b7, 24))->addInt64($a3->mulInt64($b6, 24))->addInt64($a4->mulInt64($b5, 24))->addInt64($a5->mulInt64($b4, 24))
    2366                  ->addInt64($a6->mulInt64($b3, 24))->addInt64($a7->mulInt64($b2, 24))->addInt64($a8->mulInt64($b1, 24))->addInt64($a9->mulInt64($b0, 24));
    2367         $s10 = $c10->addInt64($a0->mulInt64($b10, 24))->addInt64($a1->mulInt64($b9, 24))->addInt64($a2->mulInt64($b8, 24))->addInt64($a3->mulInt64($b7, 24))->addInt64($a4->mulInt64($b6, 24))->addInt64($a5->mulInt64($b5, 24))
    2368                    ->addInt64($a6->mulInt64($b4, 24))->addInt64($a7->mulInt64($b3, 24))->addInt64($a8->mulInt64($b2, 24))->addInt64($a9->mulInt64($b1, 24))->addInt64($a10->mulInt64($b0, 24));
    2369         $s11 = $c11->addInt64($a0->mulInt64($b11, 24))->addInt64($a1->mulInt64($b10, 24))->addInt64($a2->mulInt64($b9, 24))->addInt64($a3->mulInt64($b8, 24))->addInt64($a4->mulInt64($b7, 24))->addInt64($a5->mulInt64($b6, 24))
    2370                    ->addInt64($a6->mulInt64($b5, 24))->addInt64($a7->mulInt64($b4, 24))->addInt64($a8->mulInt64($b3, 24))->addInt64($a9->mulInt64($b2, 24))->addInt64($a10->mulInt64($b1, 24))->addInt64($a11->mulInt64($b0, 24));
    2371         $s12 = $a1->mulInt64($b11, 24)->addInt64($a2->mulInt64($b10, 24))->addInt64($a3->mulInt64($b9, 24))->addInt64($a4->mulInt64($b8, 24))->addInt64($a5->mulInt64($b7, 24))->addInt64($a6->mulInt64($b6, 24))
    2372                   ->addInt64($a7->mulInt64($b5, 24))->addInt64($a8->mulInt64($b4, 24))->addInt64($a9->mulInt64($b3, 24))->addInt64($a10->mulInt64($b2, 24))->addInt64($a11->mulInt64($b1, 24));
    2373         $s13 = $a2->mulInt64($b11, 24)->addInt64($a3->mulInt64($b10, 24))->addInt64($a4->mulInt64($b9, 24))->addInt64($a5->mulInt64($b8, 24))->addInt64($a6->mulInt64($b7, 24))->addInt64($a7->mulInt64($b6, 24))
    2374                   ->addInt64($a8->mulInt64($b5, 24))->addInt64($a9->mulInt64($b4, 24))->addInt64($a10->mulInt64($b3, 24))->addInt64($a11->mulInt64($b2, 24));
    2375         $s14 = $a3->mulInt64($b11, 24)->addInt64($a4->mulInt64($b10, 24))->addInt64($a5->mulInt64($b9, 24))->addInt64($a6->mulInt64($b8, 24))->addInt64($a7->mulInt64($b7, 24))->addInt64($a8->mulInt64($b6, 24))
     2368        $s9 = $c9->addInt64($a0->mulInt64($b9, 24))->addInt64($a1->mulInt64($b8, 24))->addInt64($a2->mulInt64($b7, 24))
     2369                 ->addInt64($a3->mulInt64($b6, 24))->addInt64($a4->mulInt64($b5, 24))->addInt64($a5->mulInt64($b4, 24))
     2370                 ->addInt64($a6->mulInt64($b3, 24))->addInt64($a7->mulInt64($b2, 24))->addInt64($a8->mulInt64($b1, 24))
     2371                 ->addInt64($a9->mulInt64($b0, 24));
     2372        $s10 = $c10->addInt64($a0->mulInt64($b10, 24))->addInt64($a1->mulInt64($b9, 24))->addInt64($a2->mulInt64($b8, 24))
     2373                   ->addInt64($a3->mulInt64($b7, 24))->addInt64($a4->mulInt64($b6, 24))->addInt64($a5->mulInt64($b5, 24))
     2374                   ->addInt64($a6->mulInt64($b4, 24))->addInt64($a7->mulInt64($b3, 24))->addInt64($a8->mulInt64($b2, 24))
     2375                   ->addInt64($a9->mulInt64($b1, 24))->addInt64($a10->mulInt64($b0, 24));
     2376        $s11 = $c11->addInt64($a0->mulInt64($b11, 24))->addInt64($a1->mulInt64($b10, 24))->addInt64($a2->mulInt64($b9, 24))
     2377                   ->addInt64($a3->mulInt64($b8, 24))->addInt64($a4->mulInt64($b7, 24))->addInt64($a5->mulInt64($b6, 24))
     2378                   ->addInt64($a6->mulInt64($b5, 24))->addInt64($a7->mulInt64($b4, 24))->addInt64($a8->mulInt64($b3, 24))
     2379                   ->addInt64($a9->mulInt64($b2, 24))->addInt64($a10->mulInt64($b1, 24))->addInt64($a11->mulInt64($b0, 24));
     2380        $s12 = $a1->mulInt64($b11, 24)->addInt64($a2->mulInt64($b10, 24))->addInt64($a3->mulInt64($b9, 24))
     2381                  ->addInt64($a4->mulInt64($b8, 24))->addInt64($a5->mulInt64($b7, 24))->addInt64($a6->mulInt64($b6, 24))
     2382                  ->addInt64($a7->mulInt64($b5, 24))->addInt64($a8->mulInt64($b4, 24))->addInt64($a9->mulInt64($b3, 24))
     2383                  ->addInt64($a10->mulInt64($b2, 24))->addInt64($a11->mulInt64($b1, 24));
     2384        $s13 = $a2->mulInt64($b11, 24)->addInt64($a3->mulInt64($b10, 24))->addInt64($a4->mulInt64($b9, 24))
     2385                  ->addInt64($a5->mulInt64($b8, 24))->addInt64($a6->mulInt64($b7, 24))->addInt64($a7->mulInt64($b6, 24))
     2386                  ->addInt64($a8->mulInt64($b5, 24))->addInt64($a9->mulInt64($b4, 24))->addInt64($a10->mulInt64($b3, 24))
     2387                  ->addInt64($a11->mulInt64($b2, 24));
     2388        $s14 = $a3->mulInt64($b11, 24)->addInt64($a4->mulInt64($b10, 24))->addInt64($a5->mulInt64($b9, 24))
     2389                  ->addInt64($a6->mulInt64($b8, 24))->addInt64($a7->mulInt64($b7, 24))->addInt64($a8->mulInt64($b6, 24))
    23762390                  ->addInt64($a9->mulInt64($b5, 24))->addInt64($a10->mulInt64($b4, 24))->addInt64($a11->mulInt64($b3, 24));
    2377         $s15 = $a4->mulInt64($b11, 24)->addInt64($a5->mulInt64($b10, 24))->addInt64($a6->mulInt64($b9, 24))->addInt64($a7->mulInt64($b8, 24))->addInt64($a8->mulInt64($b7, 24))->addInt64($a9->mulInt64($b6, 24))
     2391        $s15 = $a4->mulInt64($b11, 24)->addInt64($a5->mulInt64($b10, 24))->addInt64($a6->mulInt64($b9, 24))
     2392                  ->addInt64($a7->mulInt64($b8, 24))->addInt64($a8->mulInt64($b7, 24))->addInt64($a9->mulInt64($b6, 24))
    23782393                  ->addInt64($a10->mulInt64($b5, 24))->addInt64($a11->mulInt64($b4, 24));
    2379         $s16 = $a5->mulInt64($b11, 24)->addInt64($a6->mulInt64($b10, 24))->addInt64($a7->mulInt64($b9, 24))->addInt64($a8->mulInt64($b8, 24))->addInt64($a9->mulInt64($b7, 24))->addInt64($a10->mulInt64($b6, 24))
    2380                    ->addInt64($a11->mulInt64($b5, 24));
    2381         $s17 = $a6->mulInt64($b11, 24)->addInt64($a7->mulInt64($b10, 24))->addInt64($a8->mulInt64($b9, 24))->addInt64($a9->mulInt64($b8, 24))->addInt64($a10->mulInt64($b7, 24))->addInt64($a11->mulInt64($b6, 24));
    2382         $s18 = $a7->mulInt64($b11, 24)->addInt64($a8->mulInt64($b10, 24))->addInt64($a9->mulInt64($b9, 24))->addInt64($a10->mulInt64($b8, 24))->addInt64($a11->mulInt64($b7, 24));
    2383         $s19 = $a8->mulInt64($b11, 24)->addInt64($a9->mulInt64($b10, 24))->addInt64($a10->mulInt64($b9, 24))->addInt64($a11->mulInt64($b8, 24));
     2394        $s16 = $a5->mulInt64($b11, 24)->addInt64($a6->mulInt64($b10, 24))->addInt64($a7->mulInt64($b9, 24))
     2395                  ->addInt64($a8->mulInt64($b8, 24))->addInt64($a9->mulInt64($b7, 24))->addInt64($a10->mulInt64($b6, 24))
     2396                  ->addInt64($a11->mulInt64($b5, 24));
     2397        $s17 = $a6->mulInt64($b11, 24)->addInt64($a7->mulInt64($b10, 24))->addInt64($a8->mulInt64($b9, 24))
     2398                  ->addInt64($a9->mulInt64($b8, 24))->addInt64($a10->mulInt64($b7, 24))->addInt64($a11->mulInt64($b6, 24));
     2399        $s18 = $a7->mulInt64($b11, 24)->addInt64($a8->mulInt64($b10, 24))->addInt64($a9->mulInt64($b9, 24))
     2400                  ->addInt64($a10->mulInt64($b8, 24))->addInt64($a11->mulInt64($b7, 24));
     2401        $s19 = $a8->mulInt64($b11, 24)->addInt64($a9->mulInt64($b10, 24))->addInt64($a10->mulInt64($b9, 24))
     2402                  ->addInt64($a11->mulInt64($b8, 24));
    23842403        $s20 = $a9->mulInt64($b11, 24)->addInt64($a10->mulInt64($b10, 24))->addInt64($a11->mulInt64($b9, 24));
    23852404        $s21 = $a10->mulInt64($b11, 24)->addInt64($a11->mulInt64($b10, 24));
     
    27022721        $s10 = $s10->subInt64($carry10->shiftLeft(21));
    27032722
    2704         $S0  =  $s0->toInt32()->toInt();
    2705         $S1  =  $s1->toInt32()->toInt();
    2706         $S2  =  $s2->toInt32()->toInt();
    2707         $S3  =  $s3->toInt32()->toInt();
    2708         $S4  =  $s4->toInt32()->toInt();
    2709         $S5  =  $s5->toInt32()->toInt();
    2710         $S6  =  $s6->toInt32()->toInt();
    2711         $S7  =  $s7->toInt32()->toInt();
    2712         $S8  =  $s8->toInt32()->toInt();
    2713         $S9  =  $s9->toInt32()->toInt();
    2714         $S10 = $s10->toInt32()->toInt();
    2715         $S11 = $s11->toInt32()->toInt();
     2723        $S0  =  $s0->toInt();
     2724        $S1  =  $s1->toInt();
     2725        $S2  =  $s2->toInt();
     2726        $S3  =  $s3->toInt();
     2727        $S4  =  $s4->toInt();
     2728        $S5  =  $s5->toInt();
     2729        $S6  =  $s6->toInt();
     2730        $S7  =  $s7->toInt();
     2731        $S8  =  $s8->toInt();
     2732        $S9  =  $s9->toInt();
     2733        $S10 = $s10->toInt();
     2734        $S11 = $s11->toInt();
    27162735
    27172736        /**
     
    27912810         * @var ParagonIE_Sodium_Core32_Int64 $s23
    27922811         */
    2793         $s0 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($s, 0, 3)))->toInt64();
    2794         $s1 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 2, 4)) >> 5))->toInt64();
    2795         $s2 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 5, 3)) >> 2))->toInt64();
    2796         $s3 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 7, 4)) >> 7))->toInt64();
    2797         $s4 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 10, 4)) >> 4))->toInt64();
    2798         $s5 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 13, 3)) >> 1))->toInt64();
    2799         $s6 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 15, 4)) >> 6))->toInt64();
    2800         $s7 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 18, 4)) >> 3))->toInt64();
    2801         $s8 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($s, 21, 3)))->toInt64();
    2802         $s9 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 23, 4)) >> 5))->toInt64();
    2803         $s10 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 26, 3)) >> 2))->toInt64();
    2804         $s11 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 28, 4)) >> 7))->toInt64();
    2805         $s12 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 31, 4)) >> 4))->toInt64();
    2806         $s13 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 34, 3)) >> 1))->toInt64();
    2807         $s14 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 36, 4)) >> 6))->toInt64();
    2808         $s15 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 39, 4)) >> 3))->toInt64();
    2809         $s16 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($s, 42, 3)))->toInt64();
    2810         $s17 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 44, 4)) >> 5))->toInt64();
    2811         $s18 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 47, 3)) >> 2))->toInt64();
    2812         $s19 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 49, 4)) >> 7))->toInt64();
    2813         $s20 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 52, 4)) >> 4))->toInt64();
    2814         $s21 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 55, 3)) >> 1))->toInt64();
    2815         $s22 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 57, 4)) >> 6))->toInt64();
    2816         $s23 = ParagonIE_Sodium_Core32_Int32::fromInt(0x1fffffff & (self::load_4(self::substr($s, 60, 4)) >> 3))->toInt64();
     2812        $s0 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($s, 0, 3)));
     2813        $s1 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 2, 4)) >> 5));
     2814        $s2 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 5, 3)) >> 2));
     2815        $s3 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 7, 4)) >> 7));
     2816        $s4 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 10, 4)) >> 4));
     2817        $s5 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 13, 3)) >> 1));
     2818        $s6 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 15, 4)) >> 6));
     2819        $s7 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 18, 4)) >> 3));
     2820        $s8 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($s, 21, 3)));
     2821        $s9 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 23, 4)) >> 5));
     2822        $s10 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 26, 3)) >> 2));
     2823        $s11 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 28, 4)) >> 7));
     2824        $s12 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 31, 4)) >> 4));
     2825        $s13 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 34, 3)) >> 1));
     2826        $s14 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 36, 4)) >> 6));
     2827        $s15 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 39, 4)) >> 3));
     2828        $s16 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($s, 42, 3)));
     2829        $s17 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 44, 4)) >> 5));
     2830        $s18 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 47, 3)) >> 2));
     2831        $s19 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 49, 4)) >> 7));
     2832        $s20 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 52, 4)) >> 4));
     2833        $s21 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 55, 3)) >> 1));
     2834        $s22 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 57, 4)) >> 6));
     2835        $s23 = ParagonIE_Sodium_Core32_Int64::fromInt(0x1fffffff & (self::load_4(self::substr($s, 60, 4)) >> 3));
    28172836
    28182837        $s11 = $s11->addInt64($s23->mulInt(666643, 20));
     
    31133132
    31143133    /**
    3115      * @internal You should not use this directly from another application
    3116      *
    3117      * @param string $s
    3118      * @return string
    3119      * @throws SodiumException
    3120      * @throws TypeError
    3121      */
    3122     public static function sc_reduce_old($s)
    3123     {
    3124         /**
    3125          * @var ParagonIE_Sodium_Core32_Int32 $s0
    3126          * @var ParagonIE_Sodium_Core32_Int32 $s1
    3127          * @var ParagonIE_Sodium_Core32_Int32 $s2
    3128          * @var ParagonIE_Sodium_Core32_Int32 $s3
    3129          * @var ParagonIE_Sodium_Core32_Int32 $s4
    3130          * @var ParagonIE_Sodium_Core32_Int32 $s5
    3131          * @var ParagonIE_Sodium_Core32_Int32 $s6
    3132          * @var ParagonIE_Sodium_Core32_Int32 $s7
    3133          * @var ParagonIE_Sodium_Core32_Int32 $s8
    3134          * @var ParagonIE_Sodium_Core32_Int32 $s9
    3135          * @var ParagonIE_Sodium_Core32_Int32 $s10
    3136          * @var ParagonIE_Sodium_Core32_Int32 $s11
    3137          * @var ParagonIE_Sodium_Core32_Int32 $s12
    3138          * @var ParagonIE_Sodium_Core32_Int32 $s13
    3139          * @var ParagonIE_Sodium_Core32_Int32 $s14
    3140          * @var ParagonIE_Sodium_Core32_Int32 $s15
    3141          * @var ParagonIE_Sodium_Core32_Int32 $s16
    3142          * @var ParagonIE_Sodium_Core32_Int32 $s17
    3143          * @var ParagonIE_Sodium_Core32_Int32 $s18
    3144          * @var ParagonIE_Sodium_Core32_Int32 $s19
    3145          * @var ParagonIE_Sodium_Core32_Int32 $s20
    3146          * @var ParagonIE_Sodium_Core32_Int32 $s21
    3147          * @var ParagonIE_Sodium_Core32_Int32 $s22
    3148          * @var ParagonIE_Sodium_Core32_Int32 $s23
    3149          */
    3150         $s0 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($s, 0, 3)));
    3151         $s1 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 2, 4)) >> 5));
    3152         $s2 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 5, 3)) >> 2));
    3153         $s3 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 7, 4)) >> 7));
    3154         $s4 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 10, 4)) >> 4));
    3155         $s5 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 13, 3)) >> 1));
    3156         $s6 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 15, 4)) >> 6));
    3157         $s7 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 18, 4)) >> 3));
    3158         $s8 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($s, 21, 3)));
    3159         $s9 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 23, 4)) >> 5));
    3160         $s10 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 26, 3)) >> 2));
    3161         $s11 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 28, 4)) >> 7));
    3162         $s12 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 31, 4)) >> 4));
    3163         $s13 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 34, 3)) >> 1));
    3164         $s14 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 36, 4)) >> 6));
    3165         $s15 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 39, 4)) >> 3));
    3166         $s16 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & self::load_3(self::substr($s, 42, 3)));
    3167         $s17 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 44, 4)) >> 5));
    3168         $s18 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 47, 3)) >> 2));
    3169         $s19 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 49, 4)) >> 7));
    3170         $s20 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 52, 4)) >> 4));
    3171         $s21 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_3(self::substr($s, 55, 3)) >> 1));
    3172         $s22 = ParagonIE_Sodium_Core32_Int32::fromInt(2097151 & (self::load_4(self::substr($s, 57, 4)) >> 6));
    3173         $s23 = ParagonIE_Sodium_Core32_Int32::fromInt(self::load_4(self::substr($s, 60, 4)) >> 3);
    3174 
    3175         $s11 = $s11->addInt32($s23->mulInt(666643, 20));
    3176         $s12 = $s12->addInt32($s23->mulInt(470296, 19));
    3177         $s13 = $s13->addInt32($s23->mulInt(654183, 20));
    3178         $s14 = $s14->subInt32($s23->mulInt(997805, 20));
    3179         $s15 = $s15->addInt32($s23->mulInt(136657, 18));
    3180         $s16 = $s16->subInt32($s23->mulInt(683901, 20));
    3181 
    3182         $s10 = $s10->addInt32($s22->mulInt(666643, 20));
    3183         $s11 = $s11->addInt32($s22->mulInt(470296, 19));
    3184         $s12 = $s12->addInt32($s22->mulInt(654183, 20));
    3185         $s13 = $s13->subInt32($s22->mulInt(997805, 20));
    3186         $s14 = $s14->addInt32($s22->mulInt(136657, 18));
    3187         $s15 = $s15->subInt32($s22->mulInt(683901, 20));
    3188 
    3189         $s9  =  $s9->addInt32($s21->mulInt(666643, 20));
    3190         $s10 = $s10->addInt32($s21->mulInt(470296, 19));
    3191         $s11 = $s11->addInt32($s21->mulInt(654183, 20));
    3192         $s12 = $s12->subInt32($s21->mulInt(997805, 20));
    3193         $s13 = $s13->addInt32($s21->mulInt(136657, 18));
    3194         $s14 = $s14->subInt32($s21->mulInt(683901, 20));
    3195 
    3196         $s8  =  $s8->addInt32($s20->mulInt(666643, 20));
    3197         $s9  =  $s9->addInt32($s20->mulInt(470296, 19));
    3198         $s10 = $s10->addInt32($s20->mulInt(654183, 20));
    3199         $s11 = $s11->subInt32($s20->mulInt(997805, 20));
    3200         $s12 = $s12->addInt32($s20->mulInt(136657, 18));
    3201         $s13 = $s13->subInt32($s20->mulInt(683901, 20));
    3202 
    3203         $s7  =  $s7->addInt32($s19->mulInt(666643, 20));
    3204         $s8  =  $s8->addInt32($s19->mulInt(470296, 19));
    3205         $s9  =  $s9->addInt32($s19->mulInt(654183, 20));
    3206         $s10 = $s10->subInt32($s19->mulInt(997805, 20));
    3207         $s11 = $s11->addInt32($s19->mulInt(136657, 18));
    3208         $s12 = $s12->subInt32($s19->mulInt(683901, 20));
    3209 
    3210         $s6  =  $s6->addInt32($s18->mulInt(666643, 20));
    3211         $s7  =  $s7->addInt32($s18->mulInt(470296, 19));
    3212         $s8  =  $s8->addInt32($s18->mulInt(654183, 20));
    3213         $s9  =  $s9->subInt32($s18->mulInt(997805, 20));
    3214         $s10 = $s10->addInt32($s18->mulInt(136657, 18));
    3215         $s11 = $s11->subInt32($s18->mulInt(683901, 20));
    3216 
    3217         $carry6 = $s6->addInt(1 << 20)->shiftRight(21);
    3218         $s7 = $s7->addInt32($carry6);
    3219         $s6 = $s6->subInt32($carry6->shiftLeft(21));
    3220 
    3221         $carry8 = $s8->addInt(1 << 20)->shiftRight(21);
    3222         $s9 = $s9->addInt32($carry8);
    3223         $s8 = $s8->subInt32($carry8->shiftLeft(21));
    3224 
    3225         $carry10 = $s10->addInt(1 << 20)->shiftRight(21);
    3226         $s11 = $s11->addInt32($carry10);
    3227         $s10 = $s10->subInt32($carry10->shiftLeft(21));
    3228 
    3229         $carry12 = $s12->addInt(1 << 20)->shiftRight(21);
    3230         $s13 = $s13->addInt32($carry12);
    3231         $s12 = $s12->subInt32($carry12->shiftLeft(21));
    3232 
    3233         $carry14 = $s14->addInt(1 << 20)->shiftRight(21);
    3234         $s15 = $s15->addInt32($carry14);
    3235         $s14 = $s14->subInt32($carry14->shiftLeft(21));
    3236 
    3237         $carry16 = $s16->addInt(1 << 20)->shiftRight(21);
    3238         $s17 = $s17->addInt32($carry16);
    3239         $s16 = $s16->subInt32($carry16->shiftLeft(21));
    3240 
    3241         $carry7 = $s7->addInt(1 << 20)->shiftRight(21);
    3242         $s8 = $s8->addInt32($carry7);
    3243         $s7 = $s7->subInt32($carry7->shiftLeft(21));
    3244 
    3245         $carry9 = $s9->addInt(1 << 20)->shiftRight(21);
    3246         $s10 = $s10->addInt32($carry9);
    3247         $s9 = $s9->subInt32($carry9->shiftLeft(21));
    3248 
    3249         $carry11 = $s11->addInt(1 << 20)->shiftRight(21);
    3250         $s12 = $s12->addInt32($carry11);
    3251         $s11 = $s11->subInt32($carry11->shiftLeft(21));
    3252 
    3253         $carry13 = $s13->addInt(1 << 20)->shiftRight(21);
    3254         $s14 = $s14->addInt32($carry13);
    3255         $s13 = $s13->subInt32($carry13->shiftLeft(21));
    3256 
    3257         $carry15 = $s15->addInt(1 << 20)->shiftRight(21);
    3258         $s16 = $s16->addInt32($carry15);
    3259         $s15 = $s15->subInt32($carry15->shiftLeft(21));
    3260 
    3261         $s5  =  $s5->addInt32($s17->mulInt(666643, 20));
    3262         $s6  =  $s6->addInt32($s17->mulInt(470296, 19));
    3263         $s7  =  $s7->addInt32($s17->mulInt(654183, 20));
    3264         $s8  =  $s8->subInt32($s17->mulInt(997805, 20));
    3265         $s9  =  $s9->addInt32($s17->mulInt(136657, 18));
    3266         $s10 = $s10->subInt32($s17->mulInt(683901, 20));
    3267 
    3268         $s4  =  $s4->addInt32($s16->mulInt(666643, 20));
    3269         $s5  =  $s5->addInt32($s16->mulInt(470296, 19));
    3270         $s6  =  $s6->addInt32($s16->mulInt(654183, 20));
    3271         $s7  =  $s7->subInt32($s16->mulInt(997805, 20));
    3272         $s8  =  $s8->addInt32($s16->mulInt(136657, 18));
    3273         $s9  =  $s9->subInt32($s16->mulInt(683901, 20));
    3274 
    3275         $s3  =  $s3->addInt32($s15->mulInt(666643, 20));
    3276         $s4  =  $s4->addInt32($s15->mulInt(470296, 19));
    3277         $s5  =  $s5->addInt32($s15->mulInt(654183, 20));
    3278         $s6  =  $s6->subInt32($s15->mulInt(997805, 20));
    3279         $s7  =  $s7->addInt32($s15->mulInt(136657, 18));
    3280         $s8  =  $s8->subInt32($s15->mulInt(683901, 20));
    3281 
    3282         $s2  =  $s2->addInt32($s14->mulInt(666643, 20));
    3283         $s3  =  $s3->addInt32($s14->mulInt(470296, 19));
    3284         $s4  =  $s4->addInt32($s14->mulInt(654183, 20));
    3285         $s5  =  $s5->subInt32($s14->mulInt(997805, 20));
    3286         $s6  =  $s6->addInt32($s14->mulInt(136657, 18));
    3287         $s7  =  $s7->subInt32($s14->mulInt(683901, 20));
    3288 
    3289         $s1  =  $s1->addInt32($s13->mulInt(666643, 20));
    3290         $s2  =  $s2->addInt32($s13->mulInt(470296, 19));
    3291         $s3  =  $s3->addInt32($s13->mulInt(654183, 20));
    3292         $s4  =  $s4->subInt32($s13->mulInt(997805, 20));
    3293         $s5  =  $s5->addInt32($s13->mulInt(136657, 18));
    3294         $s6  =  $s6->subInt32($s13->mulInt(683901, 20));
    3295 
    3296         $s0  =  $s0->addInt32($s12->mulInt(666643, 20));
    3297         $s1  =  $s1->addInt32($s12->mulInt(470296, 19));
    3298         $s2  =  $s2->addInt32($s12->mulInt(654183, 20));
    3299         $s3  =  $s3->subInt32($s12->mulInt(997805, 20));
    3300         $s4  =  $s4->addInt32($s12->mulInt(136657, 18));
    3301         $s5  =  $s5->subInt32($s12->mulInt(683901, 20));
    3302         $s12 = new ParagonIE_Sodium_Core32_Int32();
    3303 
    3304         $carry0 = $s0->addInt(1 << 20)->shiftRight(21);
    3305         $s1 = $s1->addInt32($carry0);
    3306         $s0 = $s0->subInt32($carry0->shiftLeft(21));
    3307         $carry2 = $s2->addInt(1 << 20)->shiftRight(21);
    3308         $s3 = $s3->addInt32($carry2);
    3309         $s2 = $s2->subInt32($carry2->shiftLeft(21));
    3310         $carry4 = $s4->addInt(1 << 20)->shiftRight(21);
    3311         $s5 = $s5->addInt32($carry4);
    3312         $s4 = $s4->subInt32($carry4->shiftLeft(21));
    3313         $carry6 = $s6->addInt(1 << 20)->shiftRight(21);
    3314         $s7 = $s7->addInt32($carry6);
    3315         $s6 = $s6->subInt32($carry6->shiftLeft(21));
    3316         $carry8 = $s8->addInt(1 << 20)->shiftRight(21);
    3317         $s9 = $s9->addInt32($carry8);
    3318         $s8 = $s8->subInt32($carry8->shiftLeft(21));
    3319         $carry10 = $s10->addInt(1 << 20)->shiftRight(21);
    3320         $s11 = $s11->addInt32($carry10);
    3321         $s10 = $s10->subInt32($carry10->shiftLeft(21));
    3322         $carry1 = $s1->addInt(1 << 20)->shiftRight(21);
    3323         $s2 = $s2->addInt32($carry1);
    3324         $s1 = $s1->subInt32($carry1->shiftLeft(21));
    3325         $carry3 = $s3->addInt(1 << 20)->shiftRight(21);
    3326         $s4 = $s4->addInt32($carry3);
    3327         $s3 = $s3->subInt32($carry3->shiftLeft(21));
    3328         $carry5 = $s5->addInt(1 << 20)->shiftRight(21);
    3329         $s6 = $s6->addInt32($carry5);
    3330         $s5 = $s5->subInt32($carry5->shiftLeft(21));
    3331         $carry7 = $s7->addInt(1 << 20)->shiftRight(21);
    3332         $s8 = $s8->addInt32($carry7);
    3333         $s7 = $s7->subInt32($carry7->shiftLeft(21));
    3334         $carry9 = $s9->addInt(1 << 20)->shiftRight(21);
    3335         $s10 = $s10->addInt32($carry9);
    3336         $s9 = $s9->subInt32($carry9->shiftLeft(21));
    3337         $carry11 = $s11->addInt(1 << 20)->shiftRight(21);
    3338         $s12 = $s12->addInt32($carry11);
    3339         $s11 = $s11->subInt32($carry11->shiftLeft(21));
    3340 
    3341         $s0  =  $s0->addInt32($s12->mulInt(666643, 20));
    3342         $s1  =  $s1->addInt32($s12->mulInt(470296, 19));
    3343         $s2  =  $s2->addInt32($s12->mulInt(654183, 20));
    3344         $s3  =  $s3->subInt32($s12->mulInt(997805, 20));
    3345         $s4  =  $s4->addInt32($s12->mulInt(136657, 18));
    3346         $s5  =  $s5->subInt32($s12->mulInt(683901, 20));
    3347         $s12 = new ParagonIE_Sodium_Core32_Int32();
    3348 
    3349         $carry0 = $s0->shiftRight(21);
    3350         $s1 = $s1->addInt32($carry0);
    3351         $s0 = $s0->subInt32($carry0->shiftLeft(21));
    3352         $carry1 = $s1->shiftRight(21);
    3353         $s2 = $s2->addInt32($carry1);
    3354         $s1 = $s1->subInt32($carry1->shiftLeft(21));
    3355         $carry2 = $s2->shiftRight(21);
    3356         $s3 = $s3->addInt32($carry2);
    3357         $s2 = $s2->subInt32($carry2->shiftLeft(21));
    3358         $carry3 = $s3->shiftRight(21);
    3359         $s4 = $s4->addInt32($carry3);
    3360         $s3 = $s3->subInt32($carry3->shiftLeft(21));
    3361         $carry4 = $s4->shiftRight(21);
    3362         $s5 = $s5->addInt32($carry4);
    3363         $s4 = $s4->subInt32($carry4->shiftLeft(21));
    3364         $carry5 = $s5->shiftRight(21);
    3365         $s6 = $s6->addInt32($carry5);
    3366         $s5 = $s5->subInt32($carry5->shiftLeft(21));
    3367         $carry6 = $s6->shiftRight(21);
    3368         $s7 = $s7->addInt32($carry6);
    3369         $s6 = $s6->subInt32($carry6->shiftLeft(21));
    3370         $carry7 = $s7->shiftRight(21);
    3371         $s8 = $s8->addInt32($carry7);
    3372         $s7 = $s7->subInt32($carry7->shiftLeft(21));
    3373         $carry8 = $s8->shiftRight(21);
    3374         $s9 = $s9->addInt32($carry8);
    3375         $s8 = $s8->subInt32($carry8->shiftLeft(21));
    3376         $carry9 = $s9->shiftRight(21);
    3377         $s10 = $s10->addInt32($carry9);
    3378         $s9 = $s9->subInt32($carry9->shiftLeft(21));
    3379         $carry10 = $s10->shiftRight(21);
    3380         $s11 = $s11->addInt32($carry10);
    3381         $s10 = $s10->subInt32($carry10->shiftLeft(21));
    3382         $carry11 = $s11->shiftRight(21);
    3383         $s12 = $s12->addInt32($carry11);
    3384         $s11 = $s11->subInt32($carry11->shiftLeft(21));
    3385 
    3386         $s0  =  $s0->addInt32($s12->mulInt(666643, 20));
    3387         $s1  =  $s1->addInt32($s12->mulInt(470296, 19));
    3388         $s2  =  $s2->addInt32($s12->mulInt(654183, 20));
    3389         $s3  =  $s3->subInt32($s12->mulInt(997805, 20));
    3390         $s4  =  $s4->addInt32($s12->mulInt(136657, 18));
    3391         $s5  =  $s5->subInt32($s12->mulInt(683901, 20));
    3392 
    3393         $carry0 = $s0->shiftRight(21);
    3394         $s1 = $s1->addInt32($carry0);
    3395         $s0 = $s0->subInt32($carry0->shiftLeft(21));
    3396         $carry1 = $s1->shiftRight(21);
    3397         $s2 = $s2->addInt32($carry1);
    3398         $s1 = $s1->subInt32($carry1->shiftLeft(21));
    3399         $carry2 = $s2->shiftRight(21);
    3400         $s3 = $s3->addInt32($carry2);
    3401         $s2 = $s2->subInt32($carry2->shiftLeft(21));
    3402         $carry3 = $s3->shiftRight(21);
    3403         $s4 = $s4->addInt32($carry3);
    3404         $s3 = $s3->subInt32($carry3->shiftLeft(21));
    3405         $carry4 = $s4->shiftRight(21);
    3406         $s5 = $s5->addInt32($carry4);
    3407         $s4 = $s4->subInt32($carry4->shiftLeft(21));
    3408         $carry5 = $s5->shiftRight(21);
    3409         $s6 = $s6->addInt32($carry5);
    3410         $s5 = $s5->subInt32($carry5->shiftLeft(21));
    3411         $carry6 = $s6->shiftRight(21);
    3412         $s7 = $s7->addInt32($carry6);
    3413         $s6 = $s6->subInt32($carry6->shiftLeft(21));
    3414         $carry7 = $s7->shiftRight(21);
    3415         $s8 = $s8->addInt32($carry7);
    3416         $s7 = $s7->subInt32($carry7->shiftLeft(21));
    3417         $carry8 = $s8->shiftRight(21);
    3418         $s9 = $s9->addInt32($carry8);
    3419         $s8 = $s8->subInt32($carry8->shiftLeft(21));
    3420         $carry9 = $s9->shiftRight(21);
    3421         $s10 = $s10->addInt32($carry9);
    3422         $s9 = $s9->subInt32($carry9->shiftLeft(21));
    3423         $carry10 = $s10->shiftRight(21);
    3424         $s11 = $s11->addInt32($carry10);
    3425         $s10 = $s10->subInt32($carry10->shiftLeft(21));
    3426 
    3427         $S0 = $s0->toInt();
    3428         $S1 = $s1->toInt();
    3429         $S2 = $s2->toInt();
    3430         $S3 = $s3->toInt();
    3431         $S4 = $s4->toInt();
    3432         $S5 = $s5->toInt();
    3433         $S6 = $s6->toInt();
    3434         $S7 = $s7->toInt();
    3435         $S8 = $s8->toInt();
    3436         $S9 = $s9->toInt();
    3437         $S10 = $s10->toInt();
    3438         $S11 = $s11->toInt();
    3439 
    3440         /**
    3441          * @var array<int, int>
    3442          */
    3443         $arr = array(
    3444             (int) ($S0 >> 0),
    3445             (int) ($S0 >> 8),
    3446             (int) (($S0 >> 16) | ($S1 << 5)),
    3447             (int) ($S1 >> 3),
    3448             (int) ($S1 >> 11),
    3449             (int) (($S1 >> 19) | ($S2 << 2)),
    3450             (int) ($S2 >> 6),
    3451             (int) (($S2 >> 14) | ($S3 << 7)),
    3452             (int) ($S3 >> 1),
    3453             (int) ($S3 >> 9),
    3454             (int) (($S3 >> 17) | ($S4 << 4)),
    3455             (int) ($S4 >> 4),
    3456             (int) ($S4 >> 12),
    3457             (int) (($S4 >> 20) | ($S5 << 1)),
    3458             (int) ($S5 >> 7),
    3459             (int) (($S5 >> 15) | ($S6 << 6)),
    3460             (int) ($S6 >> 2),
    3461             (int) ($S6 >> 10),
    3462             (int) (($S6 >> 18) | ($S7 << 3)),
    3463             (int) ($S7 >> 5),
    3464             (int) ($S7 >> 13),
    3465             (int) ($S8 >> 0),
    3466             (int) ($S8 >> 8),
    3467             (int) (($S8 >> 16) | ($S9 << 5)),
    3468             (int) ($S9 >> 3),
    3469             (int) ($S9 >> 11),
    3470             (int) (($S9 >> 19) | ($S10 << 2)),
    3471             (int) ($S10 >> 6),
    3472             (int) (($S10 >> 14) | ($S11 << 7)),
    3473             (int) ($S11 >> 1),
    3474             (int) ($S11 >> 9),
    3475             (int) $S11 >> 17
    3476         );
    3477         return self::intArrayToString($arr);
    3478     }
    3479 
    3480     /**
    34813134     * multiply by the order of the main subgroup l = 2^252+27742317777372353535851937790883648493
    34823135     *
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core32/Curve25519/Fe.php

    r1853488 r1946575  
    2323
    2424    /**
    25      * ParagonIE_Sodium_Core32_Curve25519_Fe constructor.
    26      * @param int $size
    27      */
    28     public function __construct($size = 10)
    29     {
    30         $this->size = 10;
    31     }
    32 
    33     /**
    3425     * @internal You should not use this directly from another application
    3526     *
     
    5041        $array = array_values($array);
    5142
    52         $obj = new ParagonIE_Sodium_Core32_Curve25519_Fe($count);
     43        $obj = new ParagonIE_Sodium_Core32_Curve25519_Fe();
    5344        if ($save_indexes) {
    5445            for ($i = 0; $i < $count; ++$i) {
     
    9081        }
    9182
    92         $obj = new ParagonIE_Sodium_Core32_Curve25519_Fe($count);
     83        $obj = new ParagonIE_Sodium_Core32_Curve25519_Fe();
    9384        if ($save_indexes) {
    9485            for ($i = 0; $i < $count; ++$i) {
     
    190181            (int) ($this->container[9]->toInt())
    191182        );
    192        
    193         /*
    194         $c = array(
    195             ParagonIE_Sodium_Core_Util::bin2hex($this->container[0]->toReverseString()),
    196             ParagonIE_Sodium_Core_Util::bin2hex($this->container[1]->toReverseString()),
    197             ParagonIE_Sodium_Core_Util::bin2hex($this->container[2]->toReverseString()),
    198             ParagonIE_Sodium_Core_Util::bin2hex($this->container[3]->toReverseString()),
    199             ParagonIE_Sodium_Core_Util::bin2hex($this->container[4]->toReverseString()),
    200             ParagonIE_Sodium_Core_Util::bin2hex($this->container[5]->toReverseString()),
    201             ParagonIE_Sodium_Core_Util::bin2hex($this->container[6]->toReverseString()),
    202             ParagonIE_Sodium_Core_Util::bin2hex($this->container[7]->toReverseString()),
    203             ParagonIE_Sodium_Core_Util::bin2hex($this->container[8]->toReverseString()),
    204             ParagonIE_Sodium_Core_Util::bin2hex($this->container[9]->toReverseString())
    205         );
    206         $c = array(
    207             json_encode($this->container[0]->limbs),
    208             json_encode($this->container[1]->limbs),
    209             json_encode($this->container[2]->limbs),
    210             json_encode($this->container[3]->limbs),
    211             json_encode($this->container[4]->limbs),
    212             json_encode($this->container[5]->limbs),
    213             json_encode($this->container[6]->limbs),
    214             json_encode($this->container[7]->limbs),
    215             json_encode($this->container[8]->limbs),
    216             json_encode($this->container[9]->limbs)
    217         );
    218         */
    219183        return array(implode(', ', $c));
    220184    }
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core32/Ed25519.php

    r1853488 r1946575  
    1717     *
    1818     * @return string (96 bytes)
     19     * @throws Exception
    1920     * @throws SodiumException
    2021     * @throws TypeError
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core32/Int32.php

    r1853488 r1946575  
    1616     * 1 is the lower 16 bits
    1717     */
    18     public $limbs;
     18    public $limbs = array(0, 0);
    1919
    2020    /**
     
    5151    public function addInt32(ParagonIE_Sodium_Core32_Int32 $addend)
    5252    {
    53         $return = new ParagonIE_Sodium_Core32_Int32();
    54         $return->unsignedInt = $this->unsignedInt;
    55 
    56         /** @var int $tmp */
    57         $tmp = $this->limbs[1] + $addend->limbs[1];
    58         /** @var int $carry */
    59         $carry = $tmp >> 16;
    60         $return->limbs[1] = (int) ($tmp & 0xffff);
    61 
    62         /** @var int $tmp */
    63         $tmp = $this->limbs[0] + $addend->limbs[0] + $carry;
    64         $return->limbs[0] = (int) ($tmp & 0xffff);
    65         /** @var int overflow */
    66         $return->overflow = $this->overflow + $addend->overflow + ($tmp >> 16);
    67 
     53        $i0 = $this->limbs[0];
     54        $i1 = $this->limbs[1];
     55        $j0 = $addend->limbs[0];
     56        $j1 = $addend->limbs[1];
     57
     58        $r1 = $i1 + ($j1 & 0xffff);
     59        $carry = $r1 >> 16;
     60
     61        $r0 = $i0 + ($j0 & 0xffff) + $carry;
     62        $carry = $r0 >> 16;
     63
     64        $r0 &= 0xffff;
     65        $r1 &= 0xffff;
     66
     67        $return = new ParagonIE_Sodium_Core32_Int32(
     68            array($r0, $r1)
     69        );
     70        $return->overflow = $carry;
     71        $return->unsignedInt = $this->unsignedInt;
    6872        return $return;
    6973    }
     
    8084    {
    8185        ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1);
    82 
    83         $return = new ParagonIE_Sodium_Core32_Int32();
    84         $return->unsignedInt = $this->unsignedInt;
    85 
    86         /** @var int $tmp */
    87         $tmp = ($this->limbs[1] & 0xffff) + ($int & 0xffff);
    88         /** @var int $carry */
    89         $carry = $tmp >> 16;
    90         $return->limbs[1] = (int) ($tmp & 0xffff);
    91 
    92         /** @var int $tmp */
    93         $tmp = $this->limbs[0] + (($int >> 16) & 0xffff) + $carry;
    94         $return->limbs[0] = (int) ($tmp & 0xffff);
    95         /** @var int overflow */
    96         $return->overflow = $this->overflow + ($tmp >> 16);
     86        /** @var int $int */
     87        $int = (int) $int;
     88
     89        $int = (int) $int;
     90
     91        $i0 = $this->limbs[0];
     92        $i1 = $this->limbs[1];
     93
     94        $r1 = $i1 + ($int & 0xffff);
     95        $carry = $r1 >> 16;
     96
     97        $r0 = $i0 + (($int >> 16) & 0xffff) + $carry;
     98        $carry = $r0 >> 16;
     99        $r0 &= 0xffff;
     100        $r1 &= 0xffff;
     101        $return = new ParagonIE_Sodium_Core32_Int32(
     102            array($r0, $r1)
     103        );
     104        $return->overflow = $carry;
     105        $return->unsignedInt = $this->unsignedInt;
    97106        return $return;
    98107    }
     
    153162        ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1);
    154163        ParagonIE_Sodium_Core32_Util::declareScalarType($size, 'int', 2);
     164        /** @var int $int */
     165        $int = (int) $int;
     166        /** @var int $size */
     167        $size = (int) $size;
     168
    155169        if (!$size) {
    156170            $size = 31;
     
    162176        $return->unsignedInt = $this->unsignedInt;
    163177
     178        // Initialize:
     179        $ret0 = 0;
     180        $ret1 = 0;
     181        $a0 = $a->limbs[0];
     182        $a1 = $a->limbs[1];
     183
     184        /** @var int $size */
     185        /** @var int $i */
    164186        for ($i = $size; $i >= 0; --$i) {
    165187            $m = (int) (-($int & 1));
    166             $return = $return->addInt32($a->mask($m));
    167             $a = $a->shiftLeft(1);
     188            $x0 = $a0 & $m;
     189            $x1 = $a1 & $m;
     190
     191            $ret1 += $x1;
     192            $c = $ret1 >> 16;
     193
     194            $ret0 += $x0 + $c;
     195
     196            $ret0 &= 0xffff;
     197            $ret1 &= 0xffff;
     198
     199            $a1 = ($a1 << 1);
     200            $x1 = $a1 >> 16;
     201            $a0 = ($a0 << 1) | $x1;
     202            $a0 &= 0xffff;
     203            $a1 &= 0xffff;
    168204            $int >>= 1;
    169205        }
     206        $return->limbs[0] = $ret0;
     207        $return->limbs[1] = $ret1;
    170208        return $return;
    171209    }
     
    191229        $return->unsignedInt = $this->unsignedInt;
    192230
     231        // Initialize:
     232        $ret0 = 0;
     233        $ret1 = 0;
     234        $a0 = $a->limbs[0];
     235        $a1 = $a->limbs[1];
     236        $b0 = $b->limbs[0];
     237        $b1 = $b->limbs[1];
     238
     239        /** @var int $size */
    193240        /** @var int $i */
    194241        for ($i = $size; $i >= 0; --$i) {
    195             $m = (int) (-($b->limbs[1] & 1));
    196             $return = $return->addInt32($a->mask($m));
    197             $a = $a->shiftLeft(1);
    198             $b = $b->shiftRight(1);
    199         }
     242            $m = (int) (-($b1 & 1));
     243            $x0 = $a0 & $m;
     244            $x1 = $a1 & $m;
     245
     246            $ret1 += $x1;
     247            $c = $ret1 >> 16;
     248
     249            $ret0 += $x0 + $c;
     250
     251            $ret0 &= 0xffff;
     252            $ret1 &= 0xffff;
     253
     254            $a1 = ($a1 << 1);
     255            $x1 = $a1 >> 16;
     256            $a0 = ($a0 << 1) | $x1;
     257            $a0 &= 0xffff;
     258            $a1 &= 0xffff;
     259
     260            $x0 = ($b0 & 1) << 16;
     261            $b0 = ($b0 >> 1);
     262            $b1 = (($b1 | $x0) >> 1);
     263
     264            $b0 &= 0xffff;
     265            $b1 &= 0xffff;
     266
     267        }
     268        $return->limbs[0] = $ret0;
     269        $return->limbs[1] = $ret1;
     270
    200271        return $return;
    201272    }
     
    248319    {
    249320        ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1);
     321        /** @var int $c */
     322        $c = (int) $c;
    250323
    251324        $return = new ParagonIE_Sodium_Core32_Int32();
     
    277350                $limbs[$i] = (int) (
    278351                    (
    279                         ($myLimbs[$j] << $sub_shift)
     352                        ((int) ($myLimbs[$j]) << $sub_shift)
    280353                            |
    281                         ($myLimbs[$k] >> (16 - $sub_shift))
     354                        ((int) ($myLimbs[$k]) >> (16 - $sub_shift))
    282355                    ) & 0xffff
    283356                );
     
    299372    {
    300373        ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1);
     374        /** @var int $c */
     375        $c = (int) $c;
    301376
    302377        $return = new ParagonIE_Sodium_Core32_Int32();
     
    329404                $limbs[$i] = (int) (
    330405                    (
    331                         ($myLimbs[$j] >> (int) ($sub_shift))
     406                        ((int) ($myLimbs[$j]) >> (int) ($sub_shift))
    332407                            |
    333                         ($myLimbs[$k] << (16 - (int) ($sub_shift)))
     408                        ((int) ($myLimbs[$k]) << (16 - (int) ($sub_shift)))
    334409                    ) & 0xffff
    335410                );
     
    358433    {
    359434        ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1);
     435        /** @var int $c */
     436        $c = (int) $c;
     437
    360438        $return = new ParagonIE_Sodium_Core32_Int32();
    361439        $return->unsignedInt = $this->unsignedInt;
     
    393471    {
    394472        ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1);
     473        /** @var int $c */
     474        $c = (int) $c;
     475
    395476        $return = new ParagonIE_Sodium_Core32_Int32();
    396477        $return->unsignedInt = $this->unsignedInt;
     
    436517    {
    437518        ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1);
     519        /** @var int $int */
     520        $int = (int) $int;
    438521
    439522        $return = new ParagonIE_Sodium_Core32_Int32();
     
    501584    {
    502585        ParagonIE_Sodium_Core32_Util::declareScalarType($signed, 'int', 1);;
     586        /** @var int $signed */
     587        $signed = (int) $signed;
    503588
    504589        return new ParagonIE_Sodium_Core32_Int32(
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core32/Int64.php

    r1853488 r1946575  
    1313     * @var array<int, int> - four 16-bit integers
    1414     */
    15     public $limbs;
     15    public $limbs = array(0, 0, 0, 0);
    1616
    1717    /**
     
    5050    public function addInt64(ParagonIE_Sodium_Core32_Int64 $addend)
    5151    {
    52         $return = new ParagonIE_Sodium_Core32_Int64();
    53         $return->unsignedInt = $this->unsignedInt;
    54         /** @var int $carry */
    55         $carry = 0;
    56         for ($i = 3; $i >= 0; --$i) {
    57             /** @var int $tmp */
    58             $tmp = $this->limbs[$i] + $addend->limbs[$i] + $carry;
    59             /** @var int $carry */
    60             $carry = $tmp >> 16;
    61             $return->limbs[$i] = (int) ($tmp & 0xffff);
    62         }
     52        $i0 = $this->limbs[0];
     53        $i1 = $this->limbs[1];
     54        $i2 = $this->limbs[2];
     55        $i3 = $this->limbs[3];
     56        $j0 = $addend->limbs[0];
     57        $j1 = $addend->limbs[1];
     58        $j2 = $addend->limbs[2];
     59        $j3 = $addend->limbs[3];
     60
     61        $r3 = $i3 + ($j3 & 0xffff);
     62        $carry = $r3 >> 16;
     63
     64        $r2 = $i2 + ($j2 & 0xffff) + $carry;
     65        $carry = $r2 >> 16;
     66
     67        $r1 = $i1 + ($j1 & 0xffff) + $carry;
     68        $carry = $r1 >> 16;
     69
     70        $r0 = $i0 + ($j0 & 0xffff) + $carry;
     71        $carry = $r0 >> 16;
     72
     73        $r0 &= 0xffff;
     74        $r1 &= 0xffff;
     75        $r2 &= 0xffff;
     76        $r3 &= 0xffff;
     77
     78        $return = new ParagonIE_Sodium_Core32_Int64(
     79            array($r0, $r1, $r2, $r3)
     80        );
    6381        $return->overflow = $carry;
     82        $return->unsignedInt = $this->unsignedInt;
    6483        return $return;
    6584    }
     
    7089     * @param int $int
    7190     * @return ParagonIE_Sodium_Core32_Int64
     91     * @throws SodiumException
    7292     * @throws TypeError
    7393     */
     
    7595    {
    7696        ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1);
    77 
    78         $return = new ParagonIE_Sodium_Core32_Int64();
    79         $return->unsignedInt = $this->unsignedInt;
    80         /** @var int $carry */
    81         $carry = 0;
    82         for ($i = 3; $i >= 0; --$i) {
    83             /** @var int $step */
    84             $step = (3 - $i) << 4; // 0, 16, 32, 48
    85             if ($i < 2) {
    86                 /** @var int $toAdd */
    87                 $toAdd = 0;
    88             } else {
    89                 /** @var int $toAdd */
    90                 $toAdd = (($int >> $step) & 0xffff);
    91             }
    92             /** @var int $tmp */
    93             $tmp = $this->limbs[$i] + $toAdd + $carry;
    94 
    95             /** @var int $carry */
    96             $carry = $tmp >> 16;
    97             $return->limbs[$i] = (int) ($tmp & 0xffff);
    98         }
    99         /** @var int overflow */
     97        /** @var int $int */
     98        $int = (int) $int;
     99
     100        $i0 = $this->limbs[0];
     101        $i1 = $this->limbs[1];
     102        $i2 = $this->limbs[2];
     103        $i3 = $this->limbs[3];
     104
     105        $r3 = $i3 + ($int & 0xffff);
     106        $carry = $r3 >> 16;
     107
     108        $r2 = $i2 + (($int >> 16) & 0xffff) + $carry;
     109        $carry = $r2 >> 16;
     110
     111        $r1 = $i1 + $carry;
     112        $carry = $r1 >> 16;
     113
     114        $r0 = $i0 + $carry;
     115        $carry = $r0 >> 16;
     116
     117        $r0 &= 0xffff;
     118        $r1 &= 0xffff;
     119        $r2 &= 0xffff;
     120        $r3 &= 0xffff;
     121        $return = new ParagonIE_Sodium_Core32_Int64(
     122            array($r0, $r1, $r2, $r3)
     123        );
    100124        $return->overflow = $carry;
     125        $return->unsignedInt = $this->unsignedInt;
    101126        return $return;
    102127    }
     
    183208        ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1);
    184209        ParagonIE_Sodium_Core32_Util::declareScalarType($size, 'int', 2);
     210        /** @var int $int */
     211        $int = (int) $int;
     212        /** @var int $size */
     213        $size = (int) $size;
     214
    185215        if (!$size) {
    186216            $size = 63;
     
    191221        $return->unsignedInt = $this->unsignedInt;
    192222
     223        // Initialize:
     224        $ret0 = 0;
     225        $ret1 = 0;
     226        $ret2 = 0;
     227        $ret3 = 0;
     228        $a0 = $a->limbs[0];
     229        $a1 = $a->limbs[1];
     230        $a2 = $a->limbs[2];
     231        $a3 = $a->limbs[3];
     232
     233        /** @var int $size */
     234        /** @var int $i */
    193235        for ($i = $size; $i >= 0; --$i) {
    194             $return = $return->addInt64(
    195                 $a->mask64(
    196                     (int) (-($int & 1)),
    197                     (int) (-($int & 1))
    198                 )
    199             );
    200             $a = $a->shiftLeft(1);
     236            $mask = -($int & 1);
     237            $x0 = $a0 & $mask;
     238            $x1 = $a1 & $mask;
     239            $x2 = $a2 & $mask;
     240            $x3 = $a3 & $mask;
     241
     242            $ret3 += $x3;
     243            $c = $ret3 >> 16;
     244
     245            $ret2 += $x2 + $c;
     246            $c = $ret2 >> 16;
     247
     248            $ret1 += $x1 + $c;
     249            $c = $ret1 >> 16;
     250
     251            $ret0 += $x0 + $c;
     252
     253            $ret0 &= 0xffff;
     254            $ret1 &= 0xffff;
     255            $ret2 &= 0xffff;
     256            $ret3 &= 0xffff;
     257
     258            $a3 = $a3 << 1;
     259            $x3 = $a3 >> 16;
     260            $a2 = ($a2 << 1) | $x3;
     261            $x2 = $a2 >> 16;
     262            $a1 = ($a1 << 1) | $x2;
     263            $x1 = $a1 >> 16;
     264            $a0 = ($a0 << 1) | $x1;
     265            $a0 &= 0xffff;
     266            $a1 &= 0xffff;
     267            $a2 &= 0xffff;
     268            $a3 &= 0xffff;
     269
    201270            $int >>= 1;
     271            $return->limbs[0] = $ret0;
     272            $return->limbs[1] = $ret1;
     273            $return->limbs[2] = $ret2;
     274            $return->limbs[3] = $ret3;
    202275        }
    203276        return $return;
     
    264337        $return->unsignedInt = $this->unsignedInt;
    265338
    266         /** @var int $size $i */
     339        // Initialize:
     340        $ret0 = 0;
     341        $ret1 = 0;
     342        $ret2 = 0;
     343        $ret3 = 0;
     344        $a0 = $a->limbs[0];
     345        $a1 = $a->limbs[1];
     346        $a2 = $a->limbs[2];
     347        $a3 = $a->limbs[3];
     348        $b0 = $b->limbs[0];
     349        $b1 = $b->limbs[1];
     350        $b2 = $b->limbs[2];
     351        $b3 = $b->limbs[3];
     352
     353        /** @var int $size */
    267354        /** @var int $i */
    268         for ($i = $size; $i >= 0; --$i) {
    269             $return = $return->addInt64(
    270                 $a->mask64(
    271                     (int) (-($b->limbs[3] & 1)),
    272                     (int) (-($b->limbs[3] & 1))
    273                 )
    274             );
    275             $a = $a->shiftLeft(1);
    276             $b = $b->shiftRight(1);
    277         }
     355        for ($i = (int) $size; $i >= 0; --$i) {
     356            $mask = -($b3 & 1);
     357            $x0 = $a0 & $mask;
     358            $x1 = $a1 & $mask;
     359            $x2 = $a2 & $mask;
     360            $x3 = $a3 & $mask;
     361
     362            $ret3 += $x3;
     363            $c = $ret3 >> 16;
     364
     365            $ret2 += $x2 + $c;
     366            $c = $ret2 >> 16;
     367
     368            $ret1 += $x1 + $c;
     369            $c = $ret1 >> 16;
     370
     371            $ret0 += $x0 + $c;
     372
     373            $ret0 &= 0xffff;
     374            $ret1 &= 0xffff;
     375            $ret2 &= 0xffff;
     376            $ret3 &= 0xffff;
     377
     378            $a3 = $a3 << 1;
     379            $x3 = $a3 >> 16;
     380            $a2 = ($a2 << 1) | $x3;
     381            $x2 = $a2 >> 16;
     382            $a1 = ($a1 << 1) | $x2;
     383            $x1 = $a1 >> 16;
     384            $a0 = ($a0 << 1) | $x1;
     385            $a0 &= 0xffff;
     386            $a1 &= 0xffff;
     387            $a2 &= 0xffff;
     388            $a3 &= 0xffff;
     389
     390            $x0 = ($b0 & 1) << 16;
     391            $x1 = ($b1 & 1) << 16;
     392            $x2 = ($b2 & 1) << 16;
     393
     394            $b0 = ($b0 >> 1);
     395            $b1 = (($b1 | $x0) >> 1);
     396            $b2 = (($b2 | $x1) >> 1);
     397            $b3 = (($b3 | $x2) >> 1);
     398
     399            $b0 &= 0xffff;
     400            $b1 &= 0xffff;
     401            $b2 &= 0xffff;
     402            $b3 &= 0xffff;
     403
     404        }
     405        $return->limbs[0] = $ret0;
     406        $return->limbs[1] = $ret1;
     407        $return->limbs[2] = $ret2;
     408        $return->limbs[3] = $ret3;
     409
    278410        return $return;
    279411    }
     
    301433     * @param int $c
    302434     * @return ParagonIE_Sodium_Core32_Int64
     435     * @throws SodiumException
    303436     * @throws TypeError
    304437     * @psalm-suppress MixedArrayAccess
     
    307440    {
    308441        ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1);
     442        /** @var int $c */
     443        $c = (int) $c;
    309444
    310445        $return = new ParagonIE_Sodium_Core32_Int64();
     
    333468                $limbs[$i] = (int) (
    334469                    (
    335                         ($myLimbs[$j] << $sub_shift)
     470                        ((int) ($myLimbs[$j]) << $sub_shift)
    336471                            |
    337                         ($myLimbs[$k] >> (16 - $sub_shift))
     472                        ((int) ($myLimbs[$k]) >> (16 - $sub_shift))
    338473                    ) & 0xffff
    339474                );
     
    348483     * @param int $c
    349484     * @return ParagonIE_Sodium_Core32_Int64
     485     * @throws SodiumException
    350486     * @throws TypeError
    351487     * @psalm-suppress MixedArrayAccess
     
    354490    {
    355491        ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1);
     492        /** @var int $c */
     493        $c = (int) $c;
    356494
    357495        /** @var ParagonIE_Sodium_Core32_Int64 $return */
     
    382520                $limbs[$i] = (int) (
    383521                    (
    384                         ($myLimbs[$j] >> (int) ($sub_shift))
     522                        ((int) ($myLimbs[$j]) >> (int) ($sub_shift))
    385523                            |
    386                         ($myLimbs[$k] << (16 - (int) ($sub_shift)))
     524                        ((int) ($myLimbs[$k]) << (16 - (int) ($sub_shift)))
    387525                    ) & 0xffff
    388526                );
     
    400538    {
    401539        ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1);
     540        /** @var int $c */
     541        $c = (int) $c;
     542
    402543        $return = new ParagonIE_Sodium_Core32_Int64();
    403544        $return->unsignedInt = $this->unsignedInt;
    404545        $c &= 63;
    405         /** @var int $c */
    406546
    407547        if ($c >= 16) {
     
    511651     * @param int $int
    512652     * @return ParagonIE_Sodium_Core32_Int64
     653     * @throws SodiumException
    513654     * @throws TypeError
    514655     */
     
    516657    {
    517658        ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1);
     659        $int = (int) $int;
    518660
    519661        $return = new ParagonIE_Sodium_Core32_Int64();
     
    577719     * @param int $high
    578720     * @return self
     721     * @throws SodiumException
    579722     * @throws TypeError
    580723     */
     
    584727        ParagonIE_Sodium_Core32_Util::declareScalarType($high, 'int', 2);
    585728
     729        $high = (int) $high;
     730        $low = (int) $low;
    586731        return new ParagonIE_Sodium_Core32_Int64(
    587732            array(
     
    595740
    596741    /**
     742     * @param int $low
     743     * @return self
     744     * @throws SodiumException
     745     * @throws TypeError
     746     */
     747    public static function fromInt($low)
     748    {
     749        ParagonIE_Sodium_Core32_Util::declareScalarType($low, 'int', 1);
     750        $low = (int) $low;
     751
     752        return new ParagonIE_Sodium_Core32_Int64(
     753            array(
     754                0,
     755                0,
     756                (int) (($low >> 16) & 0xffff),
     757                (int) ($low & 0xffff)
     758            )
     759        );
     760    }
     761
     762    /**
     763     * @return int
     764     */
     765    public function toInt()
     766    {
     767        return (int) (
     768            (($this->limbs[2] & 0xffff) << 16)
     769                |
     770            ($this->limbs[3] & 0xffff)
     771        );
     772    }
     773
     774    /**
    597775     * @param string $string
    598776     * @return self
     777     * @throws SodiumException
    599778     * @throws TypeError
    600779     */
     
    624803     * @param string $string
    625804     * @return self
     805     * @throws SodiumException
    626806     * @throws TypeError
    627807     */
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core32/Poly1305/State.php

    r1853488 r1946575  
    216216        $r4 = $this->r[4]->toInt64();
    217217
    218         $s1 = $r1->toInt64()->mulInt(5);
    219         $s2 = $r2->toInt64()->mulInt(5);
    220         $s3 = $r3->toInt64()->mulInt(5);
    221         $s4 = $r4->toInt64()->mulInt(5);
     218        $s1 = $r1->toInt64()->mulInt(5, 3);
     219        $s2 = $r2->toInt64()->mulInt(5, 3);
     220        $s3 = $r3->toInt64()->mulInt(5, 3);
     221        $s4 = $r4->toInt64()->mulInt(5, 3);
    222222
    223223        $h0 = $this->h[0];
     
    227227        $h4 = $this->h[4];
    228228
    229         while ($bytes >= ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE) {
     229        while ($bytes >= ParagonIE_Sodium_Core32_Poly1305::BLOCK_SIZE) {
    230230            /* h += m[i] */
    231231            $h0 = $h0->addInt32(
    232232                ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 0, 4))
    233233                    ->mask(0x3ffffff)
    234             );
     234            )->toInt64();
    235235            $h1 = $h1->addInt32(
    236236                ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 3, 4))
    237237                    ->shiftRight(2)
    238238                    ->mask(0x3ffffff)
    239             );
     239            )->toInt64();
    240240            $h2 = $h2->addInt32(
    241241                ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 6, 4))
    242242                    ->shiftRight(4)
    243243                    ->mask(0x3ffffff)
    244             );
     244            )->toInt64();
    245245            $h3 = $h3->addInt32(
    246246                ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 9, 4))
    247247                    ->shiftRight(6)
    248248                    ->mask(0x3ffffff)
    249             );
     249            )->toInt64();
    250250            $h4 = $h4->addInt32(
    251251                ParagonIE_Sodium_Core32_Int32::fromReverseString(self::substr($message, 12, 4))
    252252                    ->shiftRight(8)
    253253                    ->orInt32($hibit)
    254             );
     254            )->toInt64();
    255255
    256256            /* h *= r */
    257257            $d0 = $zero
    258                 ->addInt64($h0->toInt64()->mulInt64($r0))
    259                 ->addInt64($h1->toInt64()->mulInt64($s4))
    260                 ->addInt64($h2->toInt64()->mulInt64($s3))
    261                 ->addInt64($h3->toInt64()->mulInt64($s2))
    262                 ->addInt64($h4->toInt64()->mulInt64($s1));
     258                ->addInt64($h0->mulInt64($r0, 25))
     259                ->addInt64($s4->mulInt64($h1, 26))
     260                ->addInt64($s3->mulInt64($h2, 26))
     261                ->addInt64($s2->mulInt64($h3, 26))
     262                ->addInt64($s1->mulInt64($h4, 26));
    263263
    264264            $d1 = $zero
    265                 ->addInt64($h0->toInt64()->mulInt64($r1))
    266                 ->addInt64($h1->toInt64()->mulInt64($r0))
    267                 ->addInt64($h2->toInt64()->mulInt64($s4))
    268                 ->addInt64($h3->toInt64()->mulInt64($s3))
    269                 ->addInt64($h4->toInt64()->mulInt64($s2));
     265                ->addInt64($h0->mulInt64($r1, 25))
     266                ->addInt64($h1->mulInt64($r0, 25))
     267                ->addInt64($s4->mulInt64($h2, 26))
     268                ->addInt64($s3->mulInt64($h3, 26))
     269                ->addInt64($s2->mulInt64($h4, 26));
    270270
    271271            $d2 = $zero
    272                 ->addInt64($h0->toInt64()->mulInt64($r2))
    273                 ->addInt64($h1->toInt64()->mulInt64($r1))
    274                 ->addInt64($h2->toInt64()->mulInt64($r0))
    275                 ->addInt64($h3->toInt64()->mulInt64($s4))
    276                 ->addInt64($h4->toInt64()->mulInt64($s3));
     272                ->addInt64($h0->mulInt64($r2, 25))
     273                ->addInt64($h1->mulInt64($r1, 25))
     274                ->addInt64($h2->mulInt64($r0, 25))
     275                ->addInt64($s4->mulInt64($h3, 26))
     276                ->addInt64($s3->mulInt64($h4, 26));
    277277
    278278            $d3 = $zero
    279                 ->addInt64($h0->toInt64()->mulInt64($r3))
    280                 ->addInt64($h1->toInt64()->mulInt64($r2))
    281                 ->addInt64($h2->toInt64()->mulInt64($r1))
    282                 ->addInt64($h3->toInt64()->mulInt64($r0))
    283                 ->addInt64($h4->toInt64()->mulInt64($s4));
     279                ->addInt64($h0->mulInt64($r3, 25))
     280                ->addInt64($h1->mulInt64($r2, 25))
     281                ->addInt64($h2->mulInt64($r1, 25))
     282                ->addInt64($h3->mulInt64($r0, 25))
     283                ->addInt64($s4->mulInt64($h4, 26));
    284284
    285285            $d4 = $zero
    286                 ->addInt64($h0->toInt64()->mulInt64($r4))
    287                 ->addInt64($h1->toInt64()->mulInt64($r3))
    288                 ->addInt64($h2->toInt64()->mulInt64($r2))
    289                 ->addInt64($h3->toInt64()->mulInt64($r1))
    290                 ->addInt64($h4->toInt64()->mulInt64($r0));
     286                ->addInt64($h0->mulInt64($r4, 25))
     287                ->addInt64($h1->mulInt64($r3, 25))
     288                ->addInt64($h2->mulInt64($r2, 25))
     289                ->addInt64($h3->mulInt64($r1, 25))
     290                ->addInt64($h4->mulInt64($r0, 25));
    291291
    292292            /* (partial) h %= p */
     
    389389        $h4 = $h4->mask(0x3ffffff);         # $h4 &= 0x3ffffff;
    390390
    391         $h0 = $h0->addInt32($c->mulInt(5)); # $h0 += self::mul($c, 5);
     391        $h0 = $h0->addInt32($c->mulInt(5, 3)); # $h0 += self::mul($c, 5);
    392392        $c = $h0->shiftRight(26);           # $c = $h0 >> 26;
    393393        $h0 = $h0->mask(0x3ffffff);         # $h0 &= 0x3ffffff;
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core32/SipHash.php

    r1853488 r1946575  
    203203                break;
    204204        }
    205         // See docblock for why the 0th index gets the higher bits.
    206205
    207206        # v3 ^= b;
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Core32/X25519.php

    r1853488 r1946575  
    214214            # b &= 1;
    215215            $b &= 1;
     216
    216217            # swap ^= b;
    217218            $swap ^= $b;
     219
    218220            # fe_cswap(x2,x3,swap);
    219221            self::fe_cswap($x2, $x3, $swap);
     222
    220223            # fe_cswap(z2,z3,swap);
    221224            self::fe_cswap($z2, $z3, $swap);
     225
    222226            # swap = b;
    223227            /** @var int $swap */
    224228            $swap = $b;
     229
    225230            # fe_sub(tmp0,x3,z3);
    226231            $tmp0 = self::fe_sub($x3, $z3);
     232
    227233            # fe_sub(tmp1,x2,z2);
    228234            $tmp1 = self::fe_sub($x2, $z2);
     
    338344        if (
    339345            !($A->Y instanceof ParagonIE_Sodium_Core32_Curve25519_Fe)
    340             ||
     346                ||
    341347            !($A->Z instanceof ParagonIE_Sodium_Core32_Curve25519_Fe)
    342348        ) {
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Crypto.php

    r1853488 r1946575  
    554554     *
    555555     * @return string
     556     * @throws Exception
    556557     * @throws SodiumException
    557558     * @throws TypeError
     
    606607    {
    607608        if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== 64) {
    608             throw new RangeException('Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.');
     609            throw new RangeException(
     610                'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.'
     611            );
    609612        }
    610613        return ParagonIE_Sodium_Core_Util::substr($keypair, 0, 32);
     
    622625    {
    623626        if (ParagonIE_Sodium_Core_Util::strlen($keypair) !== ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES) {
    624             throw new RangeException('Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.');
     627            throw new RangeException(
     628                'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.'
     629            );
    625630        }
    626631        return ParagonIE_Sodium_Core_Util::substr($keypair, 32, 32);
     
    639644    {
    640645        if (ParagonIE_Sodium_Core_Util::strlen($sKey) !== ParagonIE_Sodium_Compat::CRYPTO_BOX_SECRETKEYBYTES) {
    641             throw new RangeException('Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_SECRETKEYBYTES bytes long.');
     646            throw new RangeException(
     647                'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_SECRETKEYBYTES bytes long.'
     648            );
    642649        }
    643650        return self::scalarmult_base($sKey);
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/Crypto32.php

    r1853488 r1946575  
    553553     *
    554554     * @return string
     555     * @throws Exception
    555556     * @throws SodiumException
    556557     * @throws TypeError
     
    605606    {
    606607        if (ParagonIE_Sodium_Core32_Util::strlen($keypair) !== 64) {
    607             throw new RangeException('Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.');
     608            throw new RangeException(
     609                'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.'
     610            );
    608611        }
    609612        return ParagonIE_Sodium_Core32_Util::substr($keypair, 0, 32);
     
    621624    {
    622625        if (ParagonIE_Sodium_Core32_Util::strlen($keypair) !== ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES) {
    623             throw new RangeException('Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.');
     626            throw new RangeException(
     627                'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_KEYPAIRBYTES bytes long.'
     628            );
    624629        }
    625630        return ParagonIE_Sodium_Core32_Util::substr($keypair, 32, 32);
     
    638643    {
    639644        if (ParagonIE_Sodium_Core32_Util::strlen($sKey) !== ParagonIE_Sodium_Compat::CRYPTO_BOX_SECRETKEYBYTES) {
    640             throw new RangeException('Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_SECRETKEYBYTES bytes long.');
     645            throw new RangeException(
     646                'Must be ParagonIE_Sodium_Compat::CRYPTO_BOX_SECRETKEYBYTES bytes long.'
     647            );
    641648        }
    642649        return self::scalarmult_base($sKey);
  • perfectdashboard/trunk/lib/src/vendor/paragonie/sodium_compat/src/File.php

    r1853488 r1946575  
    762762    protected static function box_encrypt($ifp, $ofp, $mlen, $nonce, $boxKeypair)
    763763    {
     764        if (PHP_INT_SIZE === 4) {
     765            return self::secretbox_encrypt(
     766                $ifp,
     767                $ofp,
     768                $mlen,
     769                $nonce,
     770                ParagonIE_Sodium_Crypto32::box_beforenm(
     771                    ParagonIE_Sodium_Crypto32::box_secretkey($boxKeypair),
     772                    ParagonIE_Sodium_Crypto32::box_publickey($boxKeypair)
     773                )
     774            );
     775        }
    764776        return self::secretbox_encrypt(
    765777            $ifp,
     
    787799    protected static function box_decrypt($ifp, $ofp, $mlen, $nonce, $boxKeypair)
    788800    {
     801        if (PHP_INT_SIZE === 4) {
     802            return self::secretbox_decrypt(
     803                $ifp,
     804                $ofp,
     805                $mlen,
     806                $nonce,
     807                ParagonIE_Sodium_Crypto32::box_beforenm(
     808                    ParagonIE_Sodium_Crypto32::box_secretkey($boxKeypair),
     809                    ParagonIE_Sodium_Crypto32::box_publickey($boxKeypair)
     810                )
     811            );
     812        }
    789813        return self::secretbox_decrypt(
    790814            $ifp,
     
    10161040     * @throws TypeError
    10171041     */
    1018     protected static function onetimeauth_verify(ParagonIE_Sodium_Core_Poly1305_State $state, $ifp, $tag = '', $mlen = 0)
    1019     {
     1042    protected static function onetimeauth_verify(
     1043        ParagonIE_Sodium_Core_Poly1305_State $state,
     1044        $ifp,
     1045        $tag = '',
     1046        $mlen = 0
     1047    ) {
    10201048        /** @var int $pos */
    10211049        $pos = ftell($ifp);
     
    10581086     *                 PHP 7.2 changes from a resource to an object,
    10591087     *                 which causes Psalm to complain about an error.
     1088     * @psalm-suppress TypeCoercion
     1089     *                 Ditto.
    10601090     */
    10611091    public static function updateHashWithFile($hash, $fp, $size = 0)
     
    14851515     * @throws TypeError
    14861516     */
    1487     protected static function onetimeauth_verify_core32(ParagonIE_Sodium_Core32_Poly1305_State $state, $ifp, $tag = '', $mlen = 0)
    1488     {
     1517    protected static function onetimeauth_verify_core32(
     1518        ParagonIE_Sodium_Core32_Poly1305_State $state,
     1519        $ifp,
     1520        $tag = '',
     1521        $mlen = 0
     1522    ) {
    14891523        /** @var int $pos */
    14901524        $pos = ftell($ifp);
  • perfectdashboard/trunk/perfectdashboard.php

    r1932005 r1946575  
    44 * Plugin URI: https://perfectdashboard.com/?utm_source=backend&utm_medium=installer&utm_campaign=in&utm_term=WP
    55 * Description:
    6  * Version: 1.19.0
     6 * Version: 1.20.0
    77 * Text Domain: autoupdater
    88 * Author: Perfect Dashboard
  • perfectdashboard/trunk/readme.txt

    r1932005 r1946575  
    55Requires at least: 3.0
    66Tested up to: 4.9.8
    7 Stable tag: 1.19.0
     7Stable tag: 1.20.0
    88License: GNU/GPL
    99License URI: http://www.gnu.org/licenses/gpl-3.0.html
Note: See TracChangeset for help on using the changeset viewer.