mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-08 11:18:44 +02:00
* N°8834 - Add compatibility with PHP 8.4 * Rollback of scssphp/scssphp version upgrade due to compilation error
55 lines
1.3 KiB
PHP
55 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Firebase\JWT;
|
|
|
|
use InvalidArgumentException;
|
|
use OpenSSLAsymmetricKey;
|
|
use OpenSSLCertificate;
|
|
use TypeError;
|
|
|
|
class Key
|
|
{
|
|
/**
|
|
* @param string|OpenSSLAsymmetricKey|OpenSSLCertificate $keyMaterial
|
|
* @param string $algorithm
|
|
*/
|
|
public function __construct(
|
|
#[\SensitiveParameter] private $keyMaterial,
|
|
private string $algorithm
|
|
) {
|
|
if (
|
|
!\is_string($keyMaterial)
|
|
&& !$keyMaterial instanceof OpenSSLAsymmetricKey
|
|
&& !$keyMaterial instanceof OpenSSLCertificate
|
|
) {
|
|
throw new TypeError('Key material must be a string, OpenSSLCertificate, 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');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Return the algorithm valid for this key
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getAlgorithm(): string
|
|
{
|
|
return $this->algorithm;
|
|
}
|
|
|
|
/**
|
|
* @return string|OpenSSLAsymmetricKey|OpenSSLCertificate
|
|
*/
|
|
public function getKeyMaterial()
|
|
{
|
|
return $this->keyMaterial;
|
|
}
|
|
}
|