Browse Source
if we don't have a encrypted file key we can return a empty string right away
remotes/origin/better-comments-in-activity-sidebar
Bjoern Schiessle
10 years ago
committed by
Björn Schießle
No known key found for this signature in database
GPG Key ID: 2378A753E2BF04F6
2 changed files with
38 additions and
5 deletions
-
apps/encryption/lib/keymanager.php
-
apps/encryption/tests/lib/crypto/encryptalltest.php
|
|
|
@ -394,17 +394,20 @@ class KeyManager { |
|
|
|
public function getFileKey($path, $uid) { |
|
|
|
$encryptedFileKey = $this->keyStorage->getFileKey($path, $this->fileKeyId, Encryption::ID); |
|
|
|
|
|
|
|
if (empty($encryptedFileKey)) { |
|
|
|
return ''; |
|
|
|
} |
|
|
|
|
|
|
|
if ($this->util->isMasterKeyEnabled()) { |
|
|
|
$uid = $this->getMasterKeyId(); |
|
|
|
} |
|
|
|
|
|
|
|
if (is_null($uid)) { |
|
|
|
$uid = $this->getPublicShareKeyId(); |
|
|
|
$shareKey = $this->getShareKey($path, $uid); |
|
|
|
$privateKey = $this->keyStorage->getSystemUserKey($this->publicShareKeyId . '.privateKey', Encryption::ID); |
|
|
|
$privateKey = $this->crypt->decryptPrivateKey($privateKey); |
|
|
|
} else { |
|
|
|
|
|
|
|
if ($this->util->isMasterKeyEnabled()) { |
|
|
|
$uid = $this->getMasterKeyId(); |
|
|
|
} |
|
|
|
|
|
|
|
$shareKey = $this->getShareKey($path, $uid); |
|
|
|
$privateKey = $this->session->getPrivateKey(); |
|
|
|
} |
|
|
|
|
|
|
|
@ -153,6 +153,36 @@ class EncryptAllTest extends TestCase { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public function testEncryptAllWithMasterKey() { |
|
|
|
/** @var EncryptAll | \PHPUnit_Framework_MockObject_MockObject $encryptAll */ |
|
|
|
$encryptAll = $this->getMockBuilder('OCA\Encryption\Crypto\EncryptAll') |
|
|
|
->setConstructorArgs( |
|
|
|
[ |
|
|
|
$this->setupUser, |
|
|
|
$this->userManager, |
|
|
|
$this->view, |
|
|
|
$this->keyManager, |
|
|
|
$this->util, |
|
|
|
$this->config, |
|
|
|
$this->mailer, |
|
|
|
$this->l, |
|
|
|
$this->questionHelper, |
|
|
|
$this->secureRandom |
|
|
|
] |
|
|
|
) |
|
|
|
->setMethods(['createKeyPairs', 'encryptAllUsersFiles', 'outputPasswords']) |
|
|
|
->getMock(); |
|
|
|
|
|
|
|
$this->util->expects($this->any())->method('isMasterKeyEnabled')->willReturn(true); |
|
|
|
$encryptAll->expects($this->never())->method('createKeyPairs'); |
|
|
|
$this->keyManager->expects($this->once())->method('validateMasterKey'); |
|
|
|
$encryptAll->expects($this->at(0))->method('encryptAllUsersFiles')->with(); |
|
|
|
$encryptAll->expects($this->never())->method('outputPasswords'); |
|
|
|
|
|
|
|
$encryptAll->encryptAll($this->inputInterface, $this->outputInterface); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public function testCreateKeyPairs() { |
|
|
|
/** @var EncryptAll | \PHPUnit_Framework_MockObject_MockObject $encryptAll */ |
|
|
|
$encryptAll = $this->getMockBuilder('OCA\Encryption\Crypto\EncryptAll') |
|
|
|
|