AbstractContext::setUserVerificationRequired()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
rs 10
1
<?php
2
3
namespace MadWizard\WebAuthn\Server;
4
5
use MadWizard\WebAuthn\Extension\ExtensionInputInterface;
6
use MadWizard\WebAuthn\Format\ByteBuffer;
7
use MadWizard\WebAuthn\Format\SerializableTrait;
8
use MadWizard\WebAuthn\Web\Origin;
9
10
abstract class AbstractContext
11
{
12
    use SerializableTrait;
13
14
    /**
15
     * @var ByteBuffer
16
     */
17
    private $challenge;
18
19
    /**
20
     * @var string
21
     */
22
    private $rpId;
23
24
    /**
25
     * @var bool
26
     */
27
    private $userVerificationRequired = false;
28
29
    /**
30
     * @var bool
31
     */
32
    private $userPresenceRequired = true;
33
34
    /**
35
     * @var Origin
36
     */
37
    private $origin;
38
39
    /**
40
     * @var ExtensionInputInterface[]
41
     */
42
    private $extensionInputs = [];
43
44 14
    public function __construct(ByteBuffer $challenge, Origin $origin, string $rpId)
45
    {
46 14
        $this->challenge = $challenge;
47 14
        $this->origin = $origin;
48 14
        $this->rpId = $rpId;
49 14
    }
50
51 10
    public function getChallenge(): ByteBuffer
52
    {
53 10
        return $this->challenge;
54
    }
55
56 7
    public function getRpId(): string
57
    {
58 7
        return $this->rpId;
59
    }
60
61 5
    public function isUserVerificationRequired(): bool
62
    {
63 5
        return $this->userVerificationRequired;
64
    }
65
66
    public function setUserVerificationRequired(bool $required): void
67
    {
68
        $this->userVerificationRequired = $required;
69
    }
70
71
    public function isUserPresenceRequired(): bool
72
    {
73
        return $this->userPresenceRequired;
74
    }
75
76 2
    public function setUserPresenceRequired(bool $required): void
77
    {
78 2
        $this->userPresenceRequired = $required;
79 2
    }
80
81 8
    public function getOrigin(): Origin
82
    {
83 8
        return $this->origin;
84
    }
85
86
    public function addExtensionInput(ExtensionInputInterface $input): void
87
    {
88
        $this->extensionInputs[] = $input;
89
    }
90
91
    /**
92
     * @return ExtensionInputInterface[]
93
     */
94 12
    public function getExtensionInputs(): array
95
    {
96 12
        return $this->extensionInputs;
97
    }
98
99
    public function __serialize(): array
100
    {
101
        return [
102
            'challenge' => $this->challenge,
103
            'rpId' => $this->rpId,
104
            'userVerificationRequired' => $this->userVerificationRequired,
105
            'origin' => $this->origin,
106
            'userPresenceRequired' => $this->userPresenceRequired,
107
            'extensionInputs' => $this->extensionInputs,
108
        ];
109
    }
110
111
    public function __unserialize(array $data): void
112
    {
113
        $this->challenge = $data['challenge'];
114
        $this->rpId = $data['rpId'];
115
        $this->userVerificationRequired = $data['userVerificationRequired'];
116
        $this->origin = $data['origin'];
117
        $this->userPresenceRequired = $data['userPresenceRequired'];
118
        $this->extensionInputs = $data['extensionInputs'];
119
    }
120
}
121