PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / libs / Zend / Validate / File / Md5.php
matomo / app / libs / Zend / Validate / File Last commit date
Count.php 6 years ago Crc32.php 6 years ago ExcludeExtension.php 6 years ago ExcludeMimeType.php 6 years ago Exists.php 6 years ago Extension.php 6 years ago FilesSize.php 6 years ago Hash.php 6 years ago ImageSize.php 6 years ago IsCompressed.php 6 years ago IsImage.php 6 years ago Md5.php 6 years ago MimeType.php 6 years ago NotExists.php 6 years ago Sha1.php 6 years ago Size.php 6 years ago Upload.php 6 years ago WordCount.php 6 years ago
Md5.php
184 lines
1 <?php
2 /**
3 * Zend Framework
4 *
5 * LICENSE
6 *
7 * This source file is subject to the new BSD license that is bundled
8 * with this package in the file LICENSE.txt.
9 * It is also available through the world-wide-web at this URL:
10 * http://framework.zend.com/license/new-bsd
11 * If you did not receive a copy of the license and are unable to
12 * obtain it through the world-wide-web, please send an email
13 * to license@zend.com so we can send you a copy immediately.
14 *
15 * @category Zend
16 * @package Zend_Validate
17 * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
18 * @license http://framework.zend.com/license/new-bsd New BSD License
19 * @version $Id: Md5.php 23775 2011-03-01 17:25:24Z ralph $
20 */
21
22 /**
23 * @see Zend_Validate_File_Hash
24 */
25 // require_once 'Zend/Validate/File/Hash.php';
26
27 /**
28 * Validator for the md5 hash of given files
29 *
30 * @category Zend
31 * @package Zend_Validate
32 * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
33 * @license http://framework.zend.com/license/new-bsd New BSD License
34 */
35 class Zend_Validate_File_Md5 extends Zend_Validate_File_Hash
36 {
37 /**
38 * @const string Error constants
39 */
40 const DOES_NOT_MATCH = 'fileMd5DoesNotMatch';
41 const NOT_DETECTED = 'fileMd5NotDetected';
42 const NOT_FOUND = 'fileMd5NotFound';
43
44 /**
45 * @var array Error message templates
46 */
47 protected $_messageTemplates = array(
48 self::DOES_NOT_MATCH => "File '%value%' does not match the given md5 hashes",
49 self::NOT_DETECTED => "A md5 hash could not be evaluated for the given file",
50 self::NOT_FOUND => "File '%value%' is not readable or does not exist",
51 );
52
53 /**
54 * Hash of the file
55 *
56 * @var string
57 */
58 protected $_hash;
59
60 /**
61 * Sets validator options
62 *
63 * $hash is the hash we accept for the file $file
64 *
65 * @param string|array $options
66 * @return void
67 */
68 public function __construct($options)
69 {
70 if ($options instanceof Zend_Config) {
71 $options = $options->toArray();
72 } elseif (is_scalar($options)) {
73 $options = array('hash1' => $options);
74 } elseif (!is_array($options)) {
75 // require_once 'Zend/Validate/Exception.php';
76 throw new Zend_Validate_Exception('Invalid options to validator provided');
77 }
78
79 $this->setMd5($options);
80 }
81
82 /**
83 * Returns all set md5 hashes
84 *
85 * @return array
86 */
87 public function getMd5()
88 {
89 return $this->getHash();
90 }
91
92 /**
93 * Sets the md5 hash for one or multiple files
94 *
95 * @param string|array $options
96 * @param string $algorithm (Deprecated) Algorithm to use, fixed to md5
97 * @return Zend_Validate_File_Hash Provides a fluent interface
98 */
99 public function setHash($options)
100 {
101 if (!is_array($options)) {
102 $options = (array) $options;
103 }
104
105 $options['algorithm'] = 'md5';
106 parent::setHash($options);
107 return $this;
108 }
109
110 /**
111 * Sets the md5 hash for one or multiple files
112 *
113 * @param string|array $options
114 * @return Zend_Validate_File_Hash Provides a fluent interface
115 */
116 public function setMd5($options)
117 {
118 $this->setHash($options);
119 return $this;
120 }
121
122 /**
123 * Adds the md5 hash for one or multiple files
124 *
125 * @param string|array $options
126 * @param string $algorithm (Deprecated) Algorithm to use, fixed to md5
127 * @return Zend_Validate_File_Hash Provides a fluent interface
128 */
129 public function addHash($options)
130 {
131 if (!is_array($options)) {
132 $options = (array) $options;
133 }
134
135 $options['algorithm'] = 'md5';
136 parent::addHash($options);
137 return $this;
138 }
139
140 /**
141 * Adds the md5 hash for one or multiple files
142 *
143 * @param string|array $options
144 * @return Zend_Validate_File_Hash Provides a fluent interface
145 */
146 public function addMd5($options)
147 {
148 $this->addHash($options);
149 return $this;
150 }
151
152 /**
153 * Defined by Zend_Validate_Interface
154 *
155 * Returns true if and only if the given file confirms the set hash
156 *
157 * @param string $value Filename to check for hash
158 * @param array $file File data from Zend_File_Transfer
159 * @return boolean
160 */
161 public function isValid($value, $file = null)
162 {
163 // Is file readable ?
164 // require_once 'Zend/Loader.php';
165 if (!Zend_Loader::isReadable($value)) {
166 return $this->_throw($file, self::NOT_FOUND);
167 }
168
169 $hashes = array_unique(array_keys($this->_hash));
170 $filehash = hash_file('md5', $value);
171 if ($filehash === false) {
172 return $this->_throw($file, self::NOT_DETECTED);
173 }
174
175 foreach($hashes as $hash) {
176 if ($filehash === $hash) {
177 return true;
178 }
179 }
180
181 return $this->_throw($file, self::DOES_NOT_MATCH);
182 }
183 }
184