Passed
Push — master ( c00c98...b5ce29 )
by Tim
01:58
created

DigestValue::toXML()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 6
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SimpleSAML\XMLSecurity\XML\ds;
6
7
use DOMElement;
8
use SimpleSAML\Assert\Assert;
9
use SimpleSAML\XML\Exception\InvalidDOMElementException;
10
use SimpleSAML\XML\XMLStringElementTrait;
11
12
/**
13
 * Class representing a ds:DigestValue element.
14
 *
15
 * @package simplesaml/xml-security
16
 */
17
final class DigestValue extends AbstractDsElement
18
{
19
    use XMLStringElementTrait;
20
21
22
    /**
23
     * Validate the content of the element.
24
     *
25
     * @param string $content  The value to go in the XML textContent
26
     * @throws \Exception on failure
27
     * @return void
28
     */
29
    protected function validateContent(string $content): void
30
    {
31
        Assert::notEmpty($content, 'DigestValue cannot be empty');
32
        Assert::stringPlausibleBase64($content, 'ds:DigestValue is not a valid Base64 encoded string');
33
    }
34
35
36
    /**
37
     * Convert XML into a DigestValue
38
     *
39
     * @param \DOMElement $xml The XML element we should load
40
     * @return self
41
     *
42
     * @throws \SimpleSAML\XML\Exception\InvalidDOMElementException
43
     *   If the qualified name of the supplied element is wrong
44
     */
45
    public static function fromXML(DOMElement $xml): object
46
    {
47
        Assert::same($xml->localName, 'DigestValue', InvalidDOMElementException::class);
48
        Assert::same($xml->namespaceURI, DigestValue::NS, InvalidDOMElementException::class);
49
50
        return new self($xml->textContent);
51
    }
52
}
53