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 / Sha1.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
Sha1.php
182 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: Sha1.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 sha1 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_Sha1 extends Zend_Validate_File_Hash
36 {
37 /**
38 * @const string Error constants
39 */
40 const DOES_NOT_MATCH = 'fileSha1DoesNotMatch';
41 const NOT_DETECTED = 'fileSha1NotDetected';
42 const NOT_FOUND = 'fileSha1NotFound';
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 sha1 hashes",
49 self::NOT_DETECTED => "A sha1 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->setHash($options);
80 }
81
82 /**
83 * Returns all set sha1 hashes
84 *
85 * @return array
86 */
87 public function getSha1()
88 {
89 return $this->getHash();
90 }
91
92 /**
93 * Sets the sha1 hash for one or multiple files
94 *
95 * @param string|array $options
96 * @return Zend_Validate_File_Hash Provides a fluent interface
97 */
98 public function setHash($options)
99 {
100 if (!is_array($options)) {
101 $options = (array) $options;
102 }
103
104 $options['algorithm'] = 'sha1';
105 parent::setHash($options);
106 return $this;
107 }
108
109 /**
110 * Sets the sha1 hash for one or multiple files
111 *
112 * @param string|array $options
113 * @return Zend_Validate_File_Hash Provides a fluent interface
114 */
115 public function setSha1($options)
116 {
117 $this->setHash($options);
118 return $this;
119 }
120
121 /**
122 * Adds the sha1 hash for one or multiple files
123 *
124 * @param string|array $options
125 * @return Zend_Validate_File_Hash Provides a fluent interface
126 */
127 public function addHash($options)
128 {
129 if (!is_array($options)) {
130 $options = (array) $options;
131 }
132
133 $options['algorithm'] = 'sha1';
134 parent::addHash($options);
135 return $this;
136 }
137
138 /**
139 * Adds the sha1 hash for one or multiple files
140 *
141 * @param string|array $options
142 * @return Zend_Validate_File_Hash Provides a fluent interface
143 */
144 public function addSha1($options)
145 {
146 $this->addHash($options);
147 return $this;
148 }
149
150 /**
151 * Defined by Zend_Validate_Interface
152 *
153 * Returns true if and only if the given file confirms the set hash
154 *
155 * @param string $value Filename to check for hash
156 * @param array $file File data from Zend_File_Transfer
157 * @return boolean
158 */
159 public function isValid($value, $file = null)
160 {
161 // Is file readable ?
162 // require_once 'Zend/Loader.php';
163 if (!Zend_Loader::isReadable($value)) {
164 return $this->_throw($file, self::NOT_FOUND);
165 }
166
167 $hashes = array_unique(array_keys($this->_hash));
168 $filehash = hash_file('sha1', $value);
169 if ($filehash === false) {
170 return $this->_throw($file, self::NOT_DETECTED);
171 }
172
173 foreach ($hashes as $hash) {
174 if ($filehash === $hash) {
175 return true;
176 }
177 }
178
179 return $this->_throw($file, self::DOES_NOT_MATCH);
180 }
181 }
182