1 <?php
2 3 4
5 namespace Team3\PayU\SignatureCalculator\Encoder\Strategy;
6
7 use Team3\PayU\SignatureCalculator\Encoder\Algorithms\AlgorithmInterface;
8 use Team3\PayU\SignatureCalculator\Encoder\Algorithms\Sha256Algorithm;
9 use Team3\PayU\SignatureCalculator\Encoder\EncoderException;
10
11 class Sha256Strategy implements EncoderStrategyInterface
12 {
13 14 15 16 17
18 public function supports(AlgorithmInterface $algorithm)
19 {
20 return $algorithm instanceof Sha256Algorithm;
21 }
22
23 24 25 26 27 28
29 public function encode($data)
30 {
31 if (!function_exists('hash')) {
32 throw new EncoderException(
33 'There is no hash function defined. Could not encode data.'
34 );
35 }
36
37 return hash('sha256', $data);
38 }
39 }
40