source: vendor/firebase/php-jwt/src/Key.php@ f9c482b

Last change on this file since f9c482b was f9c482b, checked in by Vlado 222039 <vlado.popovski@…>, 7 days ago

Upload new project files

  • Property mode set to 100644
File size: 1.6 KB
Line 
1<?php
2
3namespace Firebase\JWT;
4
5use InvalidArgumentException;
6use OpenSSLAsymmetricKey;
7use OpenSSLCertificate;
8use TypeError;
9
10class Key
11{
12 /** @var string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate */
13 private $keyMaterial;
14 /** @var string */
15 private $algorithm;
16
17 /**
18 * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $keyMaterial
19 * @param string $algorithm
20 */
21 public function __construct(
22 $keyMaterial,
23 string $algorithm
24 ) {
25 if (
26 !\is_string($keyMaterial)
27 && !$keyMaterial instanceof OpenSSLAsymmetricKey
28 && !$keyMaterial instanceof OpenSSLCertificate
29 && !\is_resource($keyMaterial)
30 ) {
31 throw new TypeError('Key material must be a string, resource, or OpenSSLAsymmetricKey');
32 }
33
34 if (empty($keyMaterial)) {
35 throw new InvalidArgumentException('Key material must not be empty');
36 }
37
38 if (empty($algorithm)) {
39 throw new InvalidArgumentException('Algorithm must not be empty');
40 }
41
42 // TODO: Remove in PHP 8.0 in favor of class constructor property promotion
43 $this->keyMaterial = $keyMaterial;
44 $this->algorithm = $algorithm;
45 }
46
47 /**
48 * Return the algorithm valid for this key
49 *
50 * @return string
51 */
52 public function getAlgorithm(): string
53 {
54 return $this->algorithm;
55 }
56
57 /**
58 * @return string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate
59 */
60 public function getKeyMaterial()
61 {
62 return $this->keyMaterial;
63 }
64}
Note: See TracBrowser for help on using the repository browser.