Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
<?php

namespace Firebase\JWT;

use InvalidArgumentException;
use OpenSSLAsymmetricKey;
> use OpenSSLCertificate; > use TypeError;
class Key {
< /** @var string $algorithm */ < private $algorithm; < < /** @var string|resource|OpenSSLAsymmetricKey $keyMaterial */
> /** @var string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate */
private $keyMaterial;
> /** @var string */ > private $algorithm;
/**
< * @param string|resource|OpenSSLAsymmetricKey $keyMaterial
> * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $keyMaterial
* @param string $algorithm */
< public function __construct($keyMaterial, $algorithm) < {
> public function __construct( > $keyMaterial, > string $algorithm > ) {
if (
< !is_string($keyMaterial) < && !is_resource($keyMaterial)
> !\is_string($keyMaterial)
&& !$keyMaterial instanceof OpenSSLAsymmetricKey
> && !$keyMaterial instanceof OpenSSLCertificate ) { > && !\is_resource($keyMaterial)
< throw new InvalidArgumentException('Type error: $keyMaterial must be a string, resource, or OpenSSLAsymmetricKey');
> throw new TypeError('Key material must be a string, resource, or OpenSSLAsymmetricKey');
} if (empty($keyMaterial)) {
< throw new InvalidArgumentException('Type error: $keyMaterial must not be empty');
> throw new InvalidArgumentException('Key material must not be empty');
}
< if (!is_string($algorithm)|| empty($keyMaterial)) { < throw new InvalidArgumentException('Type error: $algorithm must be a string');
> 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()
> public function getAlgorithm(): string
{ return $this->algorithm; } /**
< * @return string|resource|OpenSSLAsymmetricKey
> * @return string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate
*/ public function getKeyMaterial() { return $this->keyMaterial; } }