|
|
|
|
@ -19,8 +19,25 @@ require_once realpath( dirname(__FILE__).'/../appinfo/app.php' );
|
|
|
|
|
|
|
|
|
|
use OCA\Encryption;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Class Test_Encryption_Crypt
|
|
|
|
|
*/
|
|
|
|
|
class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public $userId;
|
|
|
|
|
public $pass;
|
|
|
|
|
public $stateFilesTrashbin;
|
|
|
|
|
public $dataLong;
|
|
|
|
|
public $dataUrl;
|
|
|
|
|
public $dataShort;
|
|
|
|
|
/**
|
|
|
|
|
* @var OC_FilesystemView
|
|
|
|
|
*/
|
|
|
|
|
public $view;
|
|
|
|
|
public $legacyEncryptedData;
|
|
|
|
|
public $genPrivateKey;
|
|
|
|
|
public $genPublicKey;
|
|
|
|
|
|
|
|
|
|
function setUp() {
|
|
|
|
|
// reset backend
|
|
|
|
|
\OC_User::clearBackends();
|
|
|
|
|
@ -93,7 +110,10 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
|
|
|
|
|
$this->assertTrue( strlen( $key ) > 16 );
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return String
|
|
|
|
|
*/
|
|
|
|
|
function testGenerateIv() {
|
|
|
|
|
|
|
|
|
|
$iv = Encryption\Crypt::generateIv();
|
|
|
|
|
@ -150,7 +170,10 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
|
|
|
|
|
$this->assertEquals( $this->dataLong, $splitCatfile['encrypted'] );
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return string padded
|
|
|
|
|
*/
|
|
|
|
|
function testAddPadding() {
|
|
|
|
|
|
|
|
|
|
$padded = Encryption\Crypt::addPadding( $this->dataLong );
|
|
|
|
|
@ -214,34 +237,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
|
|
|
|
|
$this->assertEquals( $this->dataShort, $decrypt );
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// These aren't used for now
|
|
|
|
|
// function testSymmetricBlockEncryptShortFileContent() {
|
|
|
|
|
//
|
|
|
|
|
// $crypted = Encryption\Crypt::symmetricBlockEncryptFileContent( $this->dataShort, $this->randomKey );
|
|
|
|
|
//
|
|
|
|
|
// $this->assertNotEquals( $this->dataShort, $crypted );
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// $decrypt = Encryption\Crypt::symmetricBlockDecryptFileContent( $crypted, $this->randomKey );
|
|
|
|
|
//
|
|
|
|
|
// $this->assertEquals( $this->dataShort, $decrypt );
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// function testSymmetricBlockEncryptLongFileContent() {
|
|
|
|
|
//
|
|
|
|
|
// $crypted = Encryption\Crypt::symmetricBlockEncryptFileContent( $this->dataLong, $this->randomKey );
|
|
|
|
|
//
|
|
|
|
|
// $this->assertNotEquals( $this->dataLong, $crypted );
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// $decrypt = Encryption\Crypt::symmetricBlockDecryptFileContent( $crypted, $this->randomKey );
|
|
|
|
|
//
|
|
|
|
|
// $this->assertEquals( $this->dataLong, $decrypt );
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function testSymmetricStreamEncryptShortFileContent() {
|
|
|
|
|
|
|
|
|
|
$filename = 'tmp-'.time().'.test';
|
|
|
|
|
@ -351,9 +347,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
|
|
|
|
|
$decrypt = '';
|
|
|
|
|
|
|
|
|
|
// Manually decrypt chunk
|
|
|
|
|
foreach ($e as $e) {
|
|
|
|
|
foreach ($e as $chunk) {
|
|
|
|
|
|
|
|
|
|
$chunkDecrypt = Encryption\Crypt::symmetricDecryptFileContent( $e, $plainKeyfile );
|
|
|
|
|
$chunkDecrypt = Encryption\Crypt::symmetricDecryptFileContent( $chunk, $plainKeyfile );
|
|
|
|
|
|
|
|
|
|
// Assemble decrypted chunks
|
|
|
|
|
$decrypt .= $chunkDecrypt;
|
|
|
|
|
@ -741,7 +737,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
|
|
|
|
|
$this->assertEquals( $this->dataLong, $decrypt );
|
|
|
|
|
|
|
|
|
|
// change password
|
|
|
|
|
\OC_User::setPassword($this->userId, 'test');
|
|
|
|
|
\OC_User::setPassword($this->userId, 'test', null);
|
|
|
|
|
|
|
|
|
|
// relogin
|
|
|
|
|
$params['uid'] = $this->userId;
|
|
|
|
|
|