HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/braintree/braintree_php/lib/Braintree/Digest.php
<?php
namespace Braintree;

/**
 * Digest encryption module
 * Digest creates an HMAC-SHA1 hash for encrypting messages
 */
class Digest
{
    public static function hexDigestSha1($key, $string)
    {
        if(function_exists('hash_hmac')) {
            return self::_builtInHmacSha1($string, $key);
        } else {
            return self::_hmacSha1($string, $key);
        }
    }

    public static function hexDigestSha256($key, $string)
    {
        return hash_hmac('sha256', $string, hash('sha256', $key, true));
    }

    public static function secureCompare($left, $right)
    {
        if (strlen($left) != strlen($right)) {
            return false;
        }

        $leftBytes = unpack("C*", $left);
        $rightBytes = unpack("C*", $right);

        $result = 0;
        for ($i = 1; $i <= count($leftBytes); $i++) {
            $result = $result | ($leftBytes[$i] ^ $rightBytes[$i]);
        }
        return $result == 0;
    }

    public static function _builtInHmacSha1($message, $key)
    {
        return hash_hmac('sha1', $message, sha1($key, true));
    }

    public static function _hmacSha1($message, $key)
    {
        $pack = 'H40';
        $keyDigest = sha1($key,true);
        $innerPad = str_repeat(chr(0x36), 64);
        $outerPad = str_repeat(chr(0x5C), 64);

        for ($i = 0; $i < 20; $i++) {
            $innerPad[$i] = $keyDigest[$i] ^ $innerPad[$i];
            $outerPad[$i] = $keyDigest[$i] ^ $outerPad[$i];
        }

        return sha1($outerPad.pack($pack, sha1($innerPad.$message)));
    }
}