HmacAlgorithm.php 644 B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace App\Util\HttpSignatures;
  3. class HmacAlgorithm implements AlgorithmInterface
  4. {
  5. /** @var string */
  6. private $digestName;
  7. /**
  8. * @param string $digestName
  9. */
  10. public function __construct($digestName)
  11. {
  12. $this->digestName = $digestName;
  13. }
  14. /**
  15. * @return string
  16. */
  17. public function name()
  18. {
  19. return sprintf('hmac-%s', $this->digestName);
  20. }
  21. /**
  22. * @param string $key
  23. * @param string $data
  24. *
  25. * @return string
  26. */
  27. public function sign($secret, $data)
  28. {
  29. return hash_hmac($this->digestName, $data, $secret, true);
  30. }
  31. }