Passed
Push — develop ( 6fb9ed...4c8ea7 )
by Pieter van der
01:18 queued 14s
created
library/tiqr/Tiqr/OATH/OCRA.php 3 patches
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -36,11 +36,11 @@  discard block
 block discarded – undo
36 36
      */
37 37
     private static function _hmac(string $crypto, string $keyBytes, string $text) : string
38 38
     {
39
-         $hash = hash_hmac($crypto, $text, $keyBytes);
40
-         if (false === $hash) {
41
-             throw new Exception("calculating hash_hmac failed");
42
-         }
43
-         return $hash;
39
+            $hash = hash_hmac($crypto, $text, $keyBytes);
40
+            if (false === $hash) {
41
+                throw new Exception("calculating hash_hmac failed");
42
+            }
43
+            return $hash;
44 44
     }
45 45
 
46 46
     /**
@@ -99,12 +99,12 @@  discard block
 block discarded – undo
99 99
      * alternative to "-S064"
100 100
      */
101 101
     static function generateOCRA(string $ocraSuite,
102
-                                 string $key,
103
-                                 string $counter,
104
-                                 string $question,
105
-                                 string $password,
106
-                                 string $sessionInformation,
107
-                                 string $timeStamp) : string
102
+                                    string $key,
103
+                                    string $counter,
104
+                                    string $question,
105
+                                    string $password,
106
+                                    string $sessionInformation,
107
+                                    string $timeStamp) : string
108 108
     {
109 109
         $codeDigits = 0;
110 110
         $crypto = "";
Please login to merge, or discard this patch.
Spacing   +73 added lines, -73 removed lines patch added patch discarded remove patch
@@ -58,18 +58,18 @@  discard block
 block discarded – undo
58 58
     private static function _hexStr2Bytes(string $hex, int $maxBytes, string $parameterName) : string
59 59
     {
60 60
         $len = strlen($hex);
61
-        if ( ($len !== 0) && (! ctype_xdigit($hex)) ) {
61
+        if (($len !== 0) && (!ctype_xdigit($hex))) {
62 62
             throw new InvalidArgumentException("Parameter '$parameterName' contains non hex digits");
63 63
         }
64
-        if ( $len % 2 !== 0 ) {
64
+        if ($len % 2 !== 0) {
65 65
             throw new InvalidArgumentException("Parameter '$parameterName' contains odd number of hex digits");
66 66
         }
67
-        if ( $len > $maxBytes * 2) {
67
+        if ($len > $maxBytes * 2) {
68 68
             throw new InvalidArgumentException("Parameter '$parameterName' too long");
69 69
         }
70 70
         // hex2bin logs PHP warnings when $hex contains invalid characters or has uneven length. Because we
71 71
         // check for these conditions above hex2bin() should always be silent
72
-        $res=hex2bin($hex);
72
+        $res = hex2bin($hex);
73 73
         if (false === $res) {
74 74
             throw new InvalidArgumentException("Parameter '$parameterName' could not be decoded");
75 75
         }
@@ -122,72 +122,72 @@  discard block
 block discarded – undo
122 122
         $cryptoFunction = $components[1];
123 123
         $dataInput = strtolower($components[2]); // lower here so we can do case insensitive comparisons
124 124
         
125
-        if(stripos($cryptoFunction, "sha1")!==false)
125
+        if (stripos($cryptoFunction, "sha1") !== false)
126 126
             $crypto = "sha1";
127
-        if(stripos($cryptoFunction, "sha256")!==false)
127
+        if (stripos($cryptoFunction, "sha256") !== false)
128 128
             $crypto = "sha256";
129
-        if(stripos($cryptoFunction, "sha512")!==false)
129
+        if (stripos($cryptoFunction, "sha512") !== false)
130 130
             $crypto = "sha512";
131 131
         
132
-        $codeDigits = substr($cryptoFunction, strrpos($cryptoFunction, "-")+1);
132
+        $codeDigits = substr($cryptoFunction, strrpos($cryptoFunction, "-") + 1);
133 133
                 
134 134
         // The size of the byte array message to be encrypted
135 135
         // Counter
136
-        if($dataInput[0] == "c" ) {
136
+        if ($dataInput[0] == "c") {
137 137
             // Fix the length of the HEX string
138
-            while(strlen($counter) < 16)
139
-                $counter = "0" . $counter;
140
-            $counterLength=8;
138
+            while (strlen($counter) < 16)
139
+                $counter = "0".$counter;
140
+            $counterLength = 8;
141 141
         }
142 142
         // Question
143
-        if($dataInput[0] == "q" ||
144
-                stripos($dataInput, "-q")!==false) {
145
-            while(strlen($question) < 256)
146
-                $question = $question . "0";
147
-            $questionLength=128;
143
+        if ($dataInput[0] == "q" ||
144
+                stripos($dataInput, "-q") !== false) {
145
+            while (strlen($question) < 256)
146
+                $question = $question."0";
147
+            $questionLength = 128;
148 148
         }
149 149
 
150 150
         // Password
151
-        if(stripos($dataInput, "psha1")!==false) {
152
-            while(strlen($password) < 40)
153
-                $password = "0" . $password;
154
-            $passwordLength=20;
151
+        if (stripos($dataInput, "psha1") !== false) {
152
+            while (strlen($password) < 40)
153
+                $password = "0".$password;
154
+            $passwordLength = 20;
155 155
         }
156 156
     
157
-        if(stripos($dataInput, "psha256")!==false) {
158
-            while(strlen($password) < 64)
159
-                $password = "0" . $password;
160
-            $passwordLength=32;
157
+        if (stripos($dataInput, "psha256") !== false) {
158
+            while (strlen($password) < 64)
159
+                $password = "0".$password;
160
+            $passwordLength = 32;
161 161
         }
162 162
         
163
-        if(stripos($dataInput, "psha512")!==false) {
164
-            while(strlen($password) < 128)
165
-                $password = "0" . $password;
166
-            $passwordLength=64;
163
+        if (stripos($dataInput, "psha512") !== false) {
164
+            while (strlen($password) < 128)
165
+                $password = "0".$password;
166
+            $passwordLength = 64;
167 167
         }
168 168
         
169 169
         // sessionInformation
170
-        if(stripos($dataInput, "s064") !==false) {
171
-            while(strlen($sessionInformation) < 128)
172
-                $sessionInformation = "0" . $sessionInformation;
170
+        if (stripos($dataInput, "s064") !== false) {
171
+            while (strlen($sessionInformation) < 128)
172
+                $sessionInformation = "0".$sessionInformation;
173 173
 
174
-            $sessionInformationLength=64;
175
-        } else if(stripos($dataInput, "s128") !==false) {
176
-            while(strlen($sessionInformation) < 256)
177
-                $sessionInformation = "0" . $sessionInformation;
174
+            $sessionInformationLength = 64;
175
+        } else if (stripos($dataInput, "s128") !== false) {
176
+            while (strlen($sessionInformation) < 256)
177
+                $sessionInformation = "0".$sessionInformation;
178 178
         
179
-            $sessionInformationLength=128;
180
-        } else if(stripos($dataInput, "s256") !==false) {
181
-            while(strlen($sessionInformation) < 512)
182
-                $sessionInformation = "0" . $sessionInformation;
179
+            $sessionInformationLength = 128;
180
+        } else if (stripos($dataInput, "s256") !== false) {
181
+            while (strlen($sessionInformation) < 512)
182
+                $sessionInformation = "0".$sessionInformation;
183 183
         
184
-            $sessionInformationLength=256;
185
-        } else if(stripos($dataInput, "s512") !==false) {
186
-            while(strlen($sessionInformation) < 128)
187
-                $sessionInformation = "0" . $sessionInformation;
184
+            $sessionInformationLength = 256;
185
+        } else if (stripos($dataInput, "s512") !== false) {
186
+            while (strlen($sessionInformation) < 128)
187
+                $sessionInformation = "0".$sessionInformation;
188 188
         
189
-            $sessionInformationLength=64;
190
-        } else if (stripos($dataInput, "-s") !== false ) {
189
+            $sessionInformationLength = 64;
190
+        } else if (stripos($dataInput, "-s") !== false) {
191 191
             // deviation from spec. Officially 's' without a length indicator is not in the reference implementation.
192 192
             // RFC is ambigious. However we have supported this in Tiqr since day 1, so we continue to support it.
193 193
 
@@ -196,27 +196,27 @@  discard block
 block discarded – undo
196 196
             // to prevent matching the "s" in the password input e.g. "psha1".
197 197
             // [C] | QFxx | [PH | Snnn | TG] : Challenge-Response computation
198 198
             // [C] | QFxx | [PH | TG] : Plain Signature computation
199
-            while(strlen($sessionInformation) < 128)
200
-                $sessionInformation = "0" . $sessionInformation;
199
+            while (strlen($sessionInformation) < 128)
200
+                $sessionInformation = "0".$sessionInformation;
201 201
             
202
-            $sessionInformationLength=64;
202
+            $sessionInformationLength = 64;
203 203
         }
204 204
         
205 205
         
206 206
              
207 207
         // TimeStamp
208
-        if($dataInput[0] == "t" ||
208
+        if ($dataInput[0] == "t" ||
209 209
                 stripos($dataInput, "-t") !== false) {
210
-            while(strlen($timeStamp) < 16)
211
-                $timeStamp = "0" . $timeStamp;
212
-            $timeStampLength=8;
210
+            while (strlen($timeStamp) < 16)
211
+                $timeStamp = "0".$timeStamp;
212
+            $timeStampLength = 8;
213 213
         }
214 214
 
215 215
         // Put the bytes of "ocraSuite" parameters into the message
216 216
         
217
-        $msg = array_fill(0,$ocraSuiteLength+$counterLength+$questionLength+$passwordLength+$sessionInformationLength+$timeStampLength+1, 0);
217
+        $msg = array_fill(0, $ocraSuiteLength + $counterLength + $questionLength + $passwordLength + $sessionInformationLength + $timeStampLength + 1, 0);
218 218
                 
219
-        for($i=0;$i<strlen($ocraSuite);$i++) {
219
+        for ($i = 0; $i < strlen($ocraSuite); $i++) {
220 220
             $msg[$i] = $ocraSuite[$i];
221 221
         }
222 222
         
@@ -225,9 +225,9 @@  discard block
 block discarded – undo
225 225
 
226 226
         // Put the bytes of "Counter" to the message
227 227
         // Input is HEX encoded
228
-        if($counterLength > 0 ) {
228
+        if ($counterLength > 0) {
229 229
             $bArray = self::_hexStr2Bytes($counter, $counterLength, 'counter');
230
-            for ($i=0;$i<strlen($bArray);$i++) {
230
+            for ($i = 0; $i < strlen($bArray); $i++) {
231 231
                 $msg [$i + $ocraSuiteLength + 1] = $bArray[$i];
232 232
             }
233 233
         }
@@ -235,41 +235,41 @@  discard block
 block discarded – undo
235 235
 
236 236
         // Put the bytes of "question" to the message
237 237
         // Input is text encoded
238
-        if($questionLength > 0 ) {
238
+        if ($questionLength > 0) {
239 239
             $bArray = self::_hexStr2Bytes($question, $questionLength, 'question');
240
-            for ($i=0;$i<strlen($bArray);$i++) {
240
+            for ($i = 0; $i < strlen($bArray); $i++) {
241 241
                 $msg [$i + $ocraSuiteLength + 1 + $counterLength] = $bArray[$i];
242 242
             }
243 243
         }
244 244
 
245 245
         // Put the bytes of "password" to the message
246 246
         // Input is HEX encoded
247
-        if($passwordLength > 0){
247
+        if ($passwordLength > 0) {
248 248
             $bArray = self::_hexStr2Bytes($password, $passwordLength, 'password');
249
-            for ($i=0;$i<strlen($bArray);$i++) {
249
+            for ($i = 0; $i < strlen($bArray); $i++) {
250 250
                 $msg [$i + $ocraSuiteLength + 1 + $counterLength + $questionLength] = $bArray[$i];
251 251
             }
252 252
         }
253 253
 
254 254
         // Put the bytes of "sessionInformation" to the message
255 255
         // Input is HEX encoded
256
-        if($sessionInformationLength > 0 ){
256
+        if ($sessionInformationLength > 0) {
257 257
             $bArray = self::_hexStr2Bytes($sessionInformation, $sessionInformationLength, 'sessionInformation');
258
-            for ($i=0;$i<strlen($bArray);$i++) {
258
+            for ($i = 0; $i < strlen($bArray); $i++) {
259 259
                 $msg [$i + $ocraSuiteLength + 1 + $counterLength + $questionLength + $passwordLength] = $bArray[$i];
260 260
             }
261 261
         }
262 262
 
263 263
         // Put the bytes of "time" to the message
264 264
         // Input is HEX encoded value of minutes
265
-        if($timeStampLength > 0){
265
+        if ($timeStampLength > 0) {
266 266
             $bArray = self::_hexStr2Bytes($timeStamp, $timeStampLength, 'timeStamp');
267
-            for ($i=0;$i<strlen($bArray);$i++) {
267
+            for ($i = 0; $i < strlen($bArray); $i++) {
268 268
                 $msg [$i + $ocraSuiteLength + 1 + $counterLength + $questionLength + $passwordLength + $sessionInformationLength] = $bArray[$i];
269 269
             }
270 270
         }
271 271
         
272
-        $byteKey = self::_hexStr2Bytes($key, strlen($key)/2, 'key');
272
+        $byteKey = self::_hexStr2Bytes($key, strlen($key) / 2, 'key');
273 273
               
274 274
         $msg = implode("", $msg);
275 275
 
@@ -291,23 +291,23 @@  discard block
 block discarded – undo
291 291
     static function _oath_truncate(string $hash, int $length = 6) : string
292 292
     {
293 293
         // Convert to dec
294
-        foreach(str_split($hash,2) as $hex)
294
+        foreach (str_split($hash, 2) as $hex)
295 295
         {
296
-            $hmac_result[]=hexdec($hex);
296
+            $hmac_result[] = hexdec($hex);
297 297
         }
298 298
     
299 299
         // Find offset
300 300
         $offset = $hmac_result[count($hmac_result) - 1] & 0xf;
301 301
     
302 302
         $v = strval(
303
-            (($hmac_result[$offset+0] & 0x7f) << 24 ) |
304
-            (($hmac_result[$offset+1] & 0xff) << 16 ) |
305
-            (($hmac_result[$offset+2] & 0xff) << 8 ) |
306
-            ($hmac_result[$offset+3] & 0xff)
303
+            (($hmac_result[$offset + 0] & 0x7f) << 24) |
304
+            (($hmac_result[$offset + 1] & 0xff) << 16) |
305
+            (($hmac_result[$offset + 2] & 0xff) << 8) |
306
+            ($hmac_result[$offset + 3] & 0xff)
307 307
         );
308 308
 
309 309
         // Prefix truncated string with 0's to ensure it always has the required length
310
-        $v=str_pad($v, $length, "0", STR_PAD_LEFT);
310
+        $v = str_pad($v, $length, "0", STR_PAD_LEFT);
311 311
 
312 312
         $v = substr($v, strlen($v) - $length);
313 313
         return $v;
Please login to merge, or discard this patch.
Braces   +42 added lines, -28 removed lines patch added patch discarded remove patch
@@ -122,12 +122,15 @@  discard block
 block discarded – undo
122 122
         $cryptoFunction = $components[1];
123 123
         $dataInput = strtolower($components[2]); // lower here so we can do case insensitive comparisons
124 124
         
125
-        if(stripos($cryptoFunction, "sha1")!==false)
126
-            $crypto = "sha1";
127
-        if(stripos($cryptoFunction, "sha256")!==false)
128
-            $crypto = "sha256";
129
-        if(stripos($cryptoFunction, "sha512")!==false)
130
-            $crypto = "sha512";
125
+        if(stripos($cryptoFunction, "sha1")!==false) {
126
+                    $crypto = "sha1";
127
+        }
128
+        if(stripos($cryptoFunction, "sha256")!==false) {
129
+                    $crypto = "sha256";
130
+        }
131
+        if(stripos($cryptoFunction, "sha512")!==false) {
132
+                    $crypto = "sha512";
133
+        }
131 134
         
132 135
         $codeDigits = substr($cryptoFunction, strrpos($cryptoFunction, "-")+1);
133 136
                 
@@ -135,56 +138,65 @@  discard block
 block discarded – undo
135 138
         // Counter
136 139
         if($dataInput[0] == "c" ) {
137 140
             // Fix the length of the HEX string
138
-            while(strlen($counter) < 16)
139
-                $counter = "0" . $counter;
141
+            while(strlen($counter) < 16) {
142
+                            $counter = "0" . $counter;
143
+            }
140 144
             $counterLength=8;
141 145
         }
142 146
         // Question
143 147
         if($dataInput[0] == "q" ||
144 148
                 stripos($dataInput, "-q")!==false) {
145
-            while(strlen($question) < 256)
146
-                $question = $question . "0";
149
+            while(strlen($question) < 256) {
150
+                            $question = $question . "0";
151
+            }
147 152
             $questionLength=128;
148 153
         }
149 154
 
150 155
         // Password
151 156
         if(stripos($dataInput, "psha1")!==false) {
152
-            while(strlen($password) < 40)
153
-                $password = "0" . $password;
157
+            while(strlen($password) < 40) {
158
+                            $password = "0" . $password;
159
+            }
154 160
             $passwordLength=20;
155 161
         }
156 162
     
157 163
         if(stripos($dataInput, "psha256")!==false) {
158
-            while(strlen($password) < 64)
159
-                $password = "0" . $password;
164
+            while(strlen($password) < 64) {
165
+                            $password = "0" . $password;
166
+            }
160 167
             $passwordLength=32;
161 168
         }
162 169
         
163 170
         if(stripos($dataInput, "psha512")!==false) {
164
-            while(strlen($password) < 128)
165
-                $password = "0" . $password;
171
+            while(strlen($password) < 128) {
172
+                            $password = "0" . $password;
173
+            }
166 174
             $passwordLength=64;
167 175
         }
168 176
         
169 177
         // sessionInformation
170 178
         if(stripos($dataInput, "s064") !==false) {
171
-            while(strlen($sessionInformation) < 128)
172
-                $sessionInformation = "0" . $sessionInformation;
179
+            while(strlen($sessionInformation) < 128) {
180
+                            $sessionInformation = "0" . $sessionInformation;
181
+            }
173 182
 
174 183
             $sessionInformationLength=64;
175 184
         } else if(stripos($dataInput, "s128") !==false) {
176
-            while(strlen($sessionInformation) < 256)
177
-                $sessionInformation = "0" . $sessionInformation;
185
+            while(strlen($sessionInformation) < 256) {
186
+                            $sessionInformation = "0" . $sessionInformation;
187
+            }
178 188
         
179 189
             $sessionInformationLength=128;
180 190
         } else if(stripos($dataInput, "s256") !==false) {
181
-            while(strlen($sessionInformation) < 512)
182
-                $sessionInformation = "0" . $sessionInformation;
191
+            while(strlen($sessionInformation) < 512) {
192
+                            $sessionInformation = "0" . $sessionInformation;
193
+            }
183 194
         
184 195
             $sessionInformationLength=256;
185 196
         } else if(stripos($dataInput, "s512") !==false) {
186
-            while(strlen($sessionInformation) < 128)
187
-                $sessionInformation = "0" . $sessionInformation;
197
+            while(strlen($sessionInformation) < 128) {
198
+                            $sessionInformation = "0" . $sessionInformation;
199
+            }
188 200
         
189 201
             $sessionInformationLength=64;
190 202
         } else if (stripos($dataInput, "-s") !== false ) {
@@ -196,8 +208,9 @@  discard block
 block discarded – undo
196 208
             // to prevent matching the "s" in the password input e.g. "psha1".
197 209
             // [C] | QFxx | [PH | Snnn | TG] : Challenge-Response computation
198 210
             // [C] | QFxx | [PH | TG] : Plain Signature computation
199
-            while(strlen($sessionInformation) < 128)
200
-                $sessionInformation = "0" . $sessionInformation;
211
+            while(strlen($sessionInformation) < 128) {
212
+                            $sessionInformation = "0" . $sessionInformation;
213
+            }
201 214
             
202 215
             $sessionInformationLength=64;
203 216
         }
@@ -207,8 +220,9 @@  discard block
 block discarded – undo
207 220
         // TimeStamp
208 221
         if($dataInput[0] == "t" ||
209 222
                 stripos($dataInput, "-t") !== false) {
210
-            while(strlen($timeStamp) < 16)
211
-                $timeStamp = "0" . $timeStamp;
223
+            while(strlen($timeStamp) < 16) {
224
+                            $timeStamp = "0" . $timeStamp;
225
+            }
212 226
             $timeStampLength=8;
213 227
         }
214 228
 
Please login to merge, or discard this patch.