@@ -524,8 +524,8 @@  | 
                                                    ||
| 524 | 524 | # partly taken from https://github.com/symfony/polyfill-php56/blob/master/Php56.php#L45-L51  | 
                                                        
| 525 | 525 | $ret = 0;  | 
                                                        
| 526 | 526 |  			for ($i = 0; $i < strlen($str1); ++$i) { | 
                                                        
| 527 | - $ret |= ord($str1[$i]) ^ ord($str2[$i]);  | 
                                                        |
| 528 | - }  | 
                                                        |
| 527 | + $ret |= ord($str1[$i]) ^ ord($str2[$i]);  | 
                                                        |
| 528 | + }  | 
                                                        |
| 529 | 529 | return 0 === $result;  | 
                                                        
| 530 | 530 | }  | 
                                                        
| 531 | 531 | }  | 
                                                        
@@ -42,8 +42,8 @@ discard block  | 
                                                    ||
| 42 | 42 | * @return CryptTool  | 
                                                        
| 43 | 43 | */  | 
                                                        
| 44 | 44 |  	public static function getInstance() { | 
                                                        
| 45 | -		if(null === self::$instance) { | 
                                                        |
| 46 | - foreach(array(  | 
                                                        |
| 45 | +		if (null === self::$instance) { | 
                                                        |
| 46 | + foreach (array(  | 
                                                        |
| 47 | 47 |  				function() { | 
                                                        
| 48 | 48 | return self::createInstance(self::TYPE_SODIUM);  | 
                                                        
| 49 | 49 | },  | 
                                                        
@@ -51,7 +51,7 @@ discard block  | 
                                                    ||
| 51 | 51 | return self::createInstance(self::TYPE_SALT);  | 
                                                        
| 52 | 52 |  				}) as $instanceGenerator) { | 
                                                        
| 53 | 53 | $i = $instanceGenerator->__invoke();  | 
                                                        
| 54 | -				if(null !== $i) { | 
                                                        |
| 54 | +				if (null !== $i) { | 
                                                        |
| 55 | 55 | self::$instance = $i;  | 
                                                        
| 56 | 56 | break;  | 
                                                        
| 57 | 57 | }  | 
                                                        
@@ -66,18 +66,18 @@ discard block  | 
                                                    ||
| 66 | 66 | * @return null|CryptTool null on unknown type  | 
                                                        
| 67 | 67 | */  | 
                                                        
| 68 | 68 |  	public static function createInstance($type) { | 
                                                        
| 69 | -		switch($type) { | 
                                                        |
| 69 | +		switch ($type) { | 
                                                        |
| 70 | 70 | case self::TYPE_SODIUM:  | 
                                                        
| 71 | 71 | $instance = new CryptToolSodium();  | 
                                                        
| 72 | -				if(false === $instance->isSupported()) { | 
                                                        |
| 72 | +				if (false === $instance->isSupported()) { | 
                                                        |
| 73 | 73 | //try to instance old version of sodium wrapper  | 
                                                        
| 74 | 74 | /** @noinspection PhpDeprecationInspection */  | 
                                                        
| 75 | 75 | $instance = new CryptToolSodiumDep();  | 
                                                        
| 76 | 76 | }  | 
                                                        
| 77 | - return $instance->isSupported() ? $instance :null;  | 
                                                        |
| 77 | + return $instance->isSupported() ? $instance : null;  | 
                                                        |
| 78 | 78 | case self::TYPE_SALT:  | 
                                                        
| 79 | 79 | $instance = new CryptToolSalt();  | 
                                                        
| 80 | - return $instance->isSupported() ? $instance :null;  | 
                                                        |
| 80 | + return $instance->isSupported() ? $instance : null;  | 
                                                        |
| 81 | 81 | default:  | 
                                                        
| 82 | 82 | return null;  | 
                                                        
| 83 | 83 | }  | 
                                                        
@@ -104,7 +104,7 @@ discard block  | 
                                                    ||
| 104 | 104 | */  | 
                                                        
| 105 | 105 |  	final public function encryptMessageText($text, $senderPrivateKey, $recipientPublicKey, $nonce) { | 
                                                        
| 106 | 106 | /* prepend type byte (0x01) to message data */  | 
                                                        
| 107 | - $textBytes = "\x01" . $text;  | 
                                                        |
| 107 | + $textBytes = "\x01".$text;  | 
                                                        |
| 108 | 108 | |
| 109 | 109 | /* determine random amount of PKCS7 padding */  | 
                                                        
| 110 | 110 | $padbytes = $this->generatePadBytes();  | 
                                                        
@@ -129,7 +129,7 @@ discard block  | 
                                                    ||
| 129 | 129 | $senderPrivateKey,  | 
                                                        
| 130 | 130 | $recipientPublicKey,  | 
                                                        
| 131 | 131 |  			$nonce) { | 
                                                        
| 132 | - $message = "\x02" . $this->hex2bin($uploadFileResult->getBlobId());  | 
                                                        |
| 132 | + $message = "\x02".$this->hex2bin($uploadFileResult->getBlobId());  | 
                                                        |
| 133 | 133 |  		$message .= pack('V', $encryptResult->getSize()); | 
                                                        
| 134 | 134 | $message .= $encryptResult->getNonce();  | 
                                                        
| 135 | 135 | |
@@ -160,11 +160,11 @@ discard block  | 
                                                    ||
| 160 | 160 | 'i' => 0  | 
                                                        
| 161 | 161 | );  | 
                                                        
| 162 | 162 | |
| 163 | -		if($thumbnailUploadFileResult != null && strlen($thumbnailUploadFileResult->getBlobId()) > 0) { | 
                                                        |
| 163 | +		if ($thumbnailUploadFileResult != null && strlen($thumbnailUploadFileResult->getBlobId()) > 0) { | 
                                                        |
| 164 | 164 | $messageContent['t'] = $thumbnailUploadFileResult->getBlobId();  | 
                                                        
| 165 | 165 | }  | 
                                                        
| 166 | 166 | |
| 167 | - $message = "\x17" . json_encode($messageContent);  | 
                                                        |
| 167 | + $message = "\x17".json_encode($messageContent);  | 
                                                        |
| 168 | 168 | |
| 169 | 169 | /* determine random amount of PKCS7 padding */  | 
                                                        
| 170 | 170 | $padbytes = $this->generatePadBytes();  | 
                                                        
@@ -237,7 +237,7 @@ discard block  | 
                                                    ||
| 237 | 237 | |
| 238 | 238 | /* remove padding */  | 
                                                        
| 239 | 239 | $padbytes = ord($data[strlen($data)-1]);  | 
                                                        
| 240 | - $realDataLength = strlen($data) - $padbytes;  | 
                                                        |
| 240 | + $realDataLength = strlen($data)-$padbytes;  | 
                                                        |
| 241 | 241 |  		if ($realDataLength < 1) { | 
                                                        
| 242 | 242 | throw new BadMessageException();  | 
                                                        
| 243 | 243 | }  | 
                                                        
@@ -263,7 +263,7 @@ discard block  | 
                                                    ||
| 263 | 263 | return new TextMessage(substr($data, 1));  | 
                                                        
| 264 | 264 | case DeliveryReceipt::TYPE_CODE:  | 
                                                        
| 265 | 265 | /* Delivery receipt */  | 
                                                        
| 266 | -				if ($realDataLength < (self::MESSAGE_ID_LEN-2) || (($realDataLength - 2) % self::MESSAGE_ID_LEN) != 0)  { | 
                                                        |
| 266 | +				if ($realDataLength < (self::MESSAGE_ID_LEN-2) || (($realDataLength-2)%self::MESSAGE_ID_LEN) != 0) { | 
                                                        |
| 267 | 267 | throw new BadMessageException();  | 
                                                        
| 268 | 268 | }  | 
                                                        
| 269 | 269 | |
@@ -273,7 +273,7 @@ discard block  | 
                                                    ||
| 273 | 273 | return new DeliveryReceipt($receiptType, $messageIds);  | 
                                                        
| 274 | 274 | case ImageMessage::TYPE_CODE:  | 
                                                        
| 275 | 275 | /* Image Message */  | 
                                                        
| 276 | -				if ($realDataLength != 1 + self::BLOB_ID_LEN + self::IMAGE_FILE_SIZE_LEN + self::IMAGE_NONCE_LEN)  { | 
                                                        |
| 276 | +				if ($realDataLength != 1+self::BLOB_ID_LEN+self::IMAGE_FILE_SIZE_LEN+self::IMAGE_NONCE_LEN) { | 
                                                        |
| 277 | 277 | throw new BadMessageException();  | 
                                                        
| 278 | 278 | }  | 
                                                        
| 279 | 279 | |
@@ -284,12 +284,12 @@ discard block  | 
                                                    ||
| 284 | 284 | case FileMessage::TYPE_CODE:  | 
                                                        
| 285 | 285 | /* Image Message */  | 
                                                        
| 286 | 286 | $decodeResult = json_decode(substr($data, 1), true);  | 
                                                        
| 287 | -				if(null === $decodeResult || false === $decodeResult) { | 
                                                        |
| 287 | +				if (null === $decodeResult || false === $decodeResult) { | 
                                                        |
| 288 | 288 | throw new BadMessageException();  | 
                                                        
| 289 | 289 | }  | 
                                                        
| 290 | 290 | |
| 291 | 291 |  				$values = AssocArray::byJsonString(substr($data, 1), array('b', 't', 'k', 'm', 'n', 's')); | 
                                                        
| 292 | -				if(null === $values) { | 
                                                        |
| 292 | +				if (null === $values) { | 
                                                        |
| 293 | 293 | throw new BadMessageException();  | 
                                                        
| 294 | 294 | }  | 
                                                        
| 295 | 295 | |
@@ -391,7 +391,7 @@ discard block  | 
                                                    ||
| 391 | 391 | * @return null|string  | 
                                                        
| 392 | 392 | */  | 
                                                        
| 393 | 393 |  	public final function decryptFile($data, $key) { | 
                                                        
| 394 | - $result = $this->openSecretBox($data, self::FILE_NONCE, $key);  | 
                                                        |
| 394 | + $result = $this->openSecretBox($data, self::FILE_NONCE, $key);  | 
                                                        |
| 395 | 395 | return false === $result ? null : $result;  | 
                                                        
| 396 | 396 | }  | 
                                                        
| 397 | 397 | |
@@ -402,7 +402,7 @@ discard block  | 
                                                    ||
| 402 | 402 | */  | 
                                                        
| 403 | 403 |  	public final function encryptFileThumbnail($data, $key) { | 
                                                        
| 404 | 404 | $box = $this->makeSecretBox($data, self::FILE_THUMBNAIL_NONCE, $key);  | 
                                                        
| 405 | - return new EncryptResult($box, $key, self::FILE_THUMBNAIL_NONCE, strlen($box));  | 
                                                        |
| 405 | + return new EncryptResult($box, $key, self::FILE_THUMBNAIL_NONCE, strlen($box));  | 
                                                        |
| 406 | 406 | }  | 
                                                        
| 407 | 407 | |
| 408 | 408 |  	public final function decryptFileThumbnail($data, $key) { | 
                                                        
@@ -449,7 +449,7 @@ discard block  | 
                                                    ||
| 449 | 449 | */  | 
                                                        
| 450 | 450 |  	private function generatePadBytes() { | 
                                                        
| 451 | 451 | $padbytes = 0;  | 
                                                        
| 452 | -		while($padbytes < 1 || $padbytes > 255) { | 
                                                        |
| 452 | +		while ($padbytes < 1 || $padbytes > 255) { | 
                                                        |
| 453 | 453 | $padbytes = ord($this->createRandom(1));  | 
                                                        
| 454 | 454 | }  | 
                                                        
| 455 | 455 | return $padbytes;  | 
                                                        
@@ -8,7 +8,6 @@  | 
                                                    ||
| 8 | 8 | namespace Threema\Console\Command;  | 
                                                        
| 9 | 9 | |
| 10 | 10 | use Threema\Console\Common;  | 
                                                        
| 11 | -use Threema\MsgApi\Tools\CryptTool;  | 
                                                        |
| 12 | 11 | |
| 13 | 12 |  class GenerateKeyPair extends Base { | 
                                                        
| 14 | 13 |  	function __construct() { | 
                                                        
@@ -56,7 +56,7 @@ discard block  | 
                                                    ||
| 56 | 56 | |
| 57 | 57 | $this->assertNotNull($message);  | 
                                                        
| 58 | 58 | $this->assertTrue($message instanceof TextMessage);  | 
                                                        
| 59 | -			if($message instanceof TextMessage) { | 
                                                        |
| 59 | +			if ($message instanceof TextMessage) { | 
                                                        |
| 60 | 60 | $this->assertEquals($message->getText(), 'Dies ist eine Testnachricht. äöü');  | 
                                                        
| 61 | 61 | }  | 
                                                        
| 62 | 62 | });  | 
                                                        
@@ -92,7 +92,7 @@ discard block  | 
                                                    ||
| 92 | 92 | |
| 93 | 93 | |
| 94 | 94 |  	public function testDerivePublicKey() { | 
                                                        
| 95 | -		$this->doTest(function(CryptTool $cryptTool, $prefix){ | 
                                                        |
| 95 | +		$this->doTest(function(CryptTool $cryptTool, $prefix) { | 
                                                        |
| 96 | 96 | $publicKey = $cryptTool->derivePublicKey($cryptTool->hex2bin(Common::getPrivateKey(Constants::myPrivateKey)));  | 
                                                        
| 97 | 97 | $myPublicKey = $cryptTool->hex2bin(Common::getPublicKey(Constants::myPublicKey));  | 
                                                        
| 98 | 98 | |
@@ -165,15 +165,15 @@ discard block  | 
                                                    ||
| 165 | 165 | |
| 166 | 166 | // test different strings when comparing and get time needed  | 
                                                        
| 167 | 167 | $result = [];  | 
                                                        
| 168 | - foreach(array(  | 
                                                        |
| 169 | - 'length' => [$string1, $string1 . 'a'],  | 
                                                        |
| 168 | + foreach (array(  | 
                                                        |
| 169 | + 'length' => [$string1, $string1.'a'],  | 
                                                        |
| 170 | 170 | 'diff' => [$string1, $string2],  | 
                                                        
| 171 | 171 | 'same' => [$string1, $string1]  | 
                                                        
| 172 | 172 |  				) as $testName => $strings) { | 
                                                        
| 173 | 173 | $timeStart = microtime(true);  | 
                                                        
| 174 | 174 | $comparisonResult = $cryptTool->stringCompare($strings[0], $strings[1]);  | 
                                                        
| 175 | 175 | $timeEnd = microtime(true);  | 
                                                        
| 176 | - $timeElapsed = $timeEnd - $timeStart;  | 
                                                        |
| 176 | + $timeElapsed = $timeEnd-$timeStart;  | 
                                                        |
| 177 | 177 | |
| 178 | 178 | // echo $prefix.': '.$humanDescr[$testName].': '.$timeElapsed.'; result: '.$comparisonResult.PHP_EOL;  | 
                                                        
| 179 | 179 | $result[$testName] = [$timeElapsed, $comparisonResult];  | 
                                                        
@@ -188,8 +188,8 @@ discard block  | 
                                                    ||
| 188 | 188 | |
| 189 | 189 | // check timings  | 
                                                        
| 190 | 190 | echo 'Timing test results with '.$prefix.':'.PHP_EOL;  | 
                                                        
| 191 | - $timingRatio = 2 - ($result['diff'][0] / $result['same'][0]);  | 
                                                        |
| 192 | - $absoluteDifference = abs($result['diff'][0] - $result['same'][0]);  | 
                                                        |
| 191 | + $timingRatio = 2-($result['diff'][0]/$result['same'][0]);  | 
                                                        |
| 192 | + $absoluteDifference = abs($result['diff'][0]-$result['same'][0]);  | 
                                                        |
| 193 | 193 | echo 'timing ratio: '.$timingRatio.PHP_EOL;  | 
                                                        
| 194 | 194 | echo 'absolute difference: '.$absoluteDifference.PHP_EOL;  | 
                                                        
| 195 | 195 | |
@@ -208,7 +208,7 @@ discard block  | 
                                                    ||
| 208 | 208 | */  | 
                                                        
| 209 | 209 |  	public function testRemoveVar() { | 
                                                        
| 210 | 210 |  		$this->doTest(function(CryptTool $cryptTool, $prefix) { | 
                                                        
| 211 | - foreach(array(  | 
                                                        |
| 211 | + foreach (array(  | 
                                                        |
| 212 | 212 | 'hex' => Constants::myPrivateKeyExtract,  | 
                                                        
| 213 | 213 | 'bin' => $cryptTool->hex2bin(Constants::myPrivateKeyExtract)  | 
                                                        
| 214 | 214 |  					) as $key => $testVar) { | 
                                                        
@@ -222,12 +222,12 @@ discard block  | 
                                                    ||
| 222 | 222 | }  | 
                                                        
| 223 | 223 | |
| 224 | 224 |  	private function doTest(\Closure $c) { | 
                                                        
| 225 | - foreach(array(  | 
                                                        |
| 225 | + foreach (array(  | 
                                                        |
| 226 | 226 | 'Salt' => CryptTool::createInstance(CryptTool::TYPE_SALT),  | 
                                                        
| 227 | 227 | 'Sodium' => CryptTool::createInstance(CryptTool::TYPE_SODIUM)  | 
                                                        
| 228 | 228 |  				) as $key => $instance) { | 
                                                        
| 229 | 229 | |
| 230 | -			if($instance === null) { | 
                                                        |
| 230 | +			if ($instance === null) { | 
                                                        |
| 231 | 231 | echo $key.": could not instance crypt tool\n";  | 
                                                        
| 232 | 232 | break;  | 
                                                        
| 233 | 233 | }  | 
                                                        
@@ -8,7 +8,6 @@  | 
                                                    ||
| 8 | 8 | |
| 9 | 9 | namespace Threema\MsgApi\Tests;  | 
                                                        
| 10 | 10 | |
| 11 | -use Threema\Console\Common;  | 
                                                        |
| 12 | 11 | use Threema\MsgApi\Tools\CryptTool;  | 
                                                        
| 13 | 12 | |
| 14 | 13 | /**  | 
                                                        
@@ -36,7 +36,7 @@ discard block  | 
                                                    ||
| 36 | 36 | |
| 37 | 37 | // test different strings when comparing and get time needed  | 
                                                        
| 38 | 38 | $result = [];  | 
                                                        
| 39 | - foreach(array(  | 
                                                        |
| 39 | + foreach (array(  | 
                                                        |
| 40 | 40 | 'short' => $testStrSmall,  | 
                                                        
| 41 | 41 | 'long' => $testStrLong  | 
                                                        
| 42 | 42 |  		) as $testName => $testString) { | 
                                                        
@@ -44,7 +44,7 @@ discard block  | 
                                                    ||
| 44 | 44 | $conResultBin = $this->cryptTool->hex2bin($testString);  | 
                                                        
| 45 | 45 | $conResultHex = $this->cryptTool->bin2hex($conResultBin);  | 
                                                        
| 46 | 46 | $timeEnd = microtime(true);  | 
                                                        
| 47 | - $timeElapsed = $timeEnd - $timeStart;  | 
                                                        |
| 47 | + $timeElapsed = $timeEnd-$timeStart;  | 
                                                        |
| 48 | 48 | |
| 49 | 49 | echo $testName.': '.$timeElapsed.PHP_EOL;  | 
                                                        
| 50 | 50 | $result[$testName] = [$timeElapsed, $conResultBin, $conResultHex];  | 
                                                        
@@ -55,8 +55,8 @@ discard block  | 
                                                    ||
| 55 | 55 | }  | 
                                                        
| 56 | 56 | |
| 57 | 57 | // check timings  | 
                                                        
| 58 | - $timingRatio = 2 - ($result['short'][0] / $result['long'][0]);  | 
                                                        |
| 59 | - $absoluteDifference = abs($result['short'][0] - $result['long'][0]);  | 
                                                        |
| 58 | + $timingRatio = 2-($result['short'][0]/$result['long'][0]);  | 
                                                        |
| 59 | + $absoluteDifference = abs($result['short'][0]-$result['long'][0]);  | 
                                                        |
| 60 | 60 | echo 'timing ratio: '.$timingRatio.PHP_EOL;  | 
                                                        
| 61 | 61 | echo 'absolute difference: '.$absoluteDifference.PHP_EOL;  | 
                                                        
| 62 | 62 | |