Browse Source

if we don't have a encrypted file key we can return a empty string right away

tags/v9.1.0beta1
Bjoern Schiessle 8 years ago
parent
commit
d86f8ba5f8
No account linked to committer's email address

+ 8
- 5
apps/encryption/lib/keymanager.php View File

@@ -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();
}

+ 30
- 0
apps/encryption/tests/lib/crypto/encryptalltest.php View File

@@ -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')

Loading…
Cancel
Save