1: <?php
2: /**
3: * Chippyash Digest Authentication Manager
4: *
5: * @copyright Ashley Kitson, UK, 2014
6: * @license GPL 3.0+
7: */
8: namespace Chippyash\Authentication\Manager\Encoder;
9:
10: use Chippyash\Authentication\Manager\Encoder\DigestEncoderInterface;
11: use Chippyash\Authentication\Manager\Traits\RealmHandler;
12: use Chippyash\Type\String\StringType;
13:
14: /**
15: * Encoding for Basic Digest
16: */
17: class BasicEncoder implements DigestEncoderInterface
18: {
19: use RealmHandler;
20:
21: /**
22: * A digest format string uid:realm:md5(uid:realm:pwd)
23: * @var string
24: */
25: protected $digestTemplate = '%s:%s:%s';
26:
27: /**
28: * Return encoded digest
29: *
30: * @param StringType $uid
31: * @param StringType $pwd
32: *
33: * @return StringType
34: */
35: public function encode(StringType $uid, StringType $pwd)
36: {
37: $encoded = md5(sprintf($this->digestTemplate, $uid, $this->realm(), $pwd));
38: return new StringType(sprintf($this->digestTemplate, $uid, $this->realm(), $encoded));
39: }
40: }
41: