oont-contents/plugins/google-site-kit/third-party/firebase/php-jwt/src/Key.php
2025-02-08 15:10:23 +01:00

50 lines
1.5 KiB
PHP

<?php
namespace Google\Site_Kit_Dependencies\Firebase\JWT;
use InvalidArgumentException;
use OpenSSLAsymmetricKey;
use OpenSSLCertificate;
use TypeError;
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;
}
}