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