@@ -26,11 +26,11 @@ |
||
26 | 26 | { |
27 | 27 | switch (strtolower($this->format)) |
28 | 28 | { |
29 | - case 'p': |
|
29 | + case 'p': |
|
30 | 30 | return 'image/png'; |
31 | - case 'g': |
|
31 | + case 'g': |
|
32 | 32 | return 'image/gif'; |
33 | - case 'j': |
|
33 | + case 'j': |
|
34 | 34 | return 'image/jpeg'; |
35 | 35 | } |
36 | 36 | throw new QRException(sprintf('Unknown MIME-type: %s', $this->format)); |
@@ -1,15 +1,15 @@ discard block |
||
1 | 1 | <?php |
2 | - /** |
|
3 | - * Class for verifying Yubico One-Time-Passcodes |
|
4 | - * |
|
5 | - * @category Auth |
|
6 | - * @package Auth_Yubico |
|
7 | - * @author Simon Josefsson <[email protected]>, Olov Danielson <[email protected]> |
|
8 | - * @copyright 2007-2015 Yubico AB |
|
9 | - * @license http://opensource.org/licenses/bsd-license.php New BSD License |
|
10 | - * @version 2.0 |
|
11 | - * @link http://www.yubico.com/ |
|
12 | - */ |
|
2 | + /** |
|
3 | + * Class for verifying Yubico One-Time-Passcodes |
|
4 | + * |
|
5 | + * @category Auth |
|
6 | + * @package Auth_Yubico |
|
7 | + * @author Simon Josefsson <[email protected]>, Olov Danielson <[email protected]> |
|
8 | + * @copyright 2007-2015 Yubico AB |
|
9 | + * @license http://opensource.org/licenses/bsd-license.php New BSD License |
|
10 | + * @version 2.0 |
|
11 | + * @link http://www.yubico.com/ |
|
12 | + */ |
|
13 | 13 | |
14 | 14 | require_once 'PEAR.php'; |
15 | 15 | |
@@ -34,340 +34,340 @@ discard block |
||
34 | 34 | */ |
35 | 35 | class Auth_Yubico |
36 | 36 | { |
37 | - /**#@+ |
|
37 | + /**#@+ |
|
38 | 38 | * @access private |
39 | 39 | */ |
40 | 40 | |
41 | - /** |
|
42 | - * Yubico client ID |
|
43 | - * @var string |
|
44 | - */ |
|
45 | - var $_id; |
|
46 | - |
|
47 | - /** |
|
48 | - * Yubico client key |
|
49 | - * @var string |
|
50 | - */ |
|
51 | - var $_key; |
|
52 | - |
|
53 | - /** |
|
54 | - * URL part of validation server |
|
55 | - * @var string |
|
56 | - */ |
|
57 | - var $_url; |
|
58 | - |
|
59 | - /** |
|
60 | - * List with URL part of validation servers |
|
61 | - * @var array |
|
62 | - */ |
|
63 | - var $_url_list; |
|
64 | - |
|
65 | - /** |
|
66 | - * index to _url_list |
|
67 | - * @var int |
|
68 | - */ |
|
69 | - var $_url_index; |
|
70 | - |
|
71 | - /** |
|
72 | - * Last query to server |
|
73 | - * @var string |
|
74 | - */ |
|
75 | - var $_lastquery; |
|
76 | - |
|
77 | - /** |
|
78 | - * Response from server |
|
79 | - * @var string |
|
80 | - */ |
|
81 | - var $_response; |
|
82 | - |
|
83 | - /** |
|
84 | - * Flag whether to use https or not. |
|
85 | - * @var boolean |
|
86 | - */ |
|
87 | - var $_https; |
|
88 | - |
|
89 | - /** |
|
90 | - * Flag whether to verify HTTPS server certificates or not. |
|
91 | - * @var boolean |
|
92 | - */ |
|
93 | - var $_httpsverify; |
|
94 | - |
|
95 | - /** |
|
96 | - * Constructor |
|
97 | - * |
|
98 | - * Sets up the object |
|
99 | - * @param string $id The client identity |
|
100 | - * @param string $key The client MAC key (optional) |
|
101 | - * @param boolean $https Flag whether to use https (optional) |
|
102 | - * @param boolean $httpsverify Flag whether to use verify HTTPS |
|
103 | - * server certificates (optional, |
|
104 | - * default true) |
|
105 | - * @access public |
|
106 | - */ |
|
107 | - public function __construct($id, $key = '', $https = 0, $httpsverify = 1) |
|
108 | - { |
|
109 | - $this->_id = $id; |
|
110 | - $this->_key = base64_decode($key); |
|
111 | - $this->_https = $https; |
|
112 | - $this->_httpsverify = $httpsverify; |
|
113 | - } |
|
114 | - |
|
115 | - /** |
|
116 | - * Specify to use a different URL part for verification. |
|
117 | - * The default is "api.yubico.com/wsapi/verify". |
|
118 | - * |
|
119 | - * @param string $url New server URL part to use |
|
120 | - * @access public |
|
121 | - */ |
|
122 | - function setURLpart($url) |
|
123 | - { |
|
124 | - $this->_url = $url; |
|
125 | - } |
|
126 | - |
|
127 | - /** |
|
128 | - * Get URL part to use for validation. |
|
129 | - * |
|
130 | - * @return string Server URL part |
|
131 | - * @access public |
|
132 | - */ |
|
133 | - function getURLpart() |
|
134 | - { |
|
135 | - if ($this->_url) { |
|
136 | - return $this->_url; |
|
137 | - } else { |
|
138 | - return "api.yubico.com/wsapi/verify"; |
|
139 | - } |
|
140 | - } |
|
141 | - |
|
142 | - |
|
143 | - /** |
|
144 | - * Get next URL part from list to use for validation. |
|
145 | - * |
|
146 | - * @return mixed string with URL part of false if no more URLs in list |
|
147 | - * @access public |
|
148 | - */ |
|
149 | - function getNextURLpart() |
|
150 | - { |
|
151 | - if ($this->_url_list) $url_list=$this->_url_list; |
|
152 | - else $url_list=array('api.yubico.com/wsapi/2.0/verify', |
|
153 | - 'api2.yubico.com/wsapi/2.0/verify', |
|
154 | - 'api3.yubico.com/wsapi/2.0/verify', |
|
155 | - 'api4.yubico.com/wsapi/2.0/verify', |
|
156 | - 'api5.yubico.com/wsapi/2.0/verify'); |
|
41 | + /** |
|
42 | + * Yubico client ID |
|
43 | + * @var string |
|
44 | + */ |
|
45 | + var $_id; |
|
46 | + |
|
47 | + /** |
|
48 | + * Yubico client key |
|
49 | + * @var string |
|
50 | + */ |
|
51 | + var $_key; |
|
52 | + |
|
53 | + /** |
|
54 | + * URL part of validation server |
|
55 | + * @var string |
|
56 | + */ |
|
57 | + var $_url; |
|
58 | + |
|
59 | + /** |
|
60 | + * List with URL part of validation servers |
|
61 | + * @var array |
|
62 | + */ |
|
63 | + var $_url_list; |
|
64 | + |
|
65 | + /** |
|
66 | + * index to _url_list |
|
67 | + * @var int |
|
68 | + */ |
|
69 | + var $_url_index; |
|
70 | + |
|
71 | + /** |
|
72 | + * Last query to server |
|
73 | + * @var string |
|
74 | + */ |
|
75 | + var $_lastquery; |
|
76 | + |
|
77 | + /** |
|
78 | + * Response from server |
|
79 | + * @var string |
|
80 | + */ |
|
81 | + var $_response; |
|
82 | + |
|
83 | + /** |
|
84 | + * Flag whether to use https or not. |
|
85 | + * @var boolean |
|
86 | + */ |
|
87 | + var $_https; |
|
88 | + |
|
89 | + /** |
|
90 | + * Flag whether to verify HTTPS server certificates or not. |
|
91 | + * @var boolean |
|
92 | + */ |
|
93 | + var $_httpsverify; |
|
94 | + |
|
95 | + /** |
|
96 | + * Constructor |
|
97 | + * |
|
98 | + * Sets up the object |
|
99 | + * @param string $id The client identity |
|
100 | + * @param string $key The client MAC key (optional) |
|
101 | + * @param boolean $https Flag whether to use https (optional) |
|
102 | + * @param boolean $httpsverify Flag whether to use verify HTTPS |
|
103 | + * server certificates (optional, |
|
104 | + * default true) |
|
105 | + * @access public |
|
106 | + */ |
|
107 | + public function __construct($id, $key = '', $https = 0, $httpsverify = 1) |
|
108 | + { |
|
109 | + $this->_id = $id; |
|
110 | + $this->_key = base64_decode($key); |
|
111 | + $this->_https = $https; |
|
112 | + $this->_httpsverify = $httpsverify; |
|
113 | + } |
|
114 | + |
|
115 | + /** |
|
116 | + * Specify to use a different URL part for verification. |
|
117 | + * The default is "api.yubico.com/wsapi/verify". |
|
118 | + * |
|
119 | + * @param string $url New server URL part to use |
|
120 | + * @access public |
|
121 | + */ |
|
122 | + function setURLpart($url) |
|
123 | + { |
|
124 | + $this->_url = $url; |
|
125 | + } |
|
126 | + |
|
127 | + /** |
|
128 | + * Get URL part to use for validation. |
|
129 | + * |
|
130 | + * @return string Server URL part |
|
131 | + * @access public |
|
132 | + */ |
|
133 | + function getURLpart() |
|
134 | + { |
|
135 | + if ($this->_url) { |
|
136 | + return $this->_url; |
|
137 | + } else { |
|
138 | + return "api.yubico.com/wsapi/verify"; |
|
139 | + } |
|
140 | + } |
|
141 | + |
|
142 | + |
|
143 | + /** |
|
144 | + * Get next URL part from list to use for validation. |
|
145 | + * |
|
146 | + * @return mixed string with URL part of false if no more URLs in list |
|
147 | + * @access public |
|
148 | + */ |
|
149 | + function getNextURLpart() |
|
150 | + { |
|
151 | + if ($this->_url_list) $url_list=$this->_url_list; |
|
152 | + else $url_list=array('api.yubico.com/wsapi/2.0/verify', |
|
153 | + 'api2.yubico.com/wsapi/2.0/verify', |
|
154 | + 'api3.yubico.com/wsapi/2.0/verify', |
|
155 | + 'api4.yubico.com/wsapi/2.0/verify', |
|
156 | + 'api5.yubico.com/wsapi/2.0/verify'); |
|
157 | 157 | |
158 | - if ($this->_url_index>=count($url_list)) return false; |
|
159 | - else return $url_list[$this->_url_index++]; |
|
160 | - } |
|
161 | - |
|
162 | - /** |
|
163 | - * Resets index to URL list |
|
164 | - * |
|
165 | - * @access public |
|
166 | - */ |
|
167 | - function URLreset() |
|
168 | - { |
|
169 | - $this->_url_index=0; |
|
170 | - } |
|
171 | - |
|
172 | - /** |
|
173 | - * Add another URLpart. |
|
174 | - * |
|
175 | - * @access public |
|
176 | - */ |
|
177 | - function addURLpart($URLpart) |
|
178 | - { |
|
179 | - $this->_url_list[]=$URLpart; |
|
180 | - } |
|
158 | + if ($this->_url_index>=count($url_list)) return false; |
|
159 | + else return $url_list[$this->_url_index++]; |
|
160 | + } |
|
161 | + |
|
162 | + /** |
|
163 | + * Resets index to URL list |
|
164 | + * |
|
165 | + * @access public |
|
166 | + */ |
|
167 | + function URLreset() |
|
168 | + { |
|
169 | + $this->_url_index=0; |
|
170 | + } |
|
171 | + |
|
172 | + /** |
|
173 | + * Add another URLpart. |
|
174 | + * |
|
175 | + * @access public |
|
176 | + */ |
|
177 | + function addURLpart($URLpart) |
|
178 | + { |
|
179 | + $this->_url_list[]=$URLpart; |
|
180 | + } |
|
181 | 181 | |
182 | - /** |
|
183 | - * Return the last query sent to the server, if any. |
|
184 | - * |
|
185 | - * @return string Request to server |
|
186 | - * @access public |
|
187 | - */ |
|
188 | - function getLastQuery() |
|
189 | - { |
|
190 | - return $this->_lastquery; |
|
191 | - } |
|
192 | - |
|
193 | - /** |
|
194 | - * Return the last data received from the server, if any. |
|
195 | - * |
|
196 | - * @return string Output from server |
|
197 | - * @access public |
|
198 | - */ |
|
199 | - function getLastResponse() |
|
200 | - { |
|
201 | - return $this->_response; |
|
202 | - } |
|
203 | - |
|
204 | - /** |
|
205 | - * Parse input string into password, yubikey prefix, |
|
206 | - * ciphertext, and OTP. |
|
207 | - * |
|
208 | - * @param string Input string to parse |
|
209 | - * @param string Optional delimiter re-class, default is '[:]' |
|
210 | - * @return array Keyed array with fields |
|
211 | - * @access public |
|
212 | - */ |
|
213 | - function parsePasswordOTP($str, $delim = '[:]') |
|
214 | - { |
|
215 | - if (!preg_match("/^((.*)" . $delim . ")?" . |
|
216 | - "(([cbdefghijklnrtuv]{0,16})" . |
|
217 | - "([cbdefghijklnrtuv]{32}))$/i", |
|
218 | - $str, $matches)) { |
|
219 | - /* Dvorak? */ |
|
220 | - if (!preg_match("/^((.*)" . $delim . ")?" . |
|
221 | - "(([jxe\.uidchtnbpygk]{0,16})" . |
|
222 | - "([jxe\.uidchtnbpygk]{32}))$/i", |
|
223 | - $str, $matches)) { |
|
224 | - return false; |
|
225 | - } else { |
|
226 | - $ret['otp'] = strtr($matches[3], "jxe.uidchtnbpygk", "cbdefghijklnrtuv"); |
|
227 | - } |
|
228 | - } else { |
|
229 | - $ret['otp'] = $matches[3]; |
|
230 | - } |
|
231 | - $ret['password'] = $matches[2]; |
|
232 | - $ret['prefix'] = $matches[4]; |
|
233 | - $ret['ciphertext'] = $matches[5]; |
|
234 | - return $ret; |
|
235 | - } |
|
236 | - |
|
237 | - /* TODO? Add functions to get parsed parts of server response? */ |
|
238 | - |
|
239 | - /** |
|
240 | - * Parse parameters from last response |
|
241 | - * |
|
242 | - * example: getParameters("timestamp", "sessioncounter", "sessionuse"); |
|
243 | - * |
|
244 | - * @param array @parameters Array with strings representing |
|
245 | - * parameters to parse |
|
246 | - * @return array parameter array from last response |
|
247 | - * @access public |
|
248 | - */ |
|
249 | - function getParameters($parameters) |
|
250 | - { |
|
251 | - if ($parameters == null) { |
|
252 | - $parameters = array('timestamp', 'sessioncounter', 'sessionuse'); |
|
253 | - } |
|
254 | - $param_array = array(); |
|
255 | - foreach ($parameters as $param) { |
|
256 | - if(!preg_match("/" . $param . "=([0-9]+)/", $this->_response, $out)) { |
|
257 | - return PEAR::raiseError('Could not parse parameter ' . $param . ' from response'); |
|
258 | - } |
|
259 | - $param_array[$param]=$out[1]; |
|
260 | - } |
|
261 | - return $param_array; |
|
262 | - } |
|
263 | - |
|
264 | - /** |
|
265 | - * Verify Yubico OTP against multiple URLs |
|
266 | - * Protocol specification 2.0 is used to construct validation requests |
|
267 | - * |
|
268 | - * @param string $token Yubico OTP |
|
269 | - * @param int $use_timestamp 1=>send request with ×tamp=1 to |
|
270 | - * get timestamp and session information |
|
271 | - * in the response |
|
272 | - * @param boolean $wait_for_all If true, wait until all |
|
273 | - * servers responds (for debugging) |
|
274 | - * @param string $sl Sync level in percentage between 0 |
|
275 | - * and 100 or "fast" or "secure". |
|
276 | - * @param int $timeout Max number of seconds to wait |
|
277 | - * for responses |
|
278 | - * @return mixed PEAR error on error, true otherwise |
|
279 | - * @access public |
|
280 | - */ |
|
281 | - function verify($token, $use_timestamp=null, $wait_for_all=False, |
|
282 | - $sl=null, $timeout=null) |
|
283 | - { |
|
284 | - /* Construct parameters string */ |
|
285 | - $ret = $this->parsePasswordOTP($token); |
|
286 | - if (!$ret) { |
|
287 | - return PEAR::raiseError('Could not parse Yubikey OTP'); |
|
288 | - } |
|
289 | - $params = array('id'=>$this->_id, |
|
290 | - 'otp'=>$ret['otp'], |
|
291 | - 'nonce'=>md5(uniqid(rand()))); |
|
292 | - /* Take care of protocol version 2 parameters */ |
|
293 | - if ($use_timestamp) $params['timestamp'] = 1; |
|
294 | - if ($sl) $params['sl'] = $sl; |
|
295 | - if ($timeout) $params['timeout'] = $timeout; |
|
296 | - ksort($params); |
|
297 | - $parameters = ''; |
|
298 | - foreach($params as $p=>$v) $parameters .= "&" . $p . "=" . $v; |
|
299 | - $parameters = ltrim($parameters, "&"); |
|
182 | + /** |
|
183 | + * Return the last query sent to the server, if any. |
|
184 | + * |
|
185 | + * @return string Request to server |
|
186 | + * @access public |
|
187 | + */ |
|
188 | + function getLastQuery() |
|
189 | + { |
|
190 | + return $this->_lastquery; |
|
191 | + } |
|
192 | + |
|
193 | + /** |
|
194 | + * Return the last data received from the server, if any. |
|
195 | + * |
|
196 | + * @return string Output from server |
|
197 | + * @access public |
|
198 | + */ |
|
199 | + function getLastResponse() |
|
200 | + { |
|
201 | + return $this->_response; |
|
202 | + } |
|
203 | + |
|
204 | + /** |
|
205 | + * Parse input string into password, yubikey prefix, |
|
206 | + * ciphertext, and OTP. |
|
207 | + * |
|
208 | + * @param string Input string to parse |
|
209 | + * @param string Optional delimiter re-class, default is '[:]' |
|
210 | + * @return array Keyed array with fields |
|
211 | + * @access public |
|
212 | + */ |
|
213 | + function parsePasswordOTP($str, $delim = '[:]') |
|
214 | + { |
|
215 | + if (!preg_match("/^((.*)" . $delim . ")?" . |
|
216 | + "(([cbdefghijklnrtuv]{0,16})" . |
|
217 | + "([cbdefghijklnrtuv]{32}))$/i", |
|
218 | + $str, $matches)) { |
|
219 | + /* Dvorak? */ |
|
220 | + if (!preg_match("/^((.*)" . $delim . ")?" . |
|
221 | + "(([jxe\.uidchtnbpygk]{0,16})" . |
|
222 | + "([jxe\.uidchtnbpygk]{32}))$/i", |
|
223 | + $str, $matches)) { |
|
224 | + return false; |
|
225 | + } else { |
|
226 | + $ret['otp'] = strtr($matches[3], "jxe.uidchtnbpygk", "cbdefghijklnrtuv"); |
|
227 | + } |
|
228 | + } else { |
|
229 | + $ret['otp'] = $matches[3]; |
|
230 | + } |
|
231 | + $ret['password'] = $matches[2]; |
|
232 | + $ret['prefix'] = $matches[4]; |
|
233 | + $ret['ciphertext'] = $matches[5]; |
|
234 | + return $ret; |
|
235 | + } |
|
236 | + |
|
237 | + /* TODO? Add functions to get parsed parts of server response? */ |
|
238 | + |
|
239 | + /** |
|
240 | + * Parse parameters from last response |
|
241 | + * |
|
242 | + * example: getParameters("timestamp", "sessioncounter", "sessionuse"); |
|
243 | + * |
|
244 | + * @param array @parameters Array with strings representing |
|
245 | + * parameters to parse |
|
246 | + * @return array parameter array from last response |
|
247 | + * @access public |
|
248 | + */ |
|
249 | + function getParameters($parameters) |
|
250 | + { |
|
251 | + if ($parameters == null) { |
|
252 | + $parameters = array('timestamp', 'sessioncounter', 'sessionuse'); |
|
253 | + } |
|
254 | + $param_array = array(); |
|
255 | + foreach ($parameters as $param) { |
|
256 | + if(!preg_match("/" . $param . "=([0-9]+)/", $this->_response, $out)) { |
|
257 | + return PEAR::raiseError('Could not parse parameter ' . $param . ' from response'); |
|
258 | + } |
|
259 | + $param_array[$param]=$out[1]; |
|
260 | + } |
|
261 | + return $param_array; |
|
262 | + } |
|
263 | + |
|
264 | + /** |
|
265 | + * Verify Yubico OTP against multiple URLs |
|
266 | + * Protocol specification 2.0 is used to construct validation requests |
|
267 | + * |
|
268 | + * @param string $token Yubico OTP |
|
269 | + * @param int $use_timestamp 1=>send request with ×tamp=1 to |
|
270 | + * get timestamp and session information |
|
271 | + * in the response |
|
272 | + * @param boolean $wait_for_all If true, wait until all |
|
273 | + * servers responds (for debugging) |
|
274 | + * @param string $sl Sync level in percentage between 0 |
|
275 | + * and 100 or "fast" or "secure". |
|
276 | + * @param int $timeout Max number of seconds to wait |
|
277 | + * for responses |
|
278 | + * @return mixed PEAR error on error, true otherwise |
|
279 | + * @access public |
|
280 | + */ |
|
281 | + function verify($token, $use_timestamp=null, $wait_for_all=False, |
|
282 | + $sl=null, $timeout=null) |
|
283 | + { |
|
284 | + /* Construct parameters string */ |
|
285 | + $ret = $this->parsePasswordOTP($token); |
|
286 | + if (!$ret) { |
|
287 | + return PEAR::raiseError('Could not parse Yubikey OTP'); |
|
288 | + } |
|
289 | + $params = array('id'=>$this->_id, |
|
290 | + 'otp'=>$ret['otp'], |
|
291 | + 'nonce'=>md5(uniqid(rand()))); |
|
292 | + /* Take care of protocol version 2 parameters */ |
|
293 | + if ($use_timestamp) $params['timestamp'] = 1; |
|
294 | + if ($sl) $params['sl'] = $sl; |
|
295 | + if ($timeout) $params['timeout'] = $timeout; |
|
296 | + ksort($params); |
|
297 | + $parameters = ''; |
|
298 | + foreach($params as $p=>$v) $parameters .= "&" . $p . "=" . $v; |
|
299 | + $parameters = ltrim($parameters, "&"); |
|
300 | 300 | |
301 | - /* Generate signature. */ |
|
302 | - if($this->_key <> "") { |
|
303 | - $signature = base64_encode(hash_hmac('sha1', $parameters, |
|
304 | - $this->_key, true)); |
|
305 | - $signature = preg_replace('/\+/', '%2B', $signature); |
|
306 | - $parameters .= '&h=' . $signature; |
|
307 | - } |
|
308 | - |
|
309 | - /* Generate and prepare request. */ |
|
310 | - $this->_lastquery=null; |
|
311 | - $this->URLreset(); |
|
312 | - $mh = curl_multi_init(); |
|
313 | - $ch = array(); |
|
314 | - while($URLpart=$this->getNextURLpart()) |
|
315 | - { |
|
316 | - /* Support https. */ |
|
317 | - if ($this->_https) { |
|
318 | - $query = "https://"; |
|
319 | - } else { |
|
320 | - $query = "http://"; |
|
321 | - } |
|
322 | - $query .= $URLpart . "?" . $parameters; |
|
323 | - |
|
324 | - if ($this->_lastquery) { $this->_lastquery .= " "; } |
|
325 | - $this->_lastquery .= $query; |
|
301 | + /* Generate signature. */ |
|
302 | + if($this->_key <> "") { |
|
303 | + $signature = base64_encode(hash_hmac('sha1', $parameters, |
|
304 | + $this->_key, true)); |
|
305 | + $signature = preg_replace('/\+/', '%2B', $signature); |
|
306 | + $parameters .= '&h=' . $signature; |
|
307 | + } |
|
308 | + |
|
309 | + /* Generate and prepare request. */ |
|
310 | + $this->_lastquery=null; |
|
311 | + $this->URLreset(); |
|
312 | + $mh = curl_multi_init(); |
|
313 | + $ch = array(); |
|
314 | + while($URLpart=$this->getNextURLpart()) |
|
315 | + { |
|
316 | + /* Support https. */ |
|
317 | + if ($this->_https) { |
|
318 | + $query = "https://"; |
|
319 | + } else { |
|
320 | + $query = "http://"; |
|
321 | + } |
|
322 | + $query .= $URLpart . "?" . $parameters; |
|
323 | + |
|
324 | + if ($this->_lastquery) { $this->_lastquery .= " "; } |
|
325 | + $this->_lastquery .= $query; |
|
326 | 326 | |
327 | - $handle = curl_init($query); |
|
328 | - curl_setopt($handle, CURLOPT_USERAGENT, "PEAR Auth_Yubico"); |
|
329 | - curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1); |
|
330 | - if (!$this->_httpsverify) { |
|
331 | - curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, 0); |
|
332 | - curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, 0); |
|
333 | - } |
|
334 | - curl_setopt($handle, CURLOPT_FAILONERROR, true); |
|
335 | - /* If timeout is set, we better apply it here as well |
|
327 | + $handle = curl_init($query); |
|
328 | + curl_setopt($handle, CURLOPT_USERAGENT, "PEAR Auth_Yubico"); |
|
329 | + curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1); |
|
330 | + if (!$this->_httpsverify) { |
|
331 | + curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, 0); |
|
332 | + curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, 0); |
|
333 | + } |
|
334 | + curl_setopt($handle, CURLOPT_FAILONERROR, true); |
|
335 | + /* If timeout is set, we better apply it here as well |
|
336 | 336 | in case the validation server fails to follow it. |
337 | 337 | */ |
338 | - if ($timeout) curl_setopt($handle, CURLOPT_TIMEOUT, $timeout); |
|
339 | - curl_multi_add_handle($mh, $handle); |
|
338 | + if ($timeout) curl_setopt($handle, CURLOPT_TIMEOUT, $timeout); |
|
339 | + curl_multi_add_handle($mh, $handle); |
|
340 | 340 | |
341 | - $ch[(int)$handle] = $handle; |
|
342 | - } |
|
343 | - |
|
344 | - /* Execute and read request. */ |
|
345 | - $this->_response=null; |
|
346 | - $replay=False; |
|
347 | - $valid=False; |
|
348 | - do { |
|
349 | - /* Let curl do its work. */ |
|
350 | - while (($mrc = curl_multi_exec($mh, $active)) |
|
351 | - == CURLM_CALL_MULTI_PERFORM) |
|
352 | - ; |
|
353 | - |
|
354 | - while ($info = curl_multi_info_read($mh)) { |
|
355 | - if ($info['result'] == CURLE_OK) { |
|
356 | - |
|
357 | - /* We have a complete response from one server. */ |
|
358 | - |
|
359 | - $str = curl_multi_getcontent($info['handle']); |
|
360 | - $cinfo = curl_getinfo ($info['handle']); |
|
341 | + $ch[(int)$handle] = $handle; |
|
342 | + } |
|
343 | + |
|
344 | + /* Execute and read request. */ |
|
345 | + $this->_response=null; |
|
346 | + $replay=False; |
|
347 | + $valid=False; |
|
348 | + do { |
|
349 | + /* Let curl do its work. */ |
|
350 | + while (($mrc = curl_multi_exec($mh, $active)) |
|
351 | + == CURLM_CALL_MULTI_PERFORM) |
|
352 | + ; |
|
353 | + |
|
354 | + while ($info = curl_multi_info_read($mh)) { |
|
355 | + if ($info['result'] == CURLE_OK) { |
|
356 | + |
|
357 | + /* We have a complete response from one server. */ |
|
358 | + |
|
359 | + $str = curl_multi_getcontent($info['handle']); |
|
360 | + $cinfo = curl_getinfo ($info['handle']); |
|
361 | 361 | |
362 | - if ($wait_for_all) { # Better debug info |
|
363 | - $this->_response .= 'URL=' . $cinfo['url'] ."\n" |
|
364 | - . $str . "\n"; |
|
365 | - } |
|
362 | + if ($wait_for_all) { # Better debug info |
|
363 | + $this->_response .= 'URL=' . $cinfo['url'] ."\n" |
|
364 | + . $str . "\n"; |
|
365 | + } |
|
366 | 366 | |
367 | - if (preg_match("/status=([a-zA-Z0-9_]+)/", $str, $out)) { |
|
368 | - $status = $out[1]; |
|
367 | + if (preg_match("/status=([a-zA-Z0-9_]+)/", $str, $out)) { |
|
368 | + $status = $out[1]; |
|
369 | 369 | |
370 | - /* |
|
370 | + /* |
|
371 | 371 | * There are 3 cases. |
372 | 372 | * |
373 | 373 | * 1. OTP or Nonce values doesn't match - ignore |
@@ -379,92 +379,92 @@ discard block |
||
379 | 379 | * |
380 | 380 | * 3. Return if status=OK or status=REPLAYED_OTP. |
381 | 381 | */ |
382 | - if (!preg_match("/otp=".$params['otp']."/", $str) || |
|
383 | - !preg_match("/nonce=".$params['nonce']."/", $str)) { |
|
384 | - /* Case 1. Ignore response. */ |
|
385 | - } |
|
386 | - elseif ($this->_key <> "") { |
|
387 | - /* Case 2. Verify signature first */ |
|
388 | - $rows = explode("\r\n", trim($str)); |
|
389 | - $response=array(); |
|
390 | - while (list($key, $val) = each($rows)) { |
|
391 | - /* = is also used in BASE64 encoding so we only replace the first = by # which is not used in BASE64 */ |
|
392 | - $val = preg_replace('/=/', '#', $val, 1); |
|
393 | - $row = explode("#", $val); |
|
394 | - $response[$row[0]] = $row[1]; |
|
395 | - } |
|
382 | + if (!preg_match("/otp=".$params['otp']."/", $str) || |
|
383 | + !preg_match("/nonce=".$params['nonce']."/", $str)) { |
|
384 | + /* Case 1. Ignore response. */ |
|
385 | + } |
|
386 | + elseif ($this->_key <> "") { |
|
387 | + /* Case 2. Verify signature first */ |
|
388 | + $rows = explode("\r\n", trim($str)); |
|
389 | + $response=array(); |
|
390 | + while (list($key, $val) = each($rows)) { |
|
391 | + /* = is also used in BASE64 encoding so we only replace the first = by # which is not used in BASE64 */ |
|
392 | + $val = preg_replace('/=/', '#', $val, 1); |
|
393 | + $row = explode("#", $val); |
|
394 | + $response[$row[0]] = $row[1]; |
|
395 | + } |
|
396 | 396 | |
397 | - $parameters=array('nonce','otp', 'sessioncounter', 'sessionuse', 'sl', 'status', 't', 'timeout', 'timestamp'); |
|
398 | - sort($parameters); |
|
399 | - $check=Null; |
|
400 | - foreach ($parameters as $param) { |
|
401 | - if (array_key_exists($param, $response)) { |
|
402 | - if ($check) $check = $check . '&'; |
|
403 | - $check = $check . $param . '=' . $response[$param]; |
|
404 | - } |
|
405 | - } |
|
406 | - |
|
407 | - $checksignature = |
|
408 | - base64_encode(hash_hmac('sha1', utf8_encode($check), |
|
409 | - $this->_key, true)); |
|
410 | - |
|
411 | - if($response['h'] == $checksignature) { |
|
412 | - if ($status == 'REPLAYED_OTP') { |
|
413 | - if (!$wait_for_all) { $this->_response = $str; } |
|
414 | - $replay=True; |
|
415 | - } |
|
416 | - if ($status == 'OK') { |
|
417 | - if (!$wait_for_all) { $this->_response = $str; } |
|
418 | - $valid=True; |
|
419 | - } |
|
420 | - } |
|
421 | - } else { |
|
422 | - /* Case 3. We check the status directly */ |
|
423 | - if ($status == 'REPLAYED_OTP') { |
|
424 | - if (!$wait_for_all) { $this->_response = $str; } |
|
425 | - $replay=True; |
|
426 | - } |
|
427 | - if ($status == 'OK') { |
|
428 | - if (!$wait_for_all) { $this->_response = $str; } |
|
429 | - $valid=True; |
|
430 | - } |
|
431 | - } |
|
432 | - } |
|
433 | - if (!$wait_for_all && ($valid || $replay)) |
|
434 | - { |
|
435 | - /* We have status=OK or status=REPLAYED_OTP, return. */ |
|
436 | - foreach ($ch as $h) { |
|
437 | - curl_multi_remove_handle($mh, $h); |
|
438 | - curl_close($h); |
|
439 | - } |
|
440 | - curl_multi_close($mh); |
|
441 | - if ($replay) return PEAR::raiseError('REPLAYED_OTP'); |
|
442 | - if ($valid) return true; |
|
443 | - return PEAR::raiseError($status); |
|
444 | - } |
|
397 | + $parameters=array('nonce','otp', 'sessioncounter', 'sessionuse', 'sl', 'status', 't', 'timeout', 'timestamp'); |
|
398 | + sort($parameters); |
|
399 | + $check=Null; |
|
400 | + foreach ($parameters as $param) { |
|
401 | + if (array_key_exists($param, $response)) { |
|
402 | + if ($check) $check = $check . '&'; |
|
403 | + $check = $check . $param . '=' . $response[$param]; |
|
404 | + } |
|
405 | + } |
|
406 | + |
|
407 | + $checksignature = |
|
408 | + base64_encode(hash_hmac('sha1', utf8_encode($check), |
|
409 | + $this->_key, true)); |
|
410 | + |
|
411 | + if($response['h'] == $checksignature) { |
|
412 | + if ($status == 'REPLAYED_OTP') { |
|
413 | + if (!$wait_for_all) { $this->_response = $str; } |
|
414 | + $replay=True; |
|
415 | + } |
|
416 | + if ($status == 'OK') { |
|
417 | + if (!$wait_for_all) { $this->_response = $str; } |
|
418 | + $valid=True; |
|
419 | + } |
|
420 | + } |
|
421 | + } else { |
|
422 | + /* Case 3. We check the status directly */ |
|
423 | + if ($status == 'REPLAYED_OTP') { |
|
424 | + if (!$wait_for_all) { $this->_response = $str; } |
|
425 | + $replay=True; |
|
426 | + } |
|
427 | + if ($status == 'OK') { |
|
428 | + if (!$wait_for_all) { $this->_response = $str; } |
|
429 | + $valid=True; |
|
430 | + } |
|
431 | + } |
|
432 | + } |
|
433 | + if (!$wait_for_all && ($valid || $replay)) |
|
434 | + { |
|
435 | + /* We have status=OK or status=REPLAYED_OTP, return. */ |
|
436 | + foreach ($ch as $h) { |
|
437 | + curl_multi_remove_handle($mh, $h); |
|
438 | + curl_close($h); |
|
439 | + } |
|
440 | + curl_multi_close($mh); |
|
441 | + if ($replay) return PEAR::raiseError('REPLAYED_OTP'); |
|
442 | + if ($valid) return true; |
|
443 | + return PEAR::raiseError($status); |
|
444 | + } |
|
445 | 445 | |
446 | - curl_multi_remove_handle($mh, $info['handle']); |
|
447 | - curl_close($info['handle']); |
|
448 | - unset ($ch[(int)$info['handle']]); |
|
449 | - } |
|
450 | - curl_multi_select($mh); |
|
451 | - } |
|
452 | - } while ($active); |
|
453 | - |
|
454 | - /* Typically this is only reached for wait_for_all=true or |
|
446 | + curl_multi_remove_handle($mh, $info['handle']); |
|
447 | + curl_close($info['handle']); |
|
448 | + unset ($ch[(int)$info['handle']]); |
|
449 | + } |
|
450 | + curl_multi_select($mh); |
|
451 | + } |
|
452 | + } while ($active); |
|
453 | + |
|
454 | + /* Typically this is only reached for wait_for_all=true or |
|
455 | 455 | * when the timeout is reached and there is no |
456 | 456 | * OK/REPLAYED_REQUEST answer (think firewall). |
457 | 457 | */ |
458 | 458 | |
459 | - foreach ($ch as $h) { |
|
460 | - curl_multi_remove_handle ($mh, $h); |
|
461 | - curl_close ($h); |
|
462 | - } |
|
463 | - curl_multi_close ($mh); |
|
459 | + foreach ($ch as $h) { |
|
460 | + curl_multi_remove_handle ($mh, $h); |
|
461 | + curl_close ($h); |
|
462 | + } |
|
463 | + curl_multi_close ($mh); |
|
464 | 464 | |
465 | - if ($replay) return PEAR::raiseError('REPLAYED_OTP'); |
|
466 | - if ($valid) return true; |
|
467 | - return PEAR::raiseError('NO_VALID_ANSWER'); |
|
468 | - } |
|
465 | + if ($replay) return PEAR::raiseError('REPLAYED_OTP'); |
|
466 | + if ($valid) return true; |
|
467 | + return PEAR::raiseError('NO_VALID_ANSWER'); |
|
468 | + } |
|
469 | 469 | } |
470 | 470 | ?> |
@@ -2,448 +2,448 @@ |
||
2 | 2 | |
3 | 3 | class AXSErrorcodes { |
4 | 4 | |
5 | - // Global Integer Return Values used in all methods that return Integers |
|
6 | - // and are called from the outside world (webservices, etc.) |
|
7 | - // List of returnvalue ranges: |
|
8 | - // x > 0 : Positive Result (true with more infos (depending on application) |
|
9 | - // x == 0 : Default FALSE |
|
10 | - // x < 0 : Negative Result (normally false, but with more infos) |
|
11 | - // x == -100 : No Active Message found |
|
12 | - // x == -1000 : Internal Server Error, see server log for details (should not happen) |
|
13 | - // x < -1000 : ERROR values |
|
14 | - |
|
15 | - /** |
|
16 | - * Extract the error code contained in an ERROR string and return the code |
|
17 | - * @param message ERROR String received from AXS web service |
|
18 | - * @return error code found in ERROR message or -10000 if no error code could be found |
|
19 | - */ |
|
20 | - function getErrorcode($message) { |
|
21 | - $errorcode = -10000; |
|
22 | - if (($begin = strpos($message, "ERROR (")) === FALSE) |
|
23 | - $begin = -1; |
|
24 | - if (($end = strpos($message, ")")) === FALSE) |
|
25 | - $end = -1; |
|
5 | + // Global Integer Return Values used in all methods that return Integers |
|
6 | + // and are called from the outside world (webservices, etc.) |
|
7 | + // List of returnvalue ranges: |
|
8 | + // x > 0 : Positive Result (true with more infos (depending on application) |
|
9 | + // x == 0 : Default FALSE |
|
10 | + // x < 0 : Negative Result (normally false, but with more infos) |
|
11 | + // x == -100 : No Active Message found |
|
12 | + // x == -1000 : Internal Server Error, see server log for details (should not happen) |
|
13 | + // x < -1000 : ERROR values |
|
14 | + |
|
15 | + /** |
|
16 | + * Extract the error code contained in an ERROR string and return the code |
|
17 | + * @param message ERROR String received from AXS web service |
|
18 | + * @return error code found in ERROR message or -10000 if no error code could be found |
|
19 | + */ |
|
20 | + function getErrorcode($message) { |
|
21 | + $errorcode = -10000; |
|
22 | + if (($begin = strpos($message, "ERROR (")) === FALSE) |
|
23 | + $begin = -1; |
|
24 | + if (($end = strpos($message, ")")) === FALSE) |
|
25 | + $end = -1; |
|
26 | 26 | |
27 | - if ($begin >= 0 && $end >= 0) { |
|
28 | - $realBegin = $begin + 7; |
|
29 | - $errorcode = substr($message, $realBegin, $end - $realBegin); |
|
30 | - } |
|
31 | - return $errorcode; |
|
32 | - } |
|
27 | + if ($begin >= 0 && $end >= 0) { |
|
28 | + $realBegin = $begin + 7; |
|
29 | + $errorcode = substr($message, $realBegin, $end - $realBegin); |
|
30 | + } |
|
31 | + return $errorcode; |
|
32 | + } |
|
33 | 33 | |
34 | - /* |
|
34 | + /* |
|
35 | 35 | * Reserved errors |
36 | 36 | */ |
37 | - const RETURN_VALUE_DEFAULT_FALSE = 0; |
|
37 | + const RETURN_VALUE_DEFAULT_FALSE = 0; |
|
38 | 38 | |
39 | - const ERROR_HEDGEID_WRONG = -1; |
|
40 | - const ERROR_RESPONSE_NOT_VALID_ANYMORE = -2; |
|
41 | - const ERROR_RESPONSE_VERFICATION_FAILED_MORE_TRY_LEFT = -3; |
|
42 | - const ERROR_RESPONSE_MAX_TRIES_REACHED = -4; |
|
43 | - |
|
44 | - const ERROR_RESPONSE_WITHOUT_MESSAGE = -100; |
|
45 | - const ERROR_RESPONSE_NULL = -101; |
|
46 | - const ERROR_HEDGEID_NULL = -102; |
|
47 | - const ERROR_RESPONSE_EMPTY = -103; |
|
48 | - const ERROR_HEDGEID_EMPTY = -104; |
|
49 | - |
|
50 | - /* |
|
39 | + const ERROR_HEDGEID_WRONG = -1; |
|
40 | + const ERROR_RESPONSE_NOT_VALID_ANYMORE = -2; |
|
41 | + const ERROR_RESPONSE_VERFICATION_FAILED_MORE_TRY_LEFT = -3; |
|
42 | + const ERROR_RESPONSE_MAX_TRIES_REACHED = -4; |
|
43 | + |
|
44 | + const ERROR_RESPONSE_WITHOUT_MESSAGE = -100; |
|
45 | + const ERROR_RESPONSE_NULL = -101; |
|
46 | + const ERROR_HEDGEID_NULL = -102; |
|
47 | + const ERROR_RESPONSE_EMPTY = -103; |
|
48 | + const ERROR_HEDGEID_EMPTY = -104; |
|
49 | + |
|
50 | + /* |
|
51 | 51 | * Token errors (-1001 to -1099) |
52 | 52 | */ |
53 | - const ERROR_TOKEN_NOT_FOUND = -1001; |
|
54 | - const ERROR_TOKEN_LOCKED = -1002; |
|
55 | - const ERROR_TOKEN_DOES_NOT_SUPPORT_APPLICATION = -1003; |
|
56 | - const ERROR_TOKEN_EXPORT = -1004; |
|
57 | - const ERROR_TOKEN_REMOVE = -1005; |
|
58 | - const ERROR_TOKEN_READY_FOR_PRODUCTIONLOT_NOT_FOUND = -1006; |
|
59 | - const ERROR_TOKEN_NOT_IN_PRODUCTION_STATE = -1007; |
|
60 | - const ERROR_TOKEN_TYPE_NOT_FOUND = -1008; |
|
61 | - const ERROR_TOKEN_WRONG_STATE = -1009; |
|
62 | - const ERROR_TOKEN_BRLC_NOT_FOUND = -1010; |
|
63 | - const ERROR_TOKEN_ASSIGN_SAME_SERIAL_NUMBER_TO_OTHER_TOKEN = -1011; |
|
64 | - const ERROR_TOKEN_SERIAL_NUMBER_ALREADY_ASSIGNED = -1012; |
|
65 | - const ERROR_TOKEN_UNLOCK_COUNTER_MAXIMUM_REACHED = -1013; |
|
66 | - const ERROR_TOKEN_REVOKED = -1014; |
|
67 | - const ERROR_TOKEN_DOES_NOT_SUPPORT_BRANDING = -1015; |
|
68 | - const ERROR_TOKEN_TO_DELETE_IN_WRONG_STATE = -1016; |
|
69 | - |
|
70 | - const ERROR_DR_TOKENENTITY_NOT_FOUND = -1025; |
|
71 | - |
|
72 | - // ERROR if the token could not be found on the local server |
|
73 | - // (automatic key fetching not enabled) |
|
74 | - const ERROR_TOKEN_NOT_FOUND_NO_KEYFETCHING = -1051; |
|
75 | - const ERROR_TOKEN_NOT_FOUND_KEYFETCHING_TEMPORARY_NOT_AVAILABLE = -1052; |
|
76 | - |
|
77 | - /* |
|
53 | + const ERROR_TOKEN_NOT_FOUND = -1001; |
|
54 | + const ERROR_TOKEN_LOCKED = -1002; |
|
55 | + const ERROR_TOKEN_DOES_NOT_SUPPORT_APPLICATION = -1003; |
|
56 | + const ERROR_TOKEN_EXPORT = -1004; |
|
57 | + const ERROR_TOKEN_REMOVE = -1005; |
|
58 | + const ERROR_TOKEN_READY_FOR_PRODUCTIONLOT_NOT_FOUND = -1006; |
|
59 | + const ERROR_TOKEN_NOT_IN_PRODUCTION_STATE = -1007; |
|
60 | + const ERROR_TOKEN_TYPE_NOT_FOUND = -1008; |
|
61 | + const ERROR_TOKEN_WRONG_STATE = -1009; |
|
62 | + const ERROR_TOKEN_BRLC_NOT_FOUND = -1010; |
|
63 | + const ERROR_TOKEN_ASSIGN_SAME_SERIAL_NUMBER_TO_OTHER_TOKEN = -1011; |
|
64 | + const ERROR_TOKEN_SERIAL_NUMBER_ALREADY_ASSIGNED = -1012; |
|
65 | + const ERROR_TOKEN_UNLOCK_COUNTER_MAXIMUM_REACHED = -1013; |
|
66 | + const ERROR_TOKEN_REVOKED = -1014; |
|
67 | + const ERROR_TOKEN_DOES_NOT_SUPPORT_BRANDING = -1015; |
|
68 | + const ERROR_TOKEN_TO_DELETE_IN_WRONG_STATE = -1016; |
|
69 | + |
|
70 | + const ERROR_DR_TOKENENTITY_NOT_FOUND = -1025; |
|
71 | + |
|
72 | + // ERROR if the token could not be found on the local server |
|
73 | + // (automatic key fetching not enabled) |
|
74 | + const ERROR_TOKEN_NOT_FOUND_NO_KEYFETCHING = -1051; |
|
75 | + const ERROR_TOKEN_NOT_FOUND_KEYFETCHING_TEMPORARY_NOT_AVAILABLE = -1052; |
|
76 | + |
|
77 | + /* |
|
78 | 78 | * Key errors (-1100 to -1199) |
79 | 79 | */ |
80 | - const ERROR_KEY_NOT_FOUND = -1100; |
|
81 | - const ERROR_NO_UNASSIGNED_KEY_FOUND = -1101; |
|
82 | - const ERROR_ISSUER_KEY_NOT_FOUND = -1102; |
|
83 | - const ERROR_KEY_NOT_UPDATED = -1103; |
|
84 | - /* removed 2008-11-13 - smm |
|
80 | + const ERROR_KEY_NOT_FOUND = -1100; |
|
81 | + const ERROR_NO_UNASSIGNED_KEY_FOUND = -1101; |
|
82 | + const ERROR_ISSUER_KEY_NOT_FOUND = -1102; |
|
83 | + const ERROR_KEY_NOT_UPDATED = -1103; |
|
84 | + /* removed 2008-11-13 - smm |
|
85 | 85 | * The error does not occur anymore |
86 | 86 | * const ERROR_KEY_FOR_KEYLOADING_NOT_CREATED = -1104; |
87 | 87 | */ |
88 | - const ERROR_REEXPORT_KEYS_ON_NORMAL_AXS_AS = -1105; |
|
89 | - const ERROR_NUMBER_OF_KEYS_OUT_OF_BOUNDS = -1106; |
|
90 | - const ERROR_COULD_NOT_FIND_NUMBER_OF_KEYS = -1107; |
|
91 | - const ERROR_CANNOT_ASSIGN_AXS_EXCLUSIVE_KEY_TO_AA = -1108; |
|
92 | - const ERROR_TEMPORARY_KEY_NOT_CALCULATED = -1109; |
|
93 | - const ERROR_SM_NOT_AUTHORIZED_TO_RECEIVE_FMS_KEY = -1110; |
|
94 | - const ERROR_NOT_AUTHORIZED_TO_DELETE_KEY = -1111; |
|
95 | - const ERROR_CANNOT_FORCE_KEY_DELETION = -1112; |
|
96 | - // the key is locked, introduced in V2.20.00 |
|
97 | - const ERROR_KEY_LOCKED = -1113; |
|
98 | - // non-expiring key errors, introduced in V2.20.00 |
|
99 | - const ERROR_NON_EXPIRING_KEY_NOT_FOUND = -1114; |
|
100 | - const ERROR_NON_EXPIRING_KEY_NOT_READY_TWO_ADDITIONAL_AUTHENTICATIONS_NEEDED = -1115; |
|
101 | - const ERROR_NON_EXPIRING_KEY_NOT_READY_ONE_ADDITIONAL_AUTHENTICATION_NEEDED = -1116; |
|
102 | - |
|
103 | - // ERROR if no free key is available on the local server and |
|
104 | - // the automatic key fetching is not enabled |
|
105 | - const ERROR_NO_UNASSIGNED_KEY_FOUND_NO_KEYFETCHING = -1151; |
|
106 | - const ERROR_KEY_NOT_FOUND_KEYFETCHING_TEMPORARY_NOT_AVAILABLE = -1152; |
|
107 | - |
|
108 | - |
|
109 | - /* |
|
88 | + const ERROR_REEXPORT_KEYS_ON_NORMAL_AXS_AS = -1105; |
|
89 | + const ERROR_NUMBER_OF_KEYS_OUT_OF_BOUNDS = -1106; |
|
90 | + const ERROR_COULD_NOT_FIND_NUMBER_OF_KEYS = -1107; |
|
91 | + const ERROR_CANNOT_ASSIGN_AXS_EXCLUSIVE_KEY_TO_AA = -1108; |
|
92 | + const ERROR_TEMPORARY_KEY_NOT_CALCULATED = -1109; |
|
93 | + const ERROR_SM_NOT_AUTHORIZED_TO_RECEIVE_FMS_KEY = -1110; |
|
94 | + const ERROR_NOT_AUTHORIZED_TO_DELETE_KEY = -1111; |
|
95 | + const ERROR_CANNOT_FORCE_KEY_DELETION = -1112; |
|
96 | + // the key is locked, introduced in V2.20.00 |
|
97 | + const ERROR_KEY_LOCKED = -1113; |
|
98 | + // non-expiring key errors, introduced in V2.20.00 |
|
99 | + const ERROR_NON_EXPIRING_KEY_NOT_FOUND = -1114; |
|
100 | + const ERROR_NON_EXPIRING_KEY_NOT_READY_TWO_ADDITIONAL_AUTHENTICATIONS_NEEDED = -1115; |
|
101 | + const ERROR_NON_EXPIRING_KEY_NOT_READY_ONE_ADDITIONAL_AUTHENTICATION_NEEDED = -1116; |
|
102 | + |
|
103 | + // ERROR if no free key is available on the local server and |
|
104 | + // the automatic key fetching is not enabled |
|
105 | + const ERROR_NO_UNASSIGNED_KEY_FOUND_NO_KEYFETCHING = -1151; |
|
106 | + const ERROR_KEY_NOT_FOUND_KEYFETCHING_TEMPORARY_NOT_AVAILABLE = -1152; |
|
107 | + |
|
108 | + |
|
109 | + /* |
|
110 | 110 | * Firmware errors (-1200 to -1299) |
111 | 111 | */ |
112 | - const ERROR_FW_NOT_FOUND = -1200; |
|
113 | - const ERROR_FW_SUCCESSOR_NOT_FOUND = -1201; |
|
114 | - const ERROR_FW_INITIAL_KEY_NOT_FOUND = -1202; |
|
115 | - const ERROR_FW_INITIAL_KEY_NOT_HEX = -1203; |
|
116 | - const ERROR_FW_INITIAL_KEY_INCORRECT_LENGTH = -1204; |
|
117 | - const ERROR_FW_ACTUAL_VERSION_NULL = -1205; |
|
118 | - const ERROR_FW_ACTUAL_VERSION_EMPTY = -1206; |
|
119 | - const ERROR_FW_VERSION_NOT_VALID = -1207; |
|
120 | - const ERROR_FW_ENCRYPTED_FIRMWARE_URL_NOT_SET = -1208; |
|
121 | - const ERROR_FW_ANCESTOR_ALREADY_HAS_SUCCESSOR = -1209; |
|
122 | - const ERROR_FW_UPDATE_SEED_NOT_SET = -1210; |
|
112 | + const ERROR_FW_NOT_FOUND = -1200; |
|
113 | + const ERROR_FW_SUCCESSOR_NOT_FOUND = -1201; |
|
114 | + const ERROR_FW_INITIAL_KEY_NOT_FOUND = -1202; |
|
115 | + const ERROR_FW_INITIAL_KEY_NOT_HEX = -1203; |
|
116 | + const ERROR_FW_INITIAL_KEY_INCORRECT_LENGTH = -1204; |
|
117 | + const ERROR_FW_ACTUAL_VERSION_NULL = -1205; |
|
118 | + const ERROR_FW_ACTUAL_VERSION_EMPTY = -1206; |
|
119 | + const ERROR_FW_VERSION_NOT_VALID = -1207; |
|
120 | + const ERROR_FW_ENCRYPTED_FIRMWARE_URL_NOT_SET = -1208; |
|
121 | + const ERROR_FW_ANCESTOR_ALREADY_HAS_SUCCESSOR = -1209; |
|
122 | + const ERROR_FW_UPDATE_SEED_NOT_SET = -1210; |
|
123 | 123 | |
124 | - /* |
|
124 | + /* |
|
125 | 125 | * AA errors (-1300 to -1399) |
126 | 126 | */ |
127 | - const ERROR_AA_NOT_FOUND = -1300; |
|
128 | - const ERROR_AA_NOT_TOKEN_ISSUER = -1301; |
|
129 | - const ERROR_AA_DOES_NOT_OWN_BRANDING = -1302; |
|
130 | - const ERROR_AA_NO_ENROLMENT_RIGHT = -1303; |
|
131 | - const ERROR_AA_DOES_NOT_MEET_MIN_ENROLMENT_TYPE = -1304; |
|
132 | - const ERROR_AA_SIGNATURE_NOT_VERIFIED = -1305; |
|
133 | - const ERROR_AA_SIGNATURE_NULL_OR_EMPTY = -1306; |
|
134 | - const ERROR_AA_SIGNATURE_DATA_NOT_SET_OR_EMPTY = -1307; |
|
135 | - const ERROR_AA_BRANDINGID_NULL = -1308; |
|
136 | - const ERROR_AA_BRANDINGID_EMPTY = -1309; |
|
137 | - const ERROR_AA_BRANDINGID_TOO_SHORT = -1310; |
|
138 | - const ERROR_AA_BRANDINGID_TOO_LONG = -1311; |
|
139 | - const ERROR_AA_BRANDINGID_NOT_NUMBER = -1312; |
|
140 | - const ERROR_AA_NAME_NULL = -1313; |
|
141 | - const ERROR_AA_NAME_EMPTY = -1314; |
|
142 | - const ERROR_AA_NAME_TOO_SHORT = -1315; |
|
143 | - const ERROR_AA_NAME_TOO_LONG = -1316; |
|
144 | - const ERROR_AA_BRANDINGID_NOT_HEX = -1317; |
|
145 | - const ERROR_IL_NOT_AUTHORIZED_TO_IMPORT_BLC = -1318; |
|
127 | + const ERROR_AA_NOT_FOUND = -1300; |
|
128 | + const ERROR_AA_NOT_TOKEN_ISSUER = -1301; |
|
129 | + const ERROR_AA_DOES_NOT_OWN_BRANDING = -1302; |
|
130 | + const ERROR_AA_NO_ENROLMENT_RIGHT = -1303; |
|
131 | + const ERROR_AA_DOES_NOT_MEET_MIN_ENROLMENT_TYPE = -1304; |
|
132 | + const ERROR_AA_SIGNATURE_NOT_VERIFIED = -1305; |
|
133 | + const ERROR_AA_SIGNATURE_NULL_OR_EMPTY = -1306; |
|
134 | + const ERROR_AA_SIGNATURE_DATA_NOT_SET_OR_EMPTY = -1307; |
|
135 | + const ERROR_AA_BRANDINGID_NULL = -1308; |
|
136 | + const ERROR_AA_BRANDINGID_EMPTY = -1309; |
|
137 | + const ERROR_AA_BRANDINGID_TOO_SHORT = -1310; |
|
138 | + const ERROR_AA_BRANDINGID_TOO_LONG = -1311; |
|
139 | + const ERROR_AA_BRANDINGID_NOT_NUMBER = -1312; |
|
140 | + const ERROR_AA_NAME_NULL = -1313; |
|
141 | + const ERROR_AA_NAME_EMPTY = -1314; |
|
142 | + const ERROR_AA_NAME_TOO_SHORT = -1315; |
|
143 | + const ERROR_AA_NAME_TOO_LONG = -1316; |
|
144 | + const ERROR_AA_BRANDINGID_NOT_HEX = -1317; |
|
145 | + const ERROR_IL_NOT_AUTHORIZED_TO_IMPORT_BLC = -1318; |
|
146 | 146 | |
147 | - /* |
|
147 | + /* |
|
148 | 148 | * Branding errors (-1400 to -1499) |
149 | 149 | */ |
150 | - const ERROR_BRANDING_NOT_FOUND = -1400; |
|
151 | - const ERROR_BRANDING_EMPTY = -1401; |
|
152 | - const ERROR_BRANDING_INCOMPLETE = -1402; |
|
153 | - const ERROR_BRANDING_ALREADY_EXIST = -1403; |
|
154 | - const ERROR_BRANDING_LOADING_NOT_CONFIRMED = -1404; |
|
155 | - const ERROR_BRANDING_SIGNATURE_NOT_VERIFIED = -1405; |
|
156 | - const ERROR_BRANDING_SIGNATURE_NOT_HEX = -1406; |
|
157 | - const ERROR_BRANDING_SIGNATURE_NOT_CALCULATED = -1407; |
|
158 | - const ERROR_BRANDINGID_NULL = -1408; |
|
159 | - const ERROR_BRANDINGID_EMPTY = -1409; |
|
160 | - const ERROR_BRANDINGID_TOO_SHORT = -1410; |
|
161 | - const ERROR_BRANDINGID_TOO_LONG = -1411; |
|
162 | - const ERROR_BRANDINGID_NOT_NUMBER = -1412; |
|
163 | - const ERROR_BRANDING_NAME_NULL = -1413; |
|
164 | - const ERROR_BRANDING_NAME_EMPTY = -1414; |
|
165 | - const ERROR_BRANDING_NAME_TOO_SHORT = -1415; |
|
166 | - const ERROR_BRANDING_NAME_TOO_LONG = -1416; |
|
167 | - const ERROR_BRANDING_TYPE_UNKNOWN = -1417; |
|
168 | - const ERROR_POWER_BRANDING_NOT_FOUND = -1418; |
|
169 | - // error for new branding (version 2) - 10.03.09 crohr |
|
170 | - const ERROR_KBIN_NOT_SET = -1430; |
|
171 | - const ERROR_KBIN_LENGTH_NOT_CORRECT = -1431; |
|
172 | - const ERROR_BRDIG_NOT_VERIFIED = -1432; |
|
173 | - const ERROR_BISC_NOT_VERIFIED = -1433; |
|
174 | - const ERROR_CSS_NOT_VERIFIED = -1434; |
|
175 | - const ERROR_ILN_NOT_VERIFIED = -1435; |
|
176 | - const ERROR_CSS_INCOMPLETE = -1436; |
|
177 | - const ERROR_CSS_EMPTY = -1437; |
|
178 | - const ERROR_CSS_SIGNATURE_NOT_VERIFIED = -1438; |
|
179 | - const ERROR_BRDIG_SIGNATURE_NOT_VERIFIED = -1439; |
|
180 | - const ERROR_BRDIG_SIGNATURE_NOT_HEX = -1440; |
|
181 | - const ERROR_BRANDINGID_NOT_HEX = -1441; |
|
182 | - const ERROR_OID_LENGTH_NOT_CORRECT = -1442; |
|
183 | - // the CSS was created for another system (production, enterprise, evaluation, ...) |
|
184 | - const ERROR_CSS_BELONGS_TO_OTHER_SYSTEM = -1443; |
|
185 | - // the systemtype in the kbin is not the same as the one in the CSS |
|
186 | - const ERROR_KBIN_FOR_OTHER_SYSTEM_THAN_CSS = -1444; |
|
187 | - |
|
188 | - /* |
|
150 | + const ERROR_BRANDING_NOT_FOUND = -1400; |
|
151 | + const ERROR_BRANDING_EMPTY = -1401; |
|
152 | + const ERROR_BRANDING_INCOMPLETE = -1402; |
|
153 | + const ERROR_BRANDING_ALREADY_EXIST = -1403; |
|
154 | + const ERROR_BRANDING_LOADING_NOT_CONFIRMED = -1404; |
|
155 | + const ERROR_BRANDING_SIGNATURE_NOT_VERIFIED = -1405; |
|
156 | + const ERROR_BRANDING_SIGNATURE_NOT_HEX = -1406; |
|
157 | + const ERROR_BRANDING_SIGNATURE_NOT_CALCULATED = -1407; |
|
158 | + const ERROR_BRANDINGID_NULL = -1408; |
|
159 | + const ERROR_BRANDINGID_EMPTY = -1409; |
|
160 | + const ERROR_BRANDINGID_TOO_SHORT = -1410; |
|
161 | + const ERROR_BRANDINGID_TOO_LONG = -1411; |
|
162 | + const ERROR_BRANDINGID_NOT_NUMBER = -1412; |
|
163 | + const ERROR_BRANDING_NAME_NULL = -1413; |
|
164 | + const ERROR_BRANDING_NAME_EMPTY = -1414; |
|
165 | + const ERROR_BRANDING_NAME_TOO_SHORT = -1415; |
|
166 | + const ERROR_BRANDING_NAME_TOO_LONG = -1416; |
|
167 | + const ERROR_BRANDING_TYPE_UNKNOWN = -1417; |
|
168 | + const ERROR_POWER_BRANDING_NOT_FOUND = -1418; |
|
169 | + // error for new branding (version 2) - 10.03.09 crohr |
|
170 | + const ERROR_KBIN_NOT_SET = -1430; |
|
171 | + const ERROR_KBIN_LENGTH_NOT_CORRECT = -1431; |
|
172 | + const ERROR_BRDIG_NOT_VERIFIED = -1432; |
|
173 | + const ERROR_BISC_NOT_VERIFIED = -1433; |
|
174 | + const ERROR_CSS_NOT_VERIFIED = -1434; |
|
175 | + const ERROR_ILN_NOT_VERIFIED = -1435; |
|
176 | + const ERROR_CSS_INCOMPLETE = -1436; |
|
177 | + const ERROR_CSS_EMPTY = -1437; |
|
178 | + const ERROR_CSS_SIGNATURE_NOT_VERIFIED = -1438; |
|
179 | + const ERROR_BRDIG_SIGNATURE_NOT_VERIFIED = -1439; |
|
180 | + const ERROR_BRDIG_SIGNATURE_NOT_HEX = -1440; |
|
181 | + const ERROR_BRANDINGID_NOT_HEX = -1441; |
|
182 | + const ERROR_OID_LENGTH_NOT_CORRECT = -1442; |
|
183 | + // the CSS was created for another system (production, enterprise, evaluation, ...) |
|
184 | + const ERROR_CSS_BELONGS_TO_OTHER_SYSTEM = -1443; |
|
185 | + // the systemtype in the kbin is not the same as the one in the CSS |
|
186 | + const ERROR_KBIN_FOR_OTHER_SYSTEM_THAN_CSS = -1444; |
|
187 | + |
|
188 | + /* |
|
189 | 189 | * Property errors (-1600 to -1699) |
190 | 190 | */ |
191 | - const ERROR_PROPERTY_NOT_NUMBER = -1600; |
|
192 | - const ERROR_PROPERTY_NOT_SET = -1601; |
|
193 | - const ERROR_PROPERTY_VALUE_NOT_VALID = -1602; |
|
191 | + const ERROR_PROPERTY_NOT_NUMBER = -1600; |
|
192 | + const ERROR_PROPERTY_NOT_SET = -1601; |
|
193 | + const ERROR_PROPERTY_VALUE_NOT_VALID = -1602; |
|
194 | 194 | |
195 | - /* |
|
195 | + /* |
|
196 | 196 | * platform errors (-1700 to -1799) |
197 | 197 | */ |
198 | - const ERROR_PLATFORM_OPERATOR_NOT_SET = -1700; |
|
199 | - const ERROR_PLATFORMID_NULL = -1701; |
|
200 | - const ERROR_PLATFORMID_EMPTY = -1702; |
|
201 | - const ERROR_PLATFORMID_NOT_NUMBER = -1703; |
|
202 | - const ERROR_PLATFORMID_TOO_SHORT = -1704; |
|
203 | - const ERROR_PLATFORMID_TOO_LONG = -1705; |
|
204 | - const ERROR_PLATFORM_NAME_NULL = -1706; |
|
205 | - const ERROR_PLATFORM_NAME_EMPTY = -1707; |
|
206 | - const ERROR_PLATFORM_NAME_TOO_SHORT = -1708; |
|
207 | - const ERROR_PLATFORM_NAME_TOO_LONG = -1709; |
|
208 | - const ERROR_PLATFORMID_LENGTH_NOT_CORRECT = -1710; |
|
209 | - const ERROR_PLATFORMID_NOT_HEX = -1711; |
|
210 | - |
|
211 | - /* |
|
198 | + const ERROR_PLATFORM_OPERATOR_NOT_SET = -1700; |
|
199 | + const ERROR_PLATFORMID_NULL = -1701; |
|
200 | + const ERROR_PLATFORMID_EMPTY = -1702; |
|
201 | + const ERROR_PLATFORMID_NOT_NUMBER = -1703; |
|
202 | + const ERROR_PLATFORMID_TOO_SHORT = -1704; |
|
203 | + const ERROR_PLATFORMID_TOO_LONG = -1705; |
|
204 | + const ERROR_PLATFORM_NAME_NULL = -1706; |
|
205 | + const ERROR_PLATFORM_NAME_EMPTY = -1707; |
|
206 | + const ERROR_PLATFORM_NAME_TOO_SHORT = -1708; |
|
207 | + const ERROR_PLATFORM_NAME_TOO_LONG = -1709; |
|
208 | + const ERROR_PLATFORMID_LENGTH_NOT_CORRECT = -1710; |
|
209 | + const ERROR_PLATFORMID_NOT_HEX = -1711; |
|
210 | + |
|
211 | + /* |
|
212 | 212 | * XML errors (-1800 to -1899) |
213 | 213 | */ |
214 | - const ERROR_XML_DATA_NOT_EXPORTED = -1800; |
|
215 | - const ERROR_XML_DATA_NOT_PARSED = -1801; |
|
216 | - const ERROR_XML_DATA_NOT_IMPORTED = -1802; |
|
217 | - const ERROR_XML_DATA_NULL = -1803; |
|
218 | - const ERROR_XML_DATA_EMPTY = -1804; |
|
214 | + const ERROR_XML_DATA_NOT_EXPORTED = -1800; |
|
215 | + const ERROR_XML_DATA_NOT_PARSED = -1801; |
|
216 | + const ERROR_XML_DATA_NOT_IMPORTED = -1802; |
|
217 | + const ERROR_XML_DATA_NULL = -1803; |
|
218 | + const ERROR_XML_DATA_EMPTY = -1804; |
|
219 | 219 | |
220 | - /* |
|
220 | + /* |
|
221 | 221 | * TCS errors (-1900 to -1999) |
222 | 222 | */ |
223 | - const ERROR_TCS_FILE_NOT_ENCRYPTED = -1900; |
|
224 | - const ERROR_TCS_FILE_SIGNATURE_NOT_CREATED = -1901; |
|
225 | - const ERROR_TCS_FILE_NOT_READABLE = -1902; |
|
226 | - const ERROR_TCS_FILE_STRUCTURE_NOT_VALID = -1903; |
|
227 | - const ERROR_TCS_SIGNATURE_NOT_VERIFIED = -1904; |
|
228 | - const ERROR_TCS_SIGNATURE_NOT_VERIFIED_DATA_NOT_VALID = -1905; |
|
229 | - const ERROR_TCS_SIGNATURE_NOT_VERIFIED_CERTIFICATE_NOT_USABLE = -1906; |
|
230 | - const ERROR_TCS_SIGNATURE_NOT_VERIFIED_SIGNATURE_ALGORITHM_NOT_AVAILABLE = -1907; |
|
231 | - const ERROR_TCS_DATA_ENCRYPTION_ALGORITHM_NOT_AVAILABLE = -1908; |
|
232 | - const ERROR_TCS_DATA_NOT_IMPORTED = -1909; |
|
233 | - const ERROR_TCS_DATA_PRIVATE_KEY_INVALID = -1910; |
|
234 | - |
|
235 | - /* |
|
223 | + const ERROR_TCS_FILE_NOT_ENCRYPTED = -1900; |
|
224 | + const ERROR_TCS_FILE_SIGNATURE_NOT_CREATED = -1901; |
|
225 | + const ERROR_TCS_FILE_NOT_READABLE = -1902; |
|
226 | + const ERROR_TCS_FILE_STRUCTURE_NOT_VALID = -1903; |
|
227 | + const ERROR_TCS_SIGNATURE_NOT_VERIFIED = -1904; |
|
228 | + const ERROR_TCS_SIGNATURE_NOT_VERIFIED_DATA_NOT_VALID = -1905; |
|
229 | + const ERROR_TCS_SIGNATURE_NOT_VERIFIED_CERTIFICATE_NOT_USABLE = -1906; |
|
230 | + const ERROR_TCS_SIGNATURE_NOT_VERIFIED_SIGNATURE_ALGORITHM_NOT_AVAILABLE = -1907; |
|
231 | + const ERROR_TCS_DATA_ENCRYPTION_ALGORITHM_NOT_AVAILABLE = -1908; |
|
232 | + const ERROR_TCS_DATA_NOT_IMPORTED = -1909; |
|
233 | + const ERROR_TCS_DATA_PRIVATE_KEY_INVALID = -1910; |
|
234 | + |
|
235 | + /* |
|
236 | 236 | * Production lot errors (-2000 to -2099) |
237 | 237 | */ |
238 | - const ERROR_PRODUCTION_LOT_NOT_FOUND = -2000; |
|
239 | - const ERROR_LOT_NUMBER_NEGATIVE = -2001; |
|
240 | - const ERROR_LOT_NUMBER_ALREADY_EXISTS = -2002; |
|
238 | + const ERROR_PRODUCTION_LOT_NOT_FOUND = -2000; |
|
239 | + const ERROR_LOT_NUMBER_NEGATIVE = -2001; |
|
240 | + const ERROR_LOT_NUMBER_ALREADY_EXISTS = -2002; |
|
241 | 241 | |
242 | - /* |
|
242 | + /* |
|
243 | 243 | * Keystore and TPS errors (-2100 to -2199) |
244 | 244 | */ |
245 | - const ERROR_KEYSTORE_NOT_FOUND = -2100; |
|
246 | - const ERROR_KEYSTORE_LOCATION_NOT_SET_OR_EMPTY = -2101; |
|
247 | - const ERROR_KEYSTORE_PASSWORD_NOT_SET_OR_EMPTY = -2102; |
|
248 | - const ERROR_KEYSTORE_NOT_LOADED = -2103; |
|
249 | - const ERROR_KEYSTORE_KEY_NOT_LOADED = -2104; |
|
250 | - const ERROR_AXS_CERTIFICATE_NOT_FOUND = -2105; |
|
251 | - const ERROR_COULD_NOT_GET_CERTIFICATE = -2106; |
|
252 | - const ERROR_COULD_NOT_GET_PUBLIC_KEY = -2107; |
|
253 | - const ERROR_TPS_KEY_NOT_LOADED_FROM_KEYSTORE = -2108; |
|
254 | - const ERROR_TPS_CERTIFICATE_NOT_LOADED_FROM_KEYSTORE = -2109; |
|
255 | - const ERROR_TPS_SERVER_CONNECTION = -2110; |
|
256 | - const ERROR_TPS_KEY_NOT_EXPORTED = -2111; |
|
257 | - const ERROR_TPS_OTBLC_NOT_CREATED = -2112; |
|
245 | + const ERROR_KEYSTORE_NOT_FOUND = -2100; |
|
246 | + const ERROR_KEYSTORE_LOCATION_NOT_SET_OR_EMPTY = -2101; |
|
247 | + const ERROR_KEYSTORE_PASSWORD_NOT_SET_OR_EMPTY = -2102; |
|
248 | + const ERROR_KEYSTORE_NOT_LOADED = -2103; |
|
249 | + const ERROR_KEYSTORE_KEY_NOT_LOADED = -2104; |
|
250 | + const ERROR_AXS_CERTIFICATE_NOT_FOUND = -2105; |
|
251 | + const ERROR_COULD_NOT_GET_CERTIFICATE = -2106; |
|
252 | + const ERROR_COULD_NOT_GET_PUBLIC_KEY = -2107; |
|
253 | + const ERROR_TPS_KEY_NOT_LOADED_FROM_KEYSTORE = -2108; |
|
254 | + const ERROR_TPS_CERTIFICATE_NOT_LOADED_FROM_KEYSTORE = -2109; |
|
255 | + const ERROR_TPS_SERVER_CONNECTION = -2110; |
|
256 | + const ERROR_TPS_KEY_NOT_EXPORTED = -2111; |
|
257 | + const ERROR_TPS_OTBLC_NOT_CREATED = -2112; |
|
258 | 258 | |
259 | - /* |
|
259 | + /* |
|
260 | 260 | * Data errors (-2200 to -2399) |
261 | 261 | */ |
262 | 262 | |
263 | - // Codebook errors |
|
264 | - const ERROR_CODEBOOK_ENTRY_NOT_FOUND = -2200; |
|
265 | - const ERROR_CODEBOOK_NUMBER_OF_ENTRIES_DO_NOT_MATCH = -2201; |
|
266 | - const ERROR_CODEBOOK_ENTRY_LENGTH_NOT_VALID = -2202; |
|
263 | + // Codebook errors |
|
264 | + const ERROR_CODEBOOK_ENTRY_NOT_FOUND = -2200; |
|
265 | + const ERROR_CODEBOOK_NUMBER_OF_ENTRIES_DO_NOT_MATCH = -2201; |
|
266 | + const ERROR_CODEBOOK_ENTRY_LENGTH_NOT_VALID = -2202; |
|
267 | 267 | |
268 | - // FingerCode errors |
|
269 | - const ERROR_FINGERCODE_NULL = -2210; |
|
270 | - const ERROR_FINGERCODE_TOO_SHORT = -2211; |
|
271 | - const ERROR_FINGERCODE_TOO_LONG = -2212; |
|
272 | - const ERROR_FINGERCODE_INVALID_SYMBOLS = -2213; |
|
273 | - const ERROR_FINGERCODE_CHAR_REPETITION = -2214; |
|
274 | - const ERROR_FINGERCODE_VIOLATES_DOMAIN = -2215; |
|
275 | - |
|
276 | - // PIN errors |
|
277 | - const ERROR_PIN_LENGTH_OUT_OF_BOUNDS = -2220; |
|
278 | - const ERROR_PIN_LENGTH_FINGERCODE_NOT_SET = -2221; |
|
279 | - |
|
280 | - // Text payload errors |
|
281 | - const ERROR_TEXT_PAYLOAD_NULL = -2230; |
|
282 | - const ERROR_TEXT_PAYLOAD_EMPTY = -2231; |
|
283 | - const ERROR_TEXT_PAYLOAD_TOO_LONG = -2232; |
|
284 | - const ERROR_TEXT_CONTAINS_NON_DISPLAYABLE_CHARACTER = -2233; |
|
285 | - const ERROR_TEXT_TOO_MANY_LINES = -2234; |
|
286 | - |
|
287 | - // AclRequested errors |
|
288 | - const ERROR_ACL_REQUESTED_NULL = -2250; |
|
289 | - const ERROR_ACL_REQUESTED_EMPTY = -2251; |
|
290 | - const ERROR_ACL_REQUESTED_TOO_SHORT = -2252; |
|
291 | - const ERROR_ACL_REQUESTED_TOO_LONG = -2253; |
|
292 | - const ERROR_ACL_REQUESTED_NOT_HEX = -2254; |
|
293 | - |
|
294 | - // Description errors |
|
295 | - const ERROR_DESCRIPTION_TOO_LONG = -2270; |
|
296 | - |
|
297 | - // Data errors |
|
298 | - const ERROR_DATA_NULL = -2280; |
|
299 | - const ERROR_DATA_EMPTY = -2281; |
|
300 | - const ERROR_DATA_TOO_LONG = -2282; |
|
301 | - const ERROR_DATA_NOT_HEX = -2283; |
|
302 | - |
|
303 | - // AuthenticationLevel error |
|
304 | - const ERROR_AUTHENTICATION_LEVEL_OUT_OF_BOUNDS = -2290; |
|
305 | - |
|
306 | - // ReturnPath error |
|
307 | - const ERROR_RETURN_PATH_OUT_OF_BOUNDS = -2300; |
|
308 | - |
|
309 | - // min_aut_lev error |
|
310 | - const ERROR_MIN_AUT_LEV_OUT_OF_BOUNDS = -2310; |
|
311 | - |
|
312 | - // HexData errors |
|
313 | - const ERROR_HEX_DATA_NULL = -2320; |
|
314 | - const ERROR_HEX_DATA_NOT_HEX = -2321; |
|
268 | + // FingerCode errors |
|
269 | + const ERROR_FINGERCODE_NULL = -2210; |
|
270 | + const ERROR_FINGERCODE_TOO_SHORT = -2211; |
|
271 | + const ERROR_FINGERCODE_TOO_LONG = -2212; |
|
272 | + const ERROR_FINGERCODE_INVALID_SYMBOLS = -2213; |
|
273 | + const ERROR_FINGERCODE_CHAR_REPETITION = -2214; |
|
274 | + const ERROR_FINGERCODE_VIOLATES_DOMAIN = -2215; |
|
275 | + |
|
276 | + // PIN errors |
|
277 | + const ERROR_PIN_LENGTH_OUT_OF_BOUNDS = -2220; |
|
278 | + const ERROR_PIN_LENGTH_FINGERCODE_NOT_SET = -2221; |
|
279 | + |
|
280 | + // Text payload errors |
|
281 | + const ERROR_TEXT_PAYLOAD_NULL = -2230; |
|
282 | + const ERROR_TEXT_PAYLOAD_EMPTY = -2231; |
|
283 | + const ERROR_TEXT_PAYLOAD_TOO_LONG = -2232; |
|
284 | + const ERROR_TEXT_CONTAINS_NON_DISPLAYABLE_CHARACTER = -2233; |
|
285 | + const ERROR_TEXT_TOO_MANY_LINES = -2234; |
|
286 | + |
|
287 | + // AclRequested errors |
|
288 | + const ERROR_ACL_REQUESTED_NULL = -2250; |
|
289 | + const ERROR_ACL_REQUESTED_EMPTY = -2251; |
|
290 | + const ERROR_ACL_REQUESTED_TOO_SHORT = -2252; |
|
291 | + const ERROR_ACL_REQUESTED_TOO_LONG = -2253; |
|
292 | + const ERROR_ACL_REQUESTED_NOT_HEX = -2254; |
|
293 | + |
|
294 | + // Description errors |
|
295 | + const ERROR_DESCRIPTION_TOO_LONG = -2270; |
|
296 | + |
|
297 | + // Data errors |
|
298 | + const ERROR_DATA_NULL = -2280; |
|
299 | + const ERROR_DATA_EMPTY = -2281; |
|
300 | + const ERROR_DATA_TOO_LONG = -2282; |
|
301 | + const ERROR_DATA_NOT_HEX = -2283; |
|
302 | + |
|
303 | + // AuthenticationLevel error |
|
304 | + const ERROR_AUTHENTICATION_LEVEL_OUT_OF_BOUNDS = -2290; |
|
305 | + |
|
306 | + // ReturnPath error |
|
307 | + const ERROR_RETURN_PATH_OUT_OF_BOUNDS = -2300; |
|
308 | + |
|
309 | + // min_aut_lev error |
|
310 | + const ERROR_MIN_AUT_LEV_OUT_OF_BOUNDS = -2310; |
|
311 | + |
|
312 | + // HexData errors |
|
313 | + const ERROR_HEX_DATA_NULL = -2320; |
|
314 | + const ERROR_HEX_DATA_NOT_HEX = -2321; |
|
315 | 315 | |
316 | - // BRAK errors |
|
317 | - const ERROR_BRAK_NOT_SET = -2330; |
|
318 | - const ERROR_BRAK_LENGTH_NOT_CORRECT = -2331; |
|
319 | - const ERROR_BARS_LENGTH_NOT_CORRECT = -2332; |
|
316 | + // BRAK errors |
|
317 | + const ERROR_BRAK_NOT_SET = -2330; |
|
318 | + const ERROR_BRAK_LENGTH_NOT_CORRECT = -2331; |
|
319 | + const ERROR_BARS_LENGTH_NOT_CORRECT = -2332; |
|
320 | 320 | |
321 | - // BRAC errors |
|
322 | - const ERROR_BRAC_NULL = -2340; |
|
323 | - const ERROR_BRAC_EMPTY = -2341; |
|
324 | - const ERROR_BRAC_NOT_HEX = -2342; |
|
325 | - |
|
326 | - // OTBLC errors |
|
327 | - const ERROR_OTBLC_NOT_FOUND = -2350; |
|
328 | - const ERROR_OTBLC_NULL = -2351; |
|
329 | - const ERROR_OTBLC_EMPTY = -2352; |
|
330 | - const ERROR_OTBLC_TOO_SHORT = -2353; |
|
331 | - const ERROR_OTBLC_TOO_LONG = -2354; |
|
332 | - const ERROR_OTBLC_NOT_HEX = -2355; |
|
333 | - const ERROR_OTBLC_DIFFERENT = -2356; |
|
334 | - |
|
335 | - // BLC nonce errors |
|
336 | - const ERROR_BLC_NONCE_FORMAT_NOT_CORRECT = -2360; |
|
337 | - const ERROR_BLC_NONCE_NULL_OR_EMPTY = -2361; |
|
338 | - |
|
339 | - // enrolment type error |
|
340 | - const ERROR_ENROLMENT_TYPE_UNKNOWN = -2370; |
|
341 | - |
|
342 | - // lock errors |
|
343 | - const ERROR_LOCKING_REASON_NULL = -2380; |
|
344 | - const ERROR_LOCKING_REASON_EMPTY = -2381; |
|
345 | - const ERROR_UNLOCKING_REASON_NULL = -2382; |
|
346 | - const ERROR_UNLOCKING_REASON_EMPTY = -2383; |
|
347 | - |
|
348 | - // idT error |
|
349 | - const ERROR_IDT_INVALID = -2390; |
|
350 | - |
|
351 | - /* |
|
321 | + // BRAC errors |
|
322 | + const ERROR_BRAC_NULL = -2340; |
|
323 | + const ERROR_BRAC_EMPTY = -2341; |
|
324 | + const ERROR_BRAC_NOT_HEX = -2342; |
|
325 | + |
|
326 | + // OTBLC errors |
|
327 | + const ERROR_OTBLC_NOT_FOUND = -2350; |
|
328 | + const ERROR_OTBLC_NULL = -2351; |
|
329 | + const ERROR_OTBLC_EMPTY = -2352; |
|
330 | + const ERROR_OTBLC_TOO_SHORT = -2353; |
|
331 | + const ERROR_OTBLC_TOO_LONG = -2354; |
|
332 | + const ERROR_OTBLC_NOT_HEX = -2355; |
|
333 | + const ERROR_OTBLC_DIFFERENT = -2356; |
|
334 | + |
|
335 | + // BLC nonce errors |
|
336 | + const ERROR_BLC_NONCE_FORMAT_NOT_CORRECT = -2360; |
|
337 | + const ERROR_BLC_NONCE_NULL_OR_EMPTY = -2361; |
|
338 | + |
|
339 | + // enrolment type error |
|
340 | + const ERROR_ENROLMENT_TYPE_UNKNOWN = -2370; |
|
341 | + |
|
342 | + // lock errors |
|
343 | + const ERROR_LOCKING_REASON_NULL = -2380; |
|
344 | + const ERROR_LOCKING_REASON_EMPTY = -2381; |
|
345 | + const ERROR_UNLOCKING_REASON_NULL = -2382; |
|
346 | + const ERROR_UNLOCKING_REASON_EMPTY = -2383; |
|
347 | + |
|
348 | + // idT error |
|
349 | + const ERROR_IDT_INVALID = -2390; |
|
350 | + |
|
351 | + /* |
|
352 | 352 | * User errors (-2400 to -2479) |
353 | 353 | */ |
354 | - const ERROR_USER_NOT_FOUND = -2400; |
|
355 | - const ERROR_GROUP_NOT_FOUND = -2401; |
|
356 | - const ERROR_USERNAME_AND_AAID_CANNOT_BE_THE_SAME = -2402; |
|
357 | - const ERROR_USER_ALREADY_CREATED = -2403; |
|
358 | - const ERROR_GROUP_ALREADY_EXIST = -2404; |
|
359 | - const ERROR_USER_ALREADY_ASSIGNED_TO_AAID = -2405; |
|
360 | - const ERROR_USER_ALREADY_ASSIGNED_TO_GROUP = -2406; |
|
361 | - const ERROR_USER_ALREADY_REMOVED_FROM_GROUP = -2407; |
|
362 | - const ERROR_USER_CAN_NOT_BE_DELETED = -2408; |
|
363 | - const ERROR_USERNAME_NOT_CORRECT = -2409; |
|
364 | - const ERROR_USERNAME_AAID_NOT_CORRECT = -2410; |
|
365 | - const ERROR_USERNAME_GROUPNAME_NOT_CORRECT = -2411; |
|
366 | - const ERROR_GROUPNAME_NOT_CORRECT = -2412; |
|
367 | - const ERROR_PASSWORD_NOT_CORRECT = -2413; |
|
368 | - const ERROR_USERNAME_PASSWORD_NOT_SET = -2414; |
|
369 | - const ERROR_GROUPS_EMPTY = -2415; |
|
370 | - const ERROR_DEFAULT_ADMIN_USER_NOT_FOUND = -2416; |
|
371 | - const ERROR_DEFAULT_ADMIN_USER_NOT_VALID = -2417; |
|
372 | - const ERROR_DEFAULT_ADMIN_USER_CAN_NOT_BE_DELETED = -2418; |
|
373 | - const ERROR_DEFAULT_ADMIN_USER_CANNOT_BE_REMOVED_FROM_GROUP = -2419; |
|
374 | - const ERROR_DEFAULT_ADMIN_USER_ALREADY_CREATED = -2420; |
|
375 | - const ERROR_PASSWORD_OF_DEFAULT_ADMIN_USER_NOT_CHANGED = -2421; |
|
376 | - const ERROR_PERMISSION_DENIED = -2422; |
|
354 | + const ERROR_USER_NOT_FOUND = -2400; |
|
355 | + const ERROR_GROUP_NOT_FOUND = -2401; |
|
356 | + const ERROR_USERNAME_AND_AAID_CANNOT_BE_THE_SAME = -2402; |
|
357 | + const ERROR_USER_ALREADY_CREATED = -2403; |
|
358 | + const ERROR_GROUP_ALREADY_EXIST = -2404; |
|
359 | + const ERROR_USER_ALREADY_ASSIGNED_TO_AAID = -2405; |
|
360 | + const ERROR_USER_ALREADY_ASSIGNED_TO_GROUP = -2406; |
|
361 | + const ERROR_USER_ALREADY_REMOVED_FROM_GROUP = -2407; |
|
362 | + const ERROR_USER_CAN_NOT_BE_DELETED = -2408; |
|
363 | + const ERROR_USERNAME_NOT_CORRECT = -2409; |
|
364 | + const ERROR_USERNAME_AAID_NOT_CORRECT = -2410; |
|
365 | + const ERROR_USERNAME_GROUPNAME_NOT_CORRECT = -2411; |
|
366 | + const ERROR_GROUPNAME_NOT_CORRECT = -2412; |
|
367 | + const ERROR_PASSWORD_NOT_CORRECT = -2413; |
|
368 | + const ERROR_USERNAME_PASSWORD_NOT_SET = -2414; |
|
369 | + const ERROR_GROUPS_EMPTY = -2415; |
|
370 | + const ERROR_DEFAULT_ADMIN_USER_NOT_FOUND = -2416; |
|
371 | + const ERROR_DEFAULT_ADMIN_USER_NOT_VALID = -2417; |
|
372 | + const ERROR_DEFAULT_ADMIN_USER_CAN_NOT_BE_DELETED = -2418; |
|
373 | + const ERROR_DEFAULT_ADMIN_USER_CANNOT_BE_REMOVED_FROM_GROUP = -2419; |
|
374 | + const ERROR_DEFAULT_ADMIN_USER_ALREADY_CREATED = -2420; |
|
375 | + const ERROR_PASSWORD_OF_DEFAULT_ADMIN_USER_NOT_CHANGED = -2421; |
|
376 | + const ERROR_PERMISSION_DENIED = -2422; |
|
377 | 377 | |
378 | - /* |
|
378 | + /* |
|
379 | 379 | * Configuration errors (-2480 to -2499) |
380 | 380 | */ |
381 | - const ERROR_CONFIGURATION_NOT_FOUND = -2480; |
|
382 | - const ERROR_CONFIGURATION_ITEM_NOT_FOUND = -2481; |
|
383 | - const ERROR_CONFIGURATION_NAME_TOO_SHORT = -2482; |
|
384 | - const ERROR_CONFIGURATION_NAME_TOO_LONG = -2483; |
|
385 | - const ERROR_CONFIGURATION_DESCRIPTION_TOO_LONG = -2484; |
|
386 | - const ERROR_CONFIGURATION_TYPE_OUT_OF_BOUNDS = -2485; |
|
387 | - const ERROR_CONFIGURATION_POSITION_OUT_OF_BOUNDS = -2486; |
|
388 | - const ERROR_CONFIGURATION_ALREADY_EXIST = -2487; |
|
389 | - const ERROR_CONFIGURATION_ITEM_NAME_TOO_LONG = -2488; |
|
390 | - const ERROR_CONFIGURATION_ITEM_ALREADY_EXIST = -2489; |
|
391 | - |
|
392 | - /* |
|
381 | + const ERROR_CONFIGURATION_NOT_FOUND = -2480; |
|
382 | + const ERROR_CONFIGURATION_ITEM_NOT_FOUND = -2481; |
|
383 | + const ERROR_CONFIGURATION_NAME_TOO_SHORT = -2482; |
|
384 | + const ERROR_CONFIGURATION_NAME_TOO_LONG = -2483; |
|
385 | + const ERROR_CONFIGURATION_DESCRIPTION_TOO_LONG = -2484; |
|
386 | + const ERROR_CONFIGURATION_TYPE_OUT_OF_BOUNDS = -2485; |
|
387 | + const ERROR_CONFIGURATION_POSITION_OUT_OF_BOUNDS = -2486; |
|
388 | + const ERROR_CONFIGURATION_ALREADY_EXIST = -2487; |
|
389 | + const ERROR_CONFIGURATION_ITEM_NAME_TOO_LONG = -2488; |
|
390 | + const ERROR_CONFIGURATION_ITEM_ALREADY_EXIST = -2489; |
|
391 | + |
|
392 | + /* |
|
393 | 393 | * Generator errors (-2500 to -2599) |
394 | 394 | */ |
395 | - const ERROR_BAC_GENERATOR_NOT_INITIALIZED = -2500; |
|
396 | - const ERROR_FLICKERING_GENERATOR_NOT_FOUND = -2501; |
|
397 | - const ERROR_MESSAGE_GENERATOR_NOT_FOUND = -2502; |
|
398 | - const ERROR_CODEBOOK_GENERATOR_NOT_INITIALIZED = -2503; |
|
399 | - const ERROR_DEBUG_MESSAGE_GENERATOR_NOT_FOUND = -2504; |
|
400 | - const ERROR_TCS_GENERATOR_CLASS_NOT_VALID = -2505; |
|
401 | - const ERROR_TCS_GENERATOR_NOT_CREATED = -2506; |
|
402 | - |
|
403 | - /* |
|
395 | + const ERROR_BAC_GENERATOR_NOT_INITIALIZED = -2500; |
|
396 | + const ERROR_FLICKERING_GENERATOR_NOT_FOUND = -2501; |
|
397 | + const ERROR_MESSAGE_GENERATOR_NOT_FOUND = -2502; |
|
398 | + const ERROR_CODEBOOK_GENERATOR_NOT_INITIALIZED = -2503; |
|
399 | + const ERROR_DEBUG_MESSAGE_GENERATOR_NOT_FOUND = -2504; |
|
400 | + const ERROR_TCS_GENERATOR_CLASS_NOT_VALID = -2505; |
|
401 | + const ERROR_TCS_GENERATOR_NOT_CREATED = -2506; |
|
402 | + |
|
403 | + /* |
|
404 | 404 | * Other errors (-2600 to -xxxx) |
405 | 405 | */ |
406 | - const ERROR_DOS_TIMELIMIT = -2600; |
|
407 | - const ERROR_IO = -2601; |
|
408 | - const ERROR_WSDL_LOCATION_PROPERTY_NOT_SET = -2602; |
|
409 | - const ERROR_AXS_UPDATER_SERVICE_NOT_CALLED = -2603; |
|
410 | - const ERROR_DOMAIN_VIOLATION_BY_UPDATE_SESSION_SEED = -2604; |
|
411 | - const ERROR_CREATE_CORE_WITH_EXISTING_USCN = -2605; |
|
412 | - |
|
413 | - /* |
|
406 | + const ERROR_DOS_TIMELIMIT = -2600; |
|
407 | + const ERROR_IO = -2601; |
|
408 | + const ERROR_WSDL_LOCATION_PROPERTY_NOT_SET = -2602; |
|
409 | + const ERROR_AXS_UPDATER_SERVICE_NOT_CALLED = -2603; |
|
410 | + const ERROR_DOMAIN_VIOLATION_BY_UPDATE_SESSION_SEED = -2604; |
|
411 | + const ERROR_CREATE_CORE_WITH_EXISTING_USCN = -2605; |
|
412 | + |
|
413 | + /* |
|
414 | 414 | * Roaming errors (-2700 to -2799) |
415 | 415 | */ |
416 | - // configuration problems |
|
417 | - const ERROR_KEYFETCHING_NOT_CONFIGURED = -2700; |
|
418 | - // connection problems sm - cm |
|
419 | - const ERROR_KEYFETCHING_SM_CANNOT_CONNECT_TO_CM_WSDL_WRONG = -2710; |
|
420 | - const ERROR_KEYFETCHING_SM_CANNOT_CONNECT_TO_CM_NOT_AUTHORIZED = -2711; |
|
416 | + // configuration problems |
|
417 | + const ERROR_KEYFETCHING_NOT_CONFIGURED = -2700; |
|
418 | + // connection problems sm - cm |
|
419 | + const ERROR_KEYFETCHING_SM_CANNOT_CONNECT_TO_CM_WSDL_WRONG = -2710; |
|
420 | + const ERROR_KEYFETCHING_SM_CANNOT_CONNECT_TO_CM_NOT_AUTHORIZED = -2711; |
|
421 | 421 | |
422 | - // errors outside of this server |
|
423 | - const ERROR_KEYFETCHING_PERMANENT_ERROR_OUTSIDE_OF_THIS_SERVER = -2720; |
|
424 | - const ERROR_KEYFETCHING_TEMPORARY_ERROR_OUTSIDE_OF_THIS_SERVER = -2721; |
|
422 | + // errors outside of this server |
|
423 | + const ERROR_KEYFETCHING_PERMANENT_ERROR_OUTSIDE_OF_THIS_SERVER = -2720; |
|
424 | + const ERROR_KEYFETCHING_TEMPORARY_ERROR_OUTSIDE_OF_THIS_SERVER = -2721; |
|
425 | 425 | |
426 | - // timeouts |
|
427 | - const ERROR_KEYFETCHING_TIMEOUT_ON_SERVER = -2730; |
|
426 | + // timeouts |
|
427 | + const ERROR_KEYFETCHING_TIMEOUT_ON_SERVER = -2730; |
|
428 | 428 | |
429 | - const ERROR_KEYSTORE_LOCATION_NOT_CORRECT = -2740; |
|
429 | + const ERROR_KEYSTORE_LOCATION_NOT_CORRECT = -2740; |
|
430 | 430 | |
431 | - /* removed 2009-02-18 - crohr |
|
431 | + /* removed 2009-02-18 - crohr |
|
432 | 432 | * The error does not occur anymore |
433 | 433 | * const ERROR_SERVER_TIMEOUT = -3000; |
434 | 434 | */ |
435 | - const ERROR_WEBSERVICE = -3001; |
|
436 | - const ERROR_DATABASE_CORRUPTED = -3002; |
|
437 | - const ERROR_WSDL_URL_NOT_ACCESSIBLE = -3003; |
|
438 | - const ERROR_PARAMETER_NULL = -4000; |
|
439 | - const ERROR_PARAMETER_EMPTY = -4001; |
|
440 | - const ERROR_PARAMETER_TOO_LONG = -4002; |
|
435 | + const ERROR_WEBSERVICE = -3001; |
|
436 | + const ERROR_DATABASE_CORRUPTED = -3002; |
|
437 | + const ERROR_WSDL_URL_NOT_ACCESSIBLE = -3003; |
|
438 | + const ERROR_PARAMETER_NULL = -4000; |
|
439 | + const ERROR_PARAMETER_EMPTY = -4001; |
|
440 | + const ERROR_PARAMETER_TOO_LONG = -4002; |
|
441 | 441 | |
442 | - const ERROR_METHOD_NOT_SUPPORTED_ANYMORE = -5000; |
|
442 | + const ERROR_METHOD_NOT_SUPPORTED_ANYMORE = -5000; |
|
443 | 443 | |
444 | - const ERROR_FORWARD_SECURITY_NEWS_NOT_FOUND = -5100; |
|
445 | - const ERROR_NEWS_NOT_SUPPORTED = -5101; |
|
444 | + const ERROR_FORWARD_SECURITY_NEWS_NOT_FOUND = -5100; |
|
445 | + const ERROR_NEWS_NOT_SUPPORTED = -5101; |
|
446 | 446 | |
447 | - const ERROR_UNDEFINED = -9999; |
|
447 | + const ERROR_UNDEFINED = -9999; |
|
448 | 448 | } |
449 | 449 | ?> |
450 | 450 | \ No newline at end of file |
@@ -1,54 +1,54 @@ |
||
1 | 1 | <?php |
2 | 2 | class AXSILPortal_V1_Auth { |
3 | - var $server; |
|
3 | + var $server; |
|
4 | 4 | |
5 | - private $url = ""; |
|
6 | - private $AAId = ""; |
|
7 | - private $apiKey = ""; |
|
5 | + private $url = ""; |
|
6 | + private $AAId = ""; |
|
7 | + private $apiKey = ""; |
|
8 | 8 | |
9 | - private $baseUrl = ""; |
|
9 | + private $baseUrl = ""; |
|
10 | 10 | |
11 | - function setUrl($url) { |
|
12 | - $this->url = $url; |
|
13 | - } |
|
11 | + function setUrl($url) { |
|
12 | + $this->url = $url; |
|
13 | + } |
|
14 | 14 | |
15 | - function setAAId($AAId) { |
|
16 | - $this->AAId = $AAId; |
|
17 | - } |
|
15 | + function setAAId($AAId) { |
|
16 | + $this->AAId = $AAId; |
|
17 | + } |
|
18 | 18 | |
19 | - function setApiKey($apiKey) { |
|
20 | - $this->apiKey = $apiKey; |
|
21 | - } |
|
19 | + function setApiKey($apiKey) { |
|
20 | + $this->apiKey = $apiKey; |
|
21 | + } |
|
22 | 22 | |
23 | 23 | |
24 | - // Verify that you can open the URL from the web server. |
|
25 | - function create() { |
|
26 | - if ($this->url != "" && $this->AAId != "" && $this->apiKey != "") { |
|
27 | - $this->baseUrl = $this->url."".$this->apiKey."/".$this->AAId; |
|
28 | - } else { |
|
29 | - die("Cannot initialize Agses webservice without credentials, please set them in settings"); |
|
30 | - } |
|
31 | - } |
|
24 | + // Verify that you can open the URL from the web server. |
|
25 | + function create() { |
|
26 | + if ($this->url != "" && $this->AAId != "" && $this->apiKey != "") { |
|
27 | + $this->baseUrl = $this->url."".$this->apiKey."/".$this->AAId; |
|
28 | + } else { |
|
29 | + die("Cannot initialize Agses webservice without credentials, please set them in settings"); |
|
30 | + } |
|
31 | + } |
|
32 | 32 | |
33 | - function createAuthenticationMessage($apn, $createFlickerCode, $returnPath, $authenticationLevel, $hedgeId) { |
|
33 | + function createAuthenticationMessage($apn, $createFlickerCode, $returnPath, $authenticationLevel, $hedgeId) { |
|
34 | 34 | |
35 | - $serviceCall = $this->baseUrl."/authmessage/".$apn."/create/".$hedgeId; |
|
35 | + $serviceCall = $this->baseUrl."/authmessage/".$apn."/create/".$hedgeId; |
|
36 | 36 | |
37 | - $json = file_get_contents($serviceCall); |
|
38 | - $response = json_decode($json,true); |
|
37 | + $json = file_get_contents($serviceCall); |
|
38 | + $response = json_decode($json,true); |
|
39 | 39 | |
40 | - return $response['flickerCode']; |
|
41 | - } |
|
40 | + return $response['flickerCode']; |
|
41 | + } |
|
42 | 42 | |
43 | - function verifyResponse($apn, $response, $hedgeId) { |
|
43 | + function verifyResponse($apn, $response, $hedgeId) { |
|
44 | 44 | |
45 | - $serviceCall = $this->baseUrl."/authmessage/".$apn."/verify/".$hedgeId."/".$response; |
|
45 | + $serviceCall = $this->baseUrl."/authmessage/".$apn."/verify/".$hedgeId."/".$response; |
|
46 | 46 | |
47 | - $json = file_get_contents($serviceCall); |
|
48 | - $response = json_decode($json,true); |
|
47 | + $json = file_get_contents($serviceCall); |
|
48 | + $response = json_decode($json,true); |
|
49 | 49 | |
50 | - return $response['response']; |
|
51 | - } |
|
50 | + return $response['response']; |
|
51 | + } |
|
52 | 52 | |
53 | 53 | } |
54 | 54 | ?> |
55 | 55 | \ No newline at end of file |
@@ -43,73 +43,73 @@ |
||
43 | 43 | * created gif files by almost 50%. |
44 | 44 | */ |
45 | 45 | |
46 | - // path to data files |
|
47 | - $path = './images_gif'; |
|
46 | + // path to data files |
|
47 | + $path = './images_gif'; |
|
48 | 48 | |
49 | - // get code from GET request, use dummy pattern if code not defined |
|
50 | - $code = isset($_GET['code']) ? $_GET['code'] : '20100804020102040810'; |
|
49 | + // get code from GET request, use dummy pattern if code not defined |
|
50 | + $code = isset($_GET['code']) ? $_GET['code'] : '20100804020102040810'; |
|
51 | 51 | |
52 | - // get frame delay from GET request, default to "safe speed" if delay not |
|
53 | - // defined or invalid. delay is specified in ms in the request and needs |
|
54 | - // to be converted to 1/100s for use in GIF files |
|
55 | - $delay = isset($_GET['delay']) ? ($_GET['delay']+0)/10 : 8; |
|
56 | - $delay = ($delay > 0) ? $delay : 8; |
|
52 | + // get frame delay from GET request, default to "safe speed" if delay not |
|
53 | + // defined or invalid. delay is specified in ms in the request and needs |
|
54 | + // to be converted to 1/100s for use in GIF files |
|
55 | + $delay = isset($_GET['delay']) ? ($_GET['delay']+0)/10 : 8; |
|
56 | + $delay = ($delay > 0) ? $delay : 8; |
|
57 | 57 | |
58 | - // code string must only contain hex characters, code length is limited to |
|
59 | - // 1024 characters (512 frames) |
|
60 | - $codelen = strlen($code); |
|
61 | - if ( ctype_xdigit($code) && $codelen < 1024 ) { |
|
58 | + // code string must only contain hex characters, code length is limited to |
|
59 | + // 1024 characters (512 frames) |
|
60 | + $codelen = strlen($code); |
|
61 | + if ( ctype_xdigit($code) && $codelen < 1024 ) { |
|
62 | 62 | |
63 | - // get prepared gif file header |
|
64 | - $gif = file_get_contents($path.'/head.bin'); |
|
63 | + // get prepared gif file header |
|
64 | + $gif = file_get_contents($path.'/head.bin'); |
|
65 | 65 | |
66 | - // build graphic control extension block |
|
67 | - // disposal method = 0 |
|
68 | - // transparent color = 255 |
|
69 | - $ext = "\x21\xf9\x04\x01".chr($delay&0xff).chr(($delay>>8)&0xff)."\xff\x00"; |
|
66 | + // build graphic control extension block |
|
67 | + // disposal method = 0 |
|
68 | + // transparent color = 255 |
|
69 | + $ext = "\x21\xf9\x04\x01".chr($delay&0xff).chr(($delay>>8)&0xff)."\xff\x00"; |
|
70 | 70 | |
71 | - // output image header |
|
72 | - header('Content-type:image/gif'); |
|
73 | - print($gif); |
|
71 | + // output image header |
|
72 | + header('Content-type:image/gif'); |
|
73 | + print($gif); |
|
74 | 74 | |
75 | - // append image data blocks as necessary |
|
76 | - $size = filesize($path.'/data.bin'); |
|
77 | - $data = fopen($path.'/data.bin','r'); |
|
78 | - if ($data) { |
|
75 | + // append image data blocks as necessary |
|
76 | + $size = filesize($path.'/data.bin'); |
|
77 | + $data = fopen($path.'/data.bin','r'); |
|
78 | + if ($data) { |
|
79 | 79 | |
80 | - // load the index from the data file and unpack it into a PHP array. |
|
81 | - // the index array contains the file offsets of the 4096 delta and |
|
82 | - // base images inside the data file. |
|
83 | - $index = unpack("V*", fread($data, 64*64*4)); |
|
80 | + // load the index from the data file and unpack it into a PHP array. |
|
81 | + // the index array contains the file offsets of the 4096 delta and |
|
82 | + // base images inside the data file. |
|
83 | + $index = unpack("V*", fread($data, 64*64*4)); |
|
84 | 84 | |
85 | - // when a code is repeated (prev and curr have the same value) a |
|
86 | - // base image is inserted instead of a delta image. the first frame |
|
87 | - // in the animation must be a base image, so we peek at the flicker |
|
88 | - // code and set $prev to the first value in the string |
|
89 | - $prev = hexdec(substr($code, 0, 2)); |
|
90 | - for ($i = 0; $i < $codelen; $i+=2) { |
|
85 | + // when a code is repeated (prev and curr have the same value) a |
|
86 | + // base image is inserted instead of a delta image. the first frame |
|
87 | + // in the animation must be a base image, so we peek at the flicker |
|
88 | + // code and set $prev to the first value in the string |
|
89 | + $prev = hexdec(substr($code, 0, 2)); |
|
90 | + for ($i = 0; $i < $codelen; $i+=2) { |
|
91 | 91 | |
92 | - // get current code |
|
93 | - $curr = hexdec(substr($code, $i, 2)); |
|
92 | + // get current code |
|
93 | + $curr = hexdec(substr($code, $i, 2)); |
|
94 | 94 | |
95 | - // locate image block in data file |
|
96 | - $blockIdx = $prev*64+$curr+1; // array starts at 1 |
|
97 | - $blockPos = $index[$blockIdx]; |
|
98 | - $blockLen = ($blockIdx < 4096 ? $index[$blockIdx+1] : $size) - $blockPos; |
|
95 | + // locate image block in data file |
|
96 | + $blockIdx = $prev*64+$curr+1; // array starts at 1 |
|
97 | + $blockPos = $index[$blockIdx]; |
|
98 | + $blockLen = ($blockIdx < 4096 ? $index[$blockIdx+1] : $size) - $blockPos; |
|
99 | 99 | |
100 | - // output extension header |
|
101 | - print($ext); |
|
100 | + // output extension header |
|
101 | + print($ext); |
|
102 | 102 | |
103 | - // output image block |
|
104 | - fseek($data, $blockPos); |
|
105 | - print(fread($data, $blockLen)); |
|
103 | + // output image block |
|
104 | + fseek($data, $blockPos); |
|
105 | + print(fread($data, $blockLen)); |
|
106 | 106 | |
107 | - $prev = $curr; |
|
108 | - } |
|
107 | + $prev = $curr; |
|
108 | + } |
|
109 | 109 | |
110 | - // file terminator |
|
111 | - print(";"); |
|
112 | - } |
|
113 | - } |
|
110 | + // file terminator |
|
111 | + print(";"); |
|
112 | + } |
|
113 | + } |
|
114 | 114 | /******/ |
115 | 115 | ?> |
116 | 116 | \ No newline at end of file |
@@ -336,16 +336,16 @@ |
||
336 | 336 | // Extend the sixteen 32-bit words into eighty 32-bit words |
337 | 337 | for ($i = 16; $i < 80; $i++) { |
338 | 338 | $temp = array( |
339 | - $w[$i - 15]->bitwise_rightRotate(1), |
|
340 | - $w[$i - 15]->bitwise_rightRotate(8), |
|
341 | - $w[$i - 15]->bitwise_rightShift(7) |
|
339 | + $w[$i - 15]->bitwise_rightRotate(1), |
|
340 | + $w[$i - 15]->bitwise_rightRotate(8), |
|
341 | + $w[$i - 15]->bitwise_rightShift(7) |
|
342 | 342 | ); |
343 | 343 | $s0 = $temp[0]->bitwise_xor($temp[1]); |
344 | 344 | $s0 = $s0->bitwise_xor($temp[2]); |
345 | 345 | $temp = array( |
346 | - $w[$i - 2]->bitwise_rightRotate(19), |
|
347 | - $w[$i - 2]->bitwise_rightRotate(61), |
|
348 | - $w[$i - 2]->bitwise_rightShift(6) |
|
346 | + $w[$i - 2]->bitwise_rightRotate(19), |
|
347 | + $w[$i - 2]->bitwise_rightRotate(61), |
|
348 | + $w[$i - 2]->bitwise_rightShift(6) |
|
349 | 349 | ); |
350 | 350 | $s1 = $temp[0]->bitwise_xor($temp[1]); |
351 | 351 | $s1 = $s1->bitwise_xor($temp[2]); |
@@ -464,13 +464,13 @@ discard block |
||
464 | 464 | list($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[3], $le_longs[4]); |
465 | 465 | for ($i = 0, $j = 1; $i < 40; $i+= 2, $j+= 2) { |
466 | 466 | $A = $m0[$q0[$q0[$i] ^ $key[ 9]] ^ $key[1]] ^ |
467 | - $m1[$q0[$q1[$i] ^ $key[10]] ^ $key[2]] ^ |
|
468 | - $m2[$q1[$q0[$i] ^ $key[11]] ^ $key[3]] ^ |
|
469 | - $m3[$q1[$q1[$i] ^ $key[12]] ^ $key[4]]; |
|
467 | + $m1[$q0[$q1[$i] ^ $key[10]] ^ $key[2]] ^ |
|
468 | + $m2[$q1[$q0[$i] ^ $key[11]] ^ $key[3]] ^ |
|
469 | + $m3[$q1[$q1[$i] ^ $key[12]] ^ $key[4]]; |
|
470 | 470 | $B = $m0[$q0[$q0[$j] ^ $key[13]] ^ $key[5]] ^ |
471 | - $m1[$q0[$q1[$j] ^ $key[14]] ^ $key[6]] ^ |
|
472 | - $m2[$q1[$q0[$j] ^ $key[15]] ^ $key[7]] ^ |
|
473 | - $m3[$q1[$q1[$j] ^ $key[16]] ^ $key[8]]; |
|
471 | + $m1[$q0[$q1[$j] ^ $key[14]] ^ $key[6]] ^ |
|
472 | + $m2[$q1[$q0[$j] ^ $key[15]] ^ $key[7]] ^ |
|
473 | + $m3[$q1[$q1[$j] ^ $key[16]] ^ $key[8]]; |
|
474 | 474 | $B = ($B << 8) | ($B >> 24 & 0xff); |
475 | 475 | $K[] = $A+= $B; |
476 | 476 | $K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff); |
@@ -488,13 +488,13 @@ discard block |
||
488 | 488 | list($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[5], $le_longs[6]); |
489 | 489 | for ($i = 0, $j = 1; $i < 40; $i+= 2, $j+= 2) { |
490 | 490 | $A = $m0[$q0[$q0[$q1[$i] ^ $key[17]] ^ $key[ 9]] ^ $key[1]] ^ |
491 | - $m1[$q0[$q1[$q1[$i] ^ $key[18]] ^ $key[10]] ^ $key[2]] ^ |
|
492 | - $m2[$q1[$q0[$q0[$i] ^ $key[19]] ^ $key[11]] ^ $key[3]] ^ |
|
493 | - $m3[$q1[$q1[$q0[$i] ^ $key[20]] ^ $key[12]] ^ $key[4]]; |
|
491 | + $m1[$q0[$q1[$q1[$i] ^ $key[18]] ^ $key[10]] ^ $key[2]] ^ |
|
492 | + $m2[$q1[$q0[$q0[$i] ^ $key[19]] ^ $key[11]] ^ $key[3]] ^ |
|
493 | + $m3[$q1[$q1[$q0[$i] ^ $key[20]] ^ $key[12]] ^ $key[4]]; |
|
494 | 494 | $B = $m0[$q0[$q0[$q1[$j] ^ $key[21]] ^ $key[13]] ^ $key[5]] ^ |
495 | - $m1[$q0[$q1[$q1[$j] ^ $key[22]] ^ $key[14]] ^ $key[6]] ^ |
|
496 | - $m2[$q1[$q0[$q0[$j] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^ |
|
497 | - $m3[$q1[$q1[$q0[$j] ^ $key[24]] ^ $key[16]] ^ $key[8]]; |
|
495 | + $m1[$q0[$q1[$q1[$j] ^ $key[22]] ^ $key[14]] ^ $key[6]] ^ |
|
496 | + $m2[$q1[$q0[$q0[$j] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^ |
|
497 | + $m3[$q1[$q1[$q0[$j] ^ $key[24]] ^ $key[16]] ^ $key[8]]; |
|
498 | 498 | $B = ($B << 8) | ($B >> 24 & 0xff); |
499 | 499 | $K[] = $A+= $B; |
500 | 500 | $K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff); |
@@ -513,13 +513,13 @@ discard block |
||
513 | 513 | list($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[7], $le_longs[8]); |
514 | 514 | for ($i = 0, $j = 1; $i < 40; $i+= 2, $j+= 2) { |
515 | 515 | $A = $m0[$q0[$q0[$q1[$q1[$i] ^ $key[25]] ^ $key[17]] ^ $key[ 9]] ^ $key[1]] ^ |
516 | - $m1[$q0[$q1[$q1[$q0[$i] ^ $key[26]] ^ $key[18]] ^ $key[10]] ^ $key[2]] ^ |
|
517 | - $m2[$q1[$q0[$q0[$q0[$i] ^ $key[27]] ^ $key[19]] ^ $key[11]] ^ $key[3]] ^ |
|
518 | - $m3[$q1[$q1[$q0[$q1[$i] ^ $key[28]] ^ $key[20]] ^ $key[12]] ^ $key[4]]; |
|
516 | + $m1[$q0[$q1[$q1[$q0[$i] ^ $key[26]] ^ $key[18]] ^ $key[10]] ^ $key[2]] ^ |
|
517 | + $m2[$q1[$q0[$q0[$q0[$i] ^ $key[27]] ^ $key[19]] ^ $key[11]] ^ $key[3]] ^ |
|
518 | + $m3[$q1[$q1[$q0[$q1[$i] ^ $key[28]] ^ $key[20]] ^ $key[12]] ^ $key[4]]; |
|
519 | 519 | $B = $m0[$q0[$q0[$q1[$q1[$j] ^ $key[29]] ^ $key[21]] ^ $key[13]] ^ $key[5]] ^ |
520 | - $m1[$q0[$q1[$q1[$q0[$j] ^ $key[30]] ^ $key[22]] ^ $key[14]] ^ $key[6]] ^ |
|
521 | - $m2[$q1[$q0[$q0[$q0[$j] ^ $key[31]] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^ |
|
522 | - $m3[$q1[$q1[$q0[$q1[$j] ^ $key[32]] ^ $key[24]] ^ $key[16]] ^ $key[8]]; |
|
520 | + $m1[$q0[$q1[$q1[$q0[$j] ^ $key[30]] ^ $key[22]] ^ $key[14]] ^ $key[6]] ^ |
|
521 | + $m2[$q1[$q0[$q0[$q0[$j] ^ $key[31]] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^ |
|
522 | + $m3[$q1[$q1[$q0[$q1[$j] ^ $key[32]] ^ $key[24]] ^ $key[16]] ^ $key[8]]; |
|
523 | 523 | $B = ($B << 8) | ($B >> 24 & 0xff); |
524 | 524 | $K[] = $A+= $B; |
525 | 525 | $K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff); |
@@ -611,25 +611,25 @@ discard block |
||
611 | 611 | $ki = 7; |
612 | 612 | while ($ki < 39) { |
613 | 613 | $t0 = $S0[ $R0 & 0xff] ^ |
614 | - $S1[($R0 >> 8) & 0xff] ^ |
|
615 | - $S2[($R0 >> 16) & 0xff] ^ |
|
616 | - $S3[($R0 >> 24) & 0xff]; |
|
614 | + $S1[($R0 >> 8) & 0xff] ^ |
|
615 | + $S2[($R0 >> 16) & 0xff] ^ |
|
616 | + $S3[($R0 >> 24) & 0xff]; |
|
617 | 617 | $t1 = $S0[($R1 >> 24) & 0xff] ^ |
618 | - $S1[ $R1 & 0xff] ^ |
|
619 | - $S2[($R1 >> 8) & 0xff] ^ |
|
620 | - $S3[($R1 >> 16) & 0xff]; |
|
618 | + $S1[ $R1 & 0xff] ^ |
|
619 | + $S2[($R1 >> 8) & 0xff] ^ |
|
620 | + $S3[($R1 >> 16) & 0xff]; |
|
621 | 621 | $R2^= $t0 + $t1 + $K[++$ki]; |
622 | 622 | $R2 = ($R2 >> 1 & 0x7fffffff) | ($R2 << 31); |
623 | 623 | $R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ ($t0 + ($t1 << 1) + $K[++$ki]); |
624 | 624 | |
625 | 625 | $t0 = $S0[ $R2 & 0xff] ^ |
626 | - $S1[($R2 >> 8) & 0xff] ^ |
|
627 | - $S2[($R2 >> 16) & 0xff] ^ |
|
628 | - $S3[($R2 >> 24) & 0xff]; |
|
626 | + $S1[($R2 >> 8) & 0xff] ^ |
|
627 | + $S2[($R2 >> 16) & 0xff] ^ |
|
628 | + $S3[($R2 >> 24) & 0xff]; |
|
629 | 629 | $t1 = $S0[($R3 >> 24) & 0xff] ^ |
630 | - $S1[ $R3 & 0xff] ^ |
|
631 | - $S2[($R3 >> 8) & 0xff] ^ |
|
632 | - $S3[($R3 >> 16) & 0xff]; |
|
630 | + $S1[ $R3 & 0xff] ^ |
|
631 | + $S2[($R3 >> 8) & 0xff] ^ |
|
632 | + $S3[($R3 >> 16) & 0xff]; |
|
633 | 633 | $R0^= ($t0 + $t1 + $K[++$ki]); |
634 | 634 | $R0 = ($R0 >> 1 & 0x7fffffff) | ($R0 << 31); |
635 | 635 | $R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ ($t0 + ($t1 << 1) + $K[++$ki]); |
@@ -637,9 +637,9 @@ discard block |
||
637 | 637 | |
638 | 638 | // @codingStandardsIgnoreStart |
639 | 639 | return pack("V4", $K[4] ^ $R2, |
640 | - $K[5] ^ $R3, |
|
641 | - $K[6] ^ $R0, |
|
642 | - $K[7] ^ $R1); |
|
640 | + $K[5] ^ $R3, |
|
641 | + $K[6] ^ $R0, |
|
642 | + $K[7] ^ $R1); |
|
643 | 643 | // @codingStandardsIgnoreEnd |
644 | 644 | } |
645 | 645 | |
@@ -667,25 +667,25 @@ discard block |
||
667 | 667 | $ki = 40; |
668 | 668 | while ($ki > 8) { |
669 | 669 | $t0 = $S0[$R0 & 0xff] ^ |
670 | - $S1[$R0 >> 8 & 0xff] ^ |
|
671 | - $S2[$R0 >> 16 & 0xff] ^ |
|
672 | - $S3[$R0 >> 24 & 0xff]; |
|
670 | + $S1[$R0 >> 8 & 0xff] ^ |
|
671 | + $S2[$R0 >> 16 & 0xff] ^ |
|
672 | + $S3[$R0 >> 24 & 0xff]; |
|
673 | 673 | $t1 = $S0[$R1 >> 24 & 0xff] ^ |
674 | - $S1[$R1 & 0xff] ^ |
|
675 | - $S2[$R1 >> 8 & 0xff] ^ |
|
676 | - $S3[$R1 >> 16 & 0xff]; |
|
674 | + $S1[$R1 & 0xff] ^ |
|
675 | + $S2[$R1 >> 8 & 0xff] ^ |
|
676 | + $S3[$R1 >> 16 & 0xff]; |
|
677 | 677 | $R3^= $t0 + ($t1 << 1) + $K[--$ki]; |
678 | 678 | $R3 = $R3 >> 1 & 0x7fffffff | $R3 << 31; |
679 | 679 | $R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ ($t0 + $t1 + $K[--$ki]); |
680 | 680 | |
681 | 681 | $t0 = $S0[$R2 & 0xff] ^ |
682 | - $S1[$R2 >> 8 & 0xff] ^ |
|
683 | - $S2[$R2 >> 16 & 0xff] ^ |
|
684 | - $S3[$R2 >> 24 & 0xff]; |
|
682 | + $S1[$R2 >> 8 & 0xff] ^ |
|
683 | + $S2[$R2 >> 16 & 0xff] ^ |
|
684 | + $S3[$R2 >> 24 & 0xff]; |
|
685 | 685 | $t1 = $S0[$R3 >> 24 & 0xff] ^ |
686 | - $S1[$R3 & 0xff] ^ |
|
687 | - $S2[$R3 >> 8 & 0xff] ^ |
|
688 | - $S3[$R3 >> 16 & 0xff]; |
|
686 | + $S1[$R3 & 0xff] ^ |
|
687 | + $S2[$R3 >> 8 & 0xff] ^ |
|
688 | + $S3[$R3 >> 16 & 0xff]; |
|
689 | 689 | $R1^= $t0 + ($t1 << 1) + $K[--$ki]; |
690 | 690 | $R1 = $R1 >> 1 & 0x7fffffff | $R1 << 31; |
691 | 691 | $R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ ($t0 + $t1 + $K[--$ki]); |
@@ -693,9 +693,9 @@ discard block |
||
693 | 693 | |
694 | 694 | // @codingStandardsIgnoreStart |
695 | 695 | return pack("V4", $K[0] ^ $R2, |
696 | - $K[1] ^ $R3, |
|
697 | - $K[2] ^ $R0, |
|
698 | - $K[3] ^ $R1); |
|
696 | + $K[1] ^ $R3, |
|
697 | + $K[2] ^ $R0, |
|
698 | + $K[3] ^ $R1); |
|
699 | 699 | // @codingStandardsIgnoreEnd |
700 | 700 | } |
701 | 701 | |
@@ -835,11 +835,11 @@ discard block |
||
835 | 835 | |
836 | 836 | $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( |
837 | 837 | array( |
838 | - 'init_crypt' => $init_crypt, |
|
839 | - 'init_encrypt' => '', |
|
840 | - 'init_decrypt' => '', |
|
841 | - 'encrypt_block' => $encrypt_block, |
|
842 | - 'decrypt_block' => $decrypt_block |
|
838 | + 'init_crypt' => $init_crypt, |
|
839 | + 'init_encrypt' => '', |
|
840 | + 'init_decrypt' => '', |
|
841 | + 'encrypt_block' => $encrypt_block, |
|
842 | + 'decrypt_block' => $decrypt_block |
|
843 | 843 | ) |
844 | 844 | ); |
845 | 845 | } |
@@ -423,13 +423,13 @@ discard block |
||
423 | 423 | $l^= $p[$i]; |
424 | 424 | $r^= ($sb_0[$l >> 24 & 0xff] + |
425 | 425 | $sb_1[$l >> 16 & 0xff] ^ |
426 | - $sb_2[$l >> 8 & 0xff]) + |
|
426 | + $sb_2[$l >> 8 & 0xff]) + |
|
427 | 427 | $sb_3[$l & 0xff]; |
428 | 428 | |
429 | 429 | $r^= $p[$i + 1]; |
430 | 430 | $l^= ($sb_0[$r >> 24 & 0xff] + |
431 | 431 | $sb_1[$r >> 16 & 0xff] ^ |
432 | - $sb_2[$r >> 8 & 0xff]) + |
|
432 | + $sb_2[$r >> 8 & 0xff]) + |
|
433 | 433 | $sb_3[$r & 0xff]; |
434 | 434 | } |
435 | 435 | return pack("N*", $r ^ $p[17], $l ^ $p[16]); |
@@ -458,13 +458,13 @@ discard block |
||
458 | 458 | $l^= $p[$i]; |
459 | 459 | $r^= ($sb_0[$l >> 24 & 0xff] + |
460 | 460 | $sb_1[$l >> 16 & 0xff] ^ |
461 | - $sb_2[$l >> 8 & 0xff]) + |
|
461 | + $sb_2[$l >> 8 & 0xff]) + |
|
462 | 462 | $sb_3[$l & 0xff]; |
463 | 463 | |
464 | 464 | $r^= $p[$i - 1]; |
465 | 465 | $l^= ($sb_0[$r >> 24 & 0xff] + |
466 | 466 | $sb_1[$r >> 16 & 0xff] ^ |
467 | - $sb_2[$r >> 8 & 0xff]) + |
|
467 | + $sb_2[$r >> 8 & 0xff]) + |
|
468 | 468 | $sb_3[$r & 0xff]; |
469 | 469 | } |
470 | 470 | return pack("N*", $r ^ $p[0], $l ^ $p[1]); |
@@ -577,11 +577,11 @@ discard block |
||
577 | 577 | |
578 | 578 | $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( |
579 | 579 | array( |
580 | - 'init_crypt' => $init_crypt, |
|
581 | - 'init_encrypt' => '', |
|
582 | - 'init_decrypt' => '', |
|
583 | - 'encrypt_block' => $encrypt_block, |
|
584 | - 'decrypt_block' => $decrypt_block |
|
580 | + 'init_crypt' => $init_crypt, |
|
581 | + 'init_encrypt' => '', |
|
582 | + 'init_decrypt' => '', |
|
583 | + 'encrypt_block' => $encrypt_block, |
|
584 | + 'decrypt_block' => $decrypt_block |
|
585 | 585 | ) |
586 | 586 | ); |
587 | 587 | } |
@@ -709,13 +709,13 @@ discard block |
||
709 | 709 | $t = unpack('Nl/Nr', $block); |
710 | 710 | list($l, $r) = array($t['l'], $t['r']); |
711 | 711 | $block = ($shuffleip[ $r & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") | |
712 | - ($shuffleip[($r >> 8) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") | |
|
713 | - ($shuffleip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") | |
|
714 | - ($shuffleip[($r >> 24) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") | |
|
715 | - ($shuffleip[ $l & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") | |
|
716 | - ($shuffleip[($l >> 8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") | |
|
717 | - ($shuffleip[($l >> 16) & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") | |
|
718 | - ($shuffleip[($l >> 24) & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01"); |
|
712 | + ($shuffleip[($r >> 8) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") | |
|
713 | + ($shuffleip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") | |
|
714 | + ($shuffleip[($r >> 24) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") | |
|
715 | + ($shuffleip[ $l & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") | |
|
716 | + ($shuffleip[($l >> 8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") | |
|
717 | + ($shuffleip[($l >> 16) & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") | |
|
718 | + ($shuffleip[($l >> 24) & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01"); |
|
719 | 719 | |
720 | 720 | // Extract L0 and R0. |
721 | 721 | $t = unpack('Nl/Nr', $block); |
@@ -732,9 +732,9 @@ discard block |
||
732 | 732 | |
733 | 733 | // S-box indexing. |
734 | 734 | $t = $sbox1[($b1 >> 24) & 0x3F] ^ $sbox2[($b2 >> 24) & 0x3F] ^ |
735 | - $sbox3[($b1 >> 16) & 0x3F] ^ $sbox4[($b2 >> 16) & 0x3F] ^ |
|
736 | - $sbox5[($b1 >> 8) & 0x3F] ^ $sbox6[($b2 >> 8) & 0x3F] ^ |
|
737 | - $sbox7[ $b1 & 0x3F] ^ $sbox8[ $b2 & 0x3F] ^ $l; |
|
735 | + $sbox3[($b1 >> 16) & 0x3F] ^ $sbox4[($b2 >> 16) & 0x3F] ^ |
|
736 | + $sbox5[($b1 >> 8) & 0x3F] ^ $sbox6[($b2 >> 8) & 0x3F] ^ |
|
737 | + $sbox7[ $b1 & 0x3F] ^ $sbox8[ $b2 & 0x3F] ^ $l; |
|
738 | 738 | // end of "the Feistel (F) function" |
739 | 739 | |
740 | 740 | $l = $r; |
@@ -749,13 +749,13 @@ discard block |
||
749 | 749 | |
750 | 750 | // Perform the inverse IP permutation. |
751 | 751 | return ($shuffleinvip[($r >> 24) & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") | |
752 | - ($shuffleinvip[($l >> 24) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") | |
|
753 | - ($shuffleinvip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") | |
|
754 | - ($shuffleinvip[($l >> 16) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") | |
|
755 | - ($shuffleinvip[($r >> 8) & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") | |
|
756 | - ($shuffleinvip[($l >> 8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") | |
|
757 | - ($shuffleinvip[ $r & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") | |
|
758 | - ($shuffleinvip[ $l & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01"); |
|
752 | + ($shuffleinvip[($l >> 24) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") | |
|
753 | + ($shuffleinvip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") | |
|
754 | + ($shuffleinvip[($l >> 16) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") | |
|
755 | + ($shuffleinvip[($r >> 8) & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") | |
|
756 | + ($shuffleinvip[($l >> 8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") | |
|
757 | + ($shuffleinvip[ $r & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") | |
|
758 | + ($shuffleinvip[ $l & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01"); |
|
759 | 759 | } |
760 | 760 | |
761 | 761 | /** |
@@ -1230,13 +1230,13 @@ discard block |
||
1230 | 1230 | $t = unpack('Nl/Nr', $key); |
1231 | 1231 | list($l, $r) = array($t['l'], $t['r']); |
1232 | 1232 | $key = ($this->shuffle[$pc1map[ $r & 0xFF]] & "\x80\x80\x80\x80\x80\x80\x80\x00") | |
1233 | - ($this->shuffle[$pc1map[($r >> 8) & 0xFF]] & "\x40\x40\x40\x40\x40\x40\x40\x00") | |
|
1234 | - ($this->shuffle[$pc1map[($r >> 16) & 0xFF]] & "\x20\x20\x20\x20\x20\x20\x20\x00") | |
|
1235 | - ($this->shuffle[$pc1map[($r >> 24) & 0xFF]] & "\x10\x10\x10\x10\x10\x10\x10\x00") | |
|
1236 | - ($this->shuffle[$pc1map[ $l & 0xFF]] & "\x08\x08\x08\x08\x08\x08\x08\x00") | |
|
1237 | - ($this->shuffle[$pc1map[($l >> 8) & 0xFF]] & "\x04\x04\x04\x04\x04\x04\x04\x00") | |
|
1238 | - ($this->shuffle[$pc1map[($l >> 16) & 0xFF]] & "\x02\x02\x02\x02\x02\x02\x02\x00") | |
|
1239 | - ($this->shuffle[$pc1map[($l >> 24) & 0xFF]] & "\x01\x01\x01\x01\x01\x01\x01\x00"); |
|
1233 | + ($this->shuffle[$pc1map[($r >> 8) & 0xFF]] & "\x40\x40\x40\x40\x40\x40\x40\x00") | |
|
1234 | + ($this->shuffle[$pc1map[($r >> 16) & 0xFF]] & "\x20\x20\x20\x20\x20\x20\x20\x00") | |
|
1235 | + ($this->shuffle[$pc1map[($r >> 24) & 0xFF]] & "\x10\x10\x10\x10\x10\x10\x10\x00") | |
|
1236 | + ($this->shuffle[$pc1map[ $l & 0xFF]] & "\x08\x08\x08\x08\x08\x08\x08\x00") | |
|
1237 | + ($this->shuffle[$pc1map[($l >> 8) & 0xFF]] & "\x04\x04\x04\x04\x04\x04\x04\x00") | |
|
1238 | + ($this->shuffle[$pc1map[($l >> 16) & 0xFF]] & "\x02\x02\x02\x02\x02\x02\x02\x00") | |
|
1239 | + ($this->shuffle[$pc1map[($l >> 24) & 0xFF]] & "\x01\x01\x01\x01\x01\x01\x01\x00"); |
|
1240 | 1240 | $key = unpack('Nc/Nd', $key); |
1241 | 1241 | $c = ( $key['c'] >> 4) & 0x0FFFFFFF; |
1242 | 1242 | $d = (($key['d'] >> 4) & 0x0FFFFFF0) | ($key['c'] & 0x0F); |
@@ -1253,9 +1253,9 @@ discard block |
||
1253 | 1253 | |
1254 | 1254 | // Perform the PC-2 transformation. |
1255 | 1255 | $cp = $pc2mapc1[ $c >> 24 ] | $pc2mapc2[($c >> 16) & 0xFF] | |
1256 | - $pc2mapc3[($c >> 8) & 0xFF] | $pc2mapc4[ $c & 0xFF]; |
|
1256 | + $pc2mapc3[($c >> 8) & 0xFF] | $pc2mapc4[ $c & 0xFF]; |
|
1257 | 1257 | $dp = $pc2mapd1[ $d >> 24 ] | $pc2mapd2[($d >> 16) & 0xFF] | |
1258 | - $pc2mapd3[($d >> 8) & 0xFF] | $pc2mapd4[ $d & 0xFF]; |
|
1258 | + $pc2mapd3[($d >> 8) & 0xFF] | $pc2mapd4[ $d & 0xFF]; |
|
1259 | 1259 | |
1260 | 1260 | // Reorder: odd bytes/even bytes. Push the result in key schedule. |
1261 | 1261 | $val1 = ( $cp & 0xFF000000) | (($cp << 8) & 0x00FF0000) | |
@@ -1440,11 +1440,11 @@ discard block |
||
1440 | 1440 | // Creates the inline-crypt function |
1441 | 1441 | $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( |
1442 | 1442 | array( |
1443 | - 'init_crypt' => $init_crypt, |
|
1444 | - 'init_encrypt' => $init_encrypt, |
|
1445 | - 'init_decrypt' => $init_decrypt, |
|
1446 | - 'encrypt_block' => $crypt_block[self::ENCRYPT], |
|
1447 | - 'decrypt_block' => $crypt_block[self::DECRYPT] |
|
1443 | + 'init_crypt' => $init_crypt, |
|
1444 | + 'init_encrypt' => $init_encrypt, |
|
1445 | + 'init_decrypt' => $init_decrypt, |
|
1446 | + 'encrypt_block' => $crypt_block[self::ENCRYPT], |
|
1447 | + 'decrypt_block' => $crypt_block[self::DECRYPT] |
|
1448 | 1448 | ) |
1449 | 1449 | ); |
1450 | 1450 | } |