Completed
Push — master ( 4f6bd4...be5be4 )
by Arne
08:11
created

getPhpHashAlgorithmName()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Storeman\Hash\Algorithm;
4
5
abstract class AbstractPhpHashAlgorithm implements HashAlgorithmInterface
6
{
7
    protected $context;
8
9
    /**
10
     * {@inheritdoc}
11
     */
12
    public function initialize(): void
13
    {
14
        $this->context = hash_init($this->getPhpHashAlgorithmName());
15
    }
16
17
    /**
18
     * {@inheritdoc}
19
     */
20
    public function digest(string $buffer): void
21
    {
22
        assert($this->context !== null, sprintf('Calling %s() on uninitialized context.', __FUNCTION__));
23
24
        hash_update($this->context, $buffer);
25
    }
26
27
    /**
28
     * {@inheritdoc}
29
     */
30
    public function finalize(): string
31
    {
32
        assert($this->context !== null, sprintf('Calling %s() on uninitialized context.', __FUNCTION__));
33
34
        return hash_final($this->context);
35
    }
36
37
    /**
38
     * Allows to override the hash algo name.
39
     *
40
     * @return string
41
     */
42
    protected function getPhpHashAlgorithmName(): string
43
    {
44
        return $this->getName();
45
    }
46
}
47