AutorÃa | Ultima modificación | Ver Log |
<?phpnamespace Aws\Signature;/*** 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 entriesif (++$this->cacheSize > 50) {$this->cache = [];$this->cacheSize = 0;}$dateKey = hash_hmac('sha256',$shortDate,"AWS4{$secretKey}",true);$regionKey = hash_hmac('sha256', $region, $dateKey, true);$serviceKey = hash_hmac('sha256', $service, $regionKey, true);$this->cache[$k] = hash_hmac('sha256','aws4_request',$serviceKey,true);}return $this->cache[$k];}}