Raw.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Raw Signature Handler
  4. *
  5. * PHP version 5
  6. *
  7. * Handles signatures as arrays
  8. *
  9. * @category Crypt
  10. * @package Common
  11. * @author Jim Wigginton <terrafrost@php.net>
  12. * @copyright 2016 Jim Wigginton
  13. * @license http://www.opensource.org/licenses/mit-license.html MIT License
  14. * @link http://phpseclib.sourceforge.net
  15. */
  16. namespace phpseclib\Crypt\Common\Signature;
  17. use phpseclib\Math\BigInteger;
  18. use phpseclib\Common\Functions\Strings;
  19. /**
  20. * Raw Signature Handler
  21. *
  22. * @package Common
  23. * @author Jim Wigginton <terrafrost@php.net>
  24. * @access public
  25. */
  26. abstract class Raw
  27. {
  28. /**
  29. * Loads a signature
  30. *
  31. * @access public
  32. * @param array $key
  33. * @return array
  34. */
  35. public static function load($sig)
  36. {
  37. switch (true) {
  38. case !is_array($sig):
  39. case !isset($sig['r']) || !isset($sig['s']):
  40. case !$sig['r'] instanceof BigInteger:
  41. case !$sig['s'] instanceof BigInteger:
  42. return false;
  43. }
  44. return [
  45. 'r' => $key['r'],
  46. 's' => $key['s']
  47. ];
  48. }
  49. /**
  50. * Returns a signature in the appropriate format
  51. *
  52. * @access public
  53. * @param \phpseclib\Math\BigInteger $r
  54. * @param \phpseclib\Math\BigInteger $s
  55. * @return string
  56. */
  57. public static function save($r, $s)
  58. {
  59. return compact('r', 's');
  60. }
  61. }