Subversion Repositories oidplus

Rev

Blame | Last modification | View Log | RSS feed

  1. <?php
  2.  
  3. namespace Firebase\JWT;
  4.  
  5. use InvalidArgumentException;
  6. use OpenSSLAsymmetricKey;
  7.  
  8. class Key
  9. {
  10.     /** @var string $algorithm */
  11.     private $algorithm;
  12.  
  13.     /** @var string|resource|OpenSSLAsymmetricKey $keyMaterial */
  14.     private $keyMaterial;
  15.  
  16.     /**
  17.      * @param string|resource|OpenSSLAsymmetricKey $keyMaterial
  18.      * @param string $algorithm
  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.      * Return the algorithm valid for this key
  44.      *
  45.      * @return string
  46.      */
  47.     public function getAlgorithm()
  48.     {
  49.         return $this->algorithm;
  50.     }
  51.  
  52.     /**
  53.      * @return string|resource|OpenSSLAsymmetricKey
  54.      */
  55.     public function getKeyMaterial()
  56.     {
  57.         return $this->keyMaterial;
  58.     }
  59. }
  60.