Вход Регистрация
Файл: sngine-v2.8/Script/includes/libs/AWS/Aws/Signature/SignatureTrait.php
Строк: 26
<?php
namespace AwsSignature;

/**
 * Provides signature calculation for SignatureV4.
 */
trait SignatureTrait
{
    
/** @var array Cache of previously signed values */
    
private $cache = [];

    
/** @var int Size of the hash cache */
    
private $cacheSize 0;

    private function 
createScope($shortDate$region$service)
    {
        return 
"$shortDate/$region/$service/aws4_request";
    }

    private function 
getSigningKey($shortDate$region$service$secretKey)
    {
        
$k $shortDate '_' $region '_' $service '_' $secretKey;

        if (!isset(
$this->cache[$k])) {
            
// Clear the cache when it reaches 50 entries
            
if (++$this->cacheSize 50) {
                
$this->cache = [];
                
$this->cacheSize 0;
            }

            
$dateKey hash_hmac(
                
'sha256',
                
$shortDate,
                
"AWS4{$secretKey}",
                
true
            
);
            
$regionKey hash_hmac('sha256'$region$dateKeytrue);
            
$serviceKey hash_hmac('sha256'$service$regionKeytrue);
            
$this->cache[$k] = hash_hmac(
                
'sha256',
                
'aws4_request',
                
$serviceKey,
                
true
            
);
        }

        return 
$this->cache[$k];
    }
}
Онлайн: 0
Реклама