Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
100.00% |
13 / 13 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
1 / 1 |
| CRLReason | |
100.00% |
13 / 13 |
|
100.00% |
2 / 2 |
2 | |
100.00% |
1 / 1 |
| getDescription | |
100.00% |
12 / 12 |
|
100.00% |
1 / 1 |
1 | |||
| isValid | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
| 1 | <?php |
| 2 | |
| 3 | declare(strict_types=1); |
| 4 | |
| 5 | /** |
| 6 | * SPDX-FileCopyrightText: 2025 LibreCode coop and contributors |
| 7 | * SPDX-License-Identifier: AGPL-3.0-or-later |
| 8 | */ |
| 9 | |
| 10 | namespace OCA\Libresign\Enum; |
| 11 | |
| 12 | /** |
| 13 | * RFC 5280 CRLReason codes |
| 14 | */ |
| 15 | enum CRLReason: int { |
| 16 | case UNSPECIFIED = 0; |
| 17 | case KEY_COMPROMISE = 1; |
| 18 | case CA_COMPROMISE = 2; |
| 19 | case AFFILIATION_CHANGED = 3; |
| 20 | case SUPERSEDED = 4; |
| 21 | case CESSATION_OF_OPERATION = 5; |
| 22 | case CERTIFICATE_HOLD = 6; |
| 23 | case REMOVE_FROM_CRL = 8; |
| 24 | case PRIVILEGE_WITHDRAWN = 9; |
| 25 | case AA_COMPROMISE = 10; |
| 26 | |
| 27 | public function getDescription(): string { |
| 28 | return match ($this) { |
| 29 | self::UNSPECIFIED => 'unspecified', |
| 30 | self::KEY_COMPROMISE => 'keyCompromise', |
| 31 | self::CA_COMPROMISE => 'cACompromise', |
| 32 | self::AFFILIATION_CHANGED => 'affiliationChanged', |
| 33 | self::SUPERSEDED => 'superseded', |
| 34 | self::CESSATION_OF_OPERATION => 'cessationOfOperation', |
| 35 | self::CERTIFICATE_HOLD => 'certificateHold', |
| 36 | self::REMOVE_FROM_CRL => 'removeFromCRL', |
| 37 | self::PRIVILEGE_WITHDRAWN => 'privilegeWithdrawn', |
| 38 | self::AA_COMPROMISE => 'aACompromise', |
| 39 | }; |
| 40 | } |
| 41 | |
| 42 | public static function isValid(int $code): bool { |
| 43 | return self::tryFrom($code) !== null; |
| 44 | } |
| 45 | } |