|
|
|
|
@ -103,6 +103,10 @@ class EncryptionTest extends TestCase {
|
|
|
|
|
* test if public key from one of the recipients is missing
|
|
|
|
|
*/
|
|
|
|
|
public function testEndUser1() {
|
|
|
|
|
$this->sessionMock->expects($this->once())
|
|
|
|
|
->method('decryptAllModeActivated')
|
|
|
|
|
->willReturn(false);
|
|
|
|
|
|
|
|
|
|
$this->instance->begin('/foo/bar', 'user1', 'r', [], ['users' => ['user1', 'user2', 'user3']]);
|
|
|
|
|
$this->endTest();
|
|
|
|
|
}
|
|
|
|
|
@ -112,6 +116,10 @@ class EncryptionTest extends TestCase {
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
public function testEndUser2() {
|
|
|
|
|
$this->sessionMock->expects($this->once())
|
|
|
|
|
->method('decryptAllModeActivated')
|
|
|
|
|
->willReturn(false);
|
|
|
|
|
|
|
|
|
|
$this->expectException(\OCA\Encryption\Exceptions\PublicKeyMissingException::class);
|
|
|
|
|
|
|
|
|
|
$this->instance->begin('/foo/bar', 'user2', 'r', [], ['users' => ['user1', 'user2', 'user3']]);
|
|
|
|
|
@ -233,35 +241,16 @@ class EncryptionTest extends TestCase {
|
|
|
|
|
*/
|
|
|
|
|
public function testBeginDecryptAll() {
|
|
|
|
|
$path = '/user/files/foo.txt';
|
|
|
|
|
$recoveryKeyId = 'recoveryKeyId';
|
|
|
|
|
$recoveryShareKey = 'recoveryShareKey';
|
|
|
|
|
$decryptAllKey = 'decryptAllKey';
|
|
|
|
|
$fileKey = 'fileKey';
|
|
|
|
|
|
|
|
|
|
$this->sessionMock->expects($this->once())
|
|
|
|
|
->method('decryptAllModeActivated')
|
|
|
|
|
->willReturn(true);
|
|
|
|
|
$this->sessionMock->expects($this->once())
|
|
|
|
|
->method('getDecryptAllUid')
|
|
|
|
|
->willReturn($recoveryKeyId);
|
|
|
|
|
$this->sessionMock->expects($this->once())
|
|
|
|
|
->method('getDecryptAllKey')
|
|
|
|
|
->willReturn($decryptAllKey);
|
|
|
|
|
|
|
|
|
|
$this->keyManagerMock->expects($this->once())
|
|
|
|
|
->method('getEncryptedFileKey')
|
|
|
|
|
->willReturn('encryptedFileKey');
|
|
|
|
|
$this->keyManagerMock->expects($this->once())
|
|
|
|
|
->method('getShareKey')
|
|
|
|
|
->with($path, $recoveryKeyId)
|
|
|
|
|
->willReturn($recoveryShareKey);
|
|
|
|
|
$this->cryptMock->expects($this->once())
|
|
|
|
|
->method('multiKeyDecryptLegacy')
|
|
|
|
|
->with('encryptedFileKey', $recoveryShareKey, $decryptAllKey)
|
|
|
|
|
->method('getFileKey')
|
|
|
|
|
->with($path, 'user', null, true)
|
|
|
|
|
->willReturn($fileKey);
|
|
|
|
|
|
|
|
|
|
$this->keyManagerMock->expects($this->never())->method('getFileKey');
|
|
|
|
|
|
|
|
|
|
$this->instance->begin($path, 'user', 'r', [], []);
|
|
|
|
|
|
|
|
|
|
$this->assertSame($fileKey,
|
|
|
|
|
@ -275,6 +264,10 @@ class EncryptionTest extends TestCase {
|
|
|
|
|
* and continue
|
|
|
|
|
*/
|
|
|
|
|
public function testBeginInitMasterKey() {
|
|
|
|
|
$this->sessionMock->expects($this->once())
|
|
|
|
|
->method('decryptAllModeActivated')
|
|
|
|
|
->willReturn(false);
|
|
|
|
|
|
|
|
|
|
$this->sessionMock->expects($this->once())->method('isReady')->willReturn(false);
|
|
|
|
|
$this->utilMock->expects($this->once())->method('isMasterKeyEnabled')
|
|
|
|
|
->willReturn(true);
|
|
|
|
|
|