Viewing file: Key.php (1.58 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Firebase\JWT;
use OpenSSLAsymmetricKey; use OpenSSLCertificate; use TypeError; use InvalidArgumentException;
class Key { /** @var string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate */ private $keyMaterial; /** @var string */ private $algorithm;
/** * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $keyMaterial * @param string $algorithm */ public function __construct( $keyMaterial, string $algorithm ) { if ( !is_string($keyMaterial) && !$keyMaterial instanceof OpenSSLAsymmetricKey && !$keyMaterial instanceof OpenSSLCertificate && !is_resource($keyMaterial) ) { throw new TypeError('Key material must be a string, resource, or OpenSSLAsymmetricKey'); }
if (empty($keyMaterial)) { throw new InvalidArgumentException('Key material must not be empty'); }
if (empty($algorithm)) { throw new InvalidArgumentException('Algorithm must not be empty'); }
// TODO: Remove in PHP 8.0 in favor of class constructor property promotion $this->keyMaterial = $keyMaterial; $this->algorithm = $algorithm; }
/** * Return the algorithm valid for this key * * @return string */ public function getAlgorithm(): string { return $this->algorithm; }
/** * @return string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate */ public function getKeyMaterial() { return $this->keyMaterial; } }
|