| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?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;
- }
- }
|