make sure that we always have a owner
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
parent
f7a2b96507
commit
fff804c39e
|
@ -60,7 +60,7 @@ class Encryption implements IEncryptionModule {
|
||||||
/** @var string */
|
/** @var string */
|
||||||
private $user;
|
private $user;
|
||||||
|
|
||||||
/** @var string */
|
/** @var array */
|
||||||
private $owner;
|
private $owner;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
@ -139,6 +139,7 @@ class Encryption implements IEncryptionModule {
|
||||||
$this->decryptAll = $decryptAll;
|
$this->decryptAll = $decryptAll;
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
$this->l = $il10n;
|
$this->l = $il10n;
|
||||||
|
$this->owner = [];
|
||||||
$this->useMasterPassword = $util->isMasterKeyEnabled();
|
$this->useMasterPassword = $util->isMasterKeyEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,7 +178,6 @@ class Encryption implements IEncryptionModule {
|
||||||
$this->path = $this->getPathToRealFile($path);
|
$this->path = $this->getPathToRealFile($path);
|
||||||
$this->accessList = $accessList;
|
$this->accessList = $accessList;
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
$this->owner = $this->util->getOwner($path);
|
|
||||||
$this->isWriteOperation = false;
|
$this->isWriteOperation = false;
|
||||||
$this->writeCache = '';
|
$this->writeCache = '';
|
||||||
|
|
||||||
|
@ -284,7 +284,7 @@ class Encryption implements IEncryptionModule {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$publicKeys = $this->keyManager->addSystemKeys($this->accessList, $publicKeys, $this->owner);
|
$publicKeys = $this->keyManager->addSystemKeys($this->accessList, $publicKeys, $this->getOwner($path));
|
||||||
$encryptedKeyfiles = $this->crypt->multiKeyEncrypt($this->fileKey, $publicKeys);
|
$encryptedKeyfiles = $this->crypt->multiKeyEncrypt($this->fileKey, $publicKeys);
|
||||||
$this->keyManager->setAllFileKeys($this->path, $encryptedKeyfiles);
|
$this->keyManager->setAllFileKeys($this->path, $encryptedKeyfiles);
|
||||||
}
|
}
|
||||||
|
@ -413,7 +413,7 @@ class Encryption implements IEncryptionModule {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$publicKeys = $this->keyManager->addSystemKeys($accessList, $publicKeys, $this->owner);
|
$publicKeys = $this->keyManager->addSystemKeys($accessList, $publicKeys, $this->getOwner($path));
|
||||||
|
|
||||||
$encryptedFileKey = $this->crypt->multiKeyEncrypt($fileKey, $publicKeys);
|
$encryptedFileKey = $this->crypt->multiKeyEncrypt($fileKey, $publicKeys);
|
||||||
|
|
||||||
|
@ -562,6 +562,19 @@ class Encryption implements IEncryptionModule {
|
||||||
return $path;
|
return $path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get owner of a file
|
||||||
|
*
|
||||||
|
* @param string $path
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function getOwner($path) {
|
||||||
|
if (!isset($this->owner[$path])) {
|
||||||
|
$this->owner[$path] = $this->util->getOwner($path);
|
||||||
|
}
|
||||||
|
return $this->owner[$path];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the module is ready to be used by that specific user.
|
* Check if the module is ready to be used by that specific user.
|
||||||
* In case a module is not ready - because e.g. key pairs have not been generated
|
* In case a module is not ready - because e.g. key pairs have not been generated
|
||||||
|
|
Loading…
Reference in New Issue