Completed
Pull Request — master (#49)
by Sam
01:29
created

DNSKEY::getAlgorithm()   A

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
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
/*
4
 * This file is part of Badcow DNS Library.
5
 *
6
 * (c) Samuel Williams <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Badcow\DNS\Rdata;
13
14
/**
15
 * Class DNSKEY.
16
 *
17
 * {@link https://tools.ietf.org/html/rfc4034#section-2.1}
18
 */
19
class DNSKEY implements RdataInterface
20
{
21
    use RdataTrait;
22
23
    const TYPE = 'DNSKEY';
24
25
    /**
26
     * {@link https://tools.ietf.org/html/rfc4034#section-2.1.1}.
27
     *
28
     * @var int
29
     */
30
    private $flags;
31
32
    /**
33
     * The Protocol Field MUST have value 3, and the DNSKEY RR MUST be
34
     * treated as invalid during signature verification if it is found to be
35
     * some value other than 3.
36
     * {@link https://tools.ietf.org/html/rfc4034#section-2.1.2}.
37
     *
38
     * @var int
39
     */
40
    private $protocol = 3;
41
42
    /**
43
     * The Algorithm field identifies the public key's cryptographic
44
     * algorithm and determines the format of the Public Key field.
45
     * {@link https://tools.ietf.org/html/rfc4034#section-2.1.3}.
46
     *
47
     * @var int
48
     */
49
    private $algorithm;
50
51
    /**
52
     * The Public Key field is a Base64 encoding of the Public Key.
53
     * Whitespace is allowed within the Base64 text.
54
     * {@link https://tools.ietf.org/html/rfc4034#section-2.1.4}.
55
     *
56
     * @var string
57
     */
58
    private $publicKey;
59
60
    /**
61
     * @return int
62
     */
63 2
    public function getFlags(): int
64
    {
65 2
        return $this->flags;
66
    }
67
68
    /**
69
     * @param int $flags
70
     */
71 4
    public function setFlags(int $flags): void
72
    {
73 4
        $this->flags = $flags;
74 4
    }
75
76
    /**
77
     * @return int
78
     */
79 2
    public function getProtocol(): int
80
    {
81 2
        return $this->protocol;
82
    }
83
84
    /**
85
     * @return int
86
     */
87 2
    public function getAlgorithm(): int
88
    {
89 2
        return $this->algorithm;
90
    }
91
92
    /**
93
     * @param int $algorithm
94
     */
95 4
    public function setAlgorithm(int $algorithm): void
96
    {
97 4
        $this->algorithm = $algorithm;
98 4
    }
99
100
    /**
101
     * @return string
102
     */
103 2
    public function getPublicKey(): string
104
    {
105 2
        return $this->publicKey;
106
    }
107
108
    /**
109
     * @param string $publicKey
110
     */
111 4
    public function setPublicKey(string $publicKey): void
112
    {
113 4
        $this->publicKey = $publicKey;
114 4
    }
115
116
    /**
117
     * {@inheritdoc}
118
     */
119 4
    public function output(): string
120
    {
121 4
        return sprintf(
122 4
            '%s %s %s %s',
123 4
            $this->flags,
124 4
            $this->protocol,
125 4
            $this->algorithm,
126 4
            $this->publicKey
127
        );
128
    }
129
}
130