| 1: | <?php | 
| 2: |  | 
| 3: | namespace Firebase\JWT; | 
| 4: |  | 
| 5: | use InvalidArgumentException; | 
| 6: | use OpenSSLAsymmetricKey; | 
| 7: |  | 
| 8: | class Key | 
| 9: | { | 
| 10: |  | 
| 11: | private $algorithm; | 
| 12: |  | 
| 13: |  | 
| 14: | private $keyMaterial; | 
| 15: |  | 
| 16: |  | 
| 17: |  | 
| 18: |  | 
| 19: |  | 
| 20: | public function __construct($keyMaterial, $algorithm) | 
| 21: | { | 
| 22: | if ( | 
| 23: | !is_string($keyMaterial) | 
| 24: | && !is_resource($keyMaterial) | 
| 25: | && !$keyMaterial instanceof OpenSSLAsymmetricKey | 
| 26: | ) { | 
| 27: | throw new InvalidArgumentException('Type error: $keyMaterial must be a string, resource, or OpenSSLAsymmetricKey'); | 
| 28: | } | 
| 29: |  | 
| 30: | if (empty($keyMaterial)) { | 
| 31: | throw new InvalidArgumentException('Type error: $keyMaterial must not be empty'); | 
| 32: | } | 
| 33: |  | 
| 34: | if (!is_string($algorithm)|| empty($keyMaterial)) { | 
| 35: | throw new InvalidArgumentException('Type error: $algorithm must be a string'); | 
| 36: | } | 
| 37: |  | 
| 38: | $this->keyMaterial = $keyMaterial; | 
| 39: | $this->algorithm = $algorithm; | 
| 40: | } | 
| 41: |  | 
| 42: |  | 
| 43: |  | 
| 44: |  | 
| 45: |  | 
| 46: |  | 
| 47: | public function getAlgorithm() | 
| 48: | { | 
| 49: | return $this->algorithm; | 
| 50: | } | 
| 51: |  | 
| 52: |  | 
| 53: |  | 
| 54: |  | 
| 55: | public function getKeyMaterial() | 
| 56: | { | 
| 57: | return $this->keyMaterial; | 
| 58: | } | 
| 59: | } | 
| 60: |  |