blob: f7b7215db979e19cb60e4df870ebf92709be8190 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
<?php
/* Icinga Web 2 X.509 Module | (c) 2022 Icinga GmbH | GPLv2 */
namespace Icinga\Module\X509\Model\Behavior;
use ipl\Orm\Contract\PropertyBehavior;
/**
* Support automatically transformation of DER-encoded certificates to PEM and vice versa.
*/
class DERBase64 extends PropertyBehavior
{
public function fromDb($value, $key, $_)
{
if (! $value) {
return null;
}
$block = chunk_split(base64_encode($value), 64, "\n");
return "-----BEGIN CERTIFICATE-----\n{$block}-----END CERTIFICATE-----";
}
public function toDb($value, $key, $_)
{
if (! $value) {
return null;
}
$lines = explode("\n", $value);
$der = '';
foreach ($lines as $line) {
if (strpos($line, '-----') === 0) {
continue;
}
$der .= base64_decode($line);
}
return $der;
}
}
|