public function testEncrypt() { \touch(__DIR__ . '/tmp/paragon_avatar.encrypted.png'); \chmod(__DIR__ . '/tmp/paragon_avatar.encrypted.png', 0777); \touch(__DIR__ . '/tmp/paragon_avatar.decrypted.png'); \chmod(__DIR__ . '/tmp/paragon_avatar.decrypted.png', 0777); $key = new Key(\str_repeat('B', 32)); File::encryptFile(__DIR__ . '/tmp/paragon_avatar.png', __DIR__ . '/tmp/paragon_avatar.encrypted.png', $key); File::decryptFile(__DIR__ . '/tmp/paragon_avatar.encrypted.png', __DIR__ . '/tmp/paragon_avatar.decrypted.png', $key); $this->assertEquals(\hash_file('sha256', __DIR__ . '/tmp/paragon_avatar.png'), \hash_file('sha256', __DIR__ . '/tmp/paragon_avatar.decrypted.png')); }
public function testEncryptFail() { \touch(__DIR__ . '/tmp/paragon_avatar.encrypt_fail.png'); \chmod(__DIR__ . '/tmp/paragon_avatar.encrypt_fail.png', 0777); \touch(__DIR__ . '/tmp/paragon_avatar.decrypt_fail.png'); \chmod(__DIR__ . '/tmp/paragon_avatar.decrypt_fail.png', 0777); $key = new Key(\str_repeat('B', 32)); File::encryptFile(__DIR__ . '/tmp/paragon_avatar.png', __DIR__ . '/tmp/paragon_avatar.encrypt_fail.png', $key); $fp = \fopen(__DIR__ . '/tmp/paragon_avatar.encrypt_fail.png', 'ab'); \fwrite($fp, \Sodium\randombytes_buf(1)); fclose($fp); try { File::decryptFile(__DIR__ . '/tmp/paragon_avatar.encrypt_fail.png', __DIR__ . '/tmp/paragon_avatar.decrypt_fail.png', $key); throw new \Exception('ERROR: THIS SHOULD ALWAYS FAIL'); } catch (CryptoException\InvalidMessage $e) { $this->assertTrue($e instanceof CryptoException\InvalidMessage); } }
public function testEncryptFail() { \touch(__DIR__ . '/tmp/paragon_avatar.encrypt_fail.png'); \chmod(__DIR__ . '/tmp/paragon_avatar.encrypt_fail.png', 0777); \touch(__DIR__ . '/tmp/paragon_avatar.decrypt_fail.png'); \chmod(__DIR__ . '/tmp/paragon_avatar.decrypt_fail.png', 0777); $key = new EncryptionKey(\str_repeat('B', 32)); File::encryptFile(__DIR__ . '/tmp/paragon_avatar.png', __DIR__ . '/tmp/paragon_avatar.encrypt_fail.png', $key); $fp = \fopen(__DIR__ . '/tmp/paragon_avatar.encrypt_fail.png', 'ab'); \fwrite($fp, \Sodium\randombytes_buf(1)); fclose($fp); try { File::decryptFile(__DIR__ . '/tmp/paragon_avatar.encrypt_fail.png', __DIR__ . '/tmp/paragon_avatar.decrypt_fail.png', $key); $this->fail('This should have thrown an InvalidMessage exception!'); } catch (CryptoException\InvalidMessage $e) { $this->assertTrue($e instanceof CryptoException\InvalidMessage); \unlink(__DIR__ . '/tmp/paragon_avatar.encrypt_fail.png'); \unlink(__DIR__ . '/tmp/paragon_avatar.decrypt_fail.png'); } }