CPSQualifier::uri()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
nc 1
cc 1
nop 0
crap 1
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace X509\Certificate\Extension\CertificatePolicy;
6
7
use ASN1\Type\UnspecifiedType;
8
use ASN1\Type\Primitive\IA5String;
9
10
/**
11
 * Implements <i>CPSuri</i> ASN.1 type used by
12
 * 'Certificate Policies' certificate extension.
13
 *
14
 * @link https://tools.ietf.org/html/rfc5280#section-4.2.1.4
15
 */
16
class CPSQualifier extends PolicyQualifierInfo
17
{
18
    /**
19
     * URI.
20
     *
21
     * @var string $_uri
22
     */
23
    protected $_uri;
24
    
25
    /**
26
     * Constructor.
27
     *
28
     * @param string $uri
29
     */
30 16
    public function __construct(string $uri)
31
    {
32 16
        $this->_oid = self::OID_CPS;
33 16
        $this->_uri = $uri;
34 16
    }
35
    
36
    /**
37
     *
38
     * @param UnspecifiedType $el
39
     * @return self
40
     */
41 12
    public static function fromQualifierASN1(UnspecifiedType $el): self
42
    {
43 12
        return new self($el->asString()->string());
44
    }
45
    
46
    /**
47
     * Get URI.
48
     *
49
     * @return string
50
     */
51 3
    public function uri(): string
52
    {
53 3
        return $this->_uri;
54
    }
55
    
56
    /**
57
     *
58
     * {@inheritdoc}
59
     * @return IA5String
60
     */
61 18
    protected function _qualifierASN1(): IA5String
62
    {
63 18
        return new IA5String($this->_uri);
64
    }
65
}
66