Merge pull request #5631 from nextcloud/add-recovery-key-on-public-upload-stable11
[stable11] Add recovery key on public upload
This commit is contained in:
commit
ed9a4c29a7
|
@ -60,6 +60,9 @@ class Encryption implements IEncryptionModule {
|
|||
/** @var string */
|
||||
private $user;
|
||||
|
||||
/** @var array */
|
||||
private $owner;
|
||||
|
||||
/** @var string */
|
||||
private $fileKey;
|
||||
|
||||
|
@ -136,6 +139,7 @@ class Encryption implements IEncryptionModule {
|
|||
$this->decryptAll = $decryptAll;
|
||||
$this->logger = $logger;
|
||||
$this->l = $il10n;
|
||||
$this->owner = [];
|
||||
$this->useMasterPassword = $util->isMasterKeyEnabled();
|
||||
}
|
||||
|
||||
|
@ -280,13 +284,15 @@ class Encryption implements IEncryptionModule {
|
|||
}
|
||||
}
|
||||
|
||||
$publicKeys = $this->keyManager->addSystemKeys($this->accessList, $publicKeys, $this->user);
|
||||
$publicKeys = $this->keyManager->addSystemKeys($this->accessList, $publicKeys, $this->getOwner($path));
|
||||
$encryptedKeyfiles = $this->crypt->multiKeyEncrypt($this->fileKey, $publicKeys);
|
||||
$this->keyManager->setAllFileKeys($this->path, $encryptedKeyfiles);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* encrypt data
|
||||
*
|
||||
|
@ -407,7 +413,7 @@ class Encryption implements IEncryptionModule {
|
|||
}
|
||||
}
|
||||
|
||||
$publicKeys = $this->keyManager->addSystemKeys($accessList, $publicKeys, $uid);
|
||||
$publicKeys = $this->keyManager->addSystemKeys($accessList, $publicKeys, $this->getOwner($path));
|
||||
|
||||
$encryptedFileKey = $this->crypt->multiKeyEncrypt($fileKey, $publicKeys);
|
||||
|
||||
|
@ -556,6 +562,19 @@ class Encryption implements IEncryptionModule {
|
|||
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.
|
||||
* In case a module is not ready - because e.g. key pairs have not been generated
|
||||
|
|
Loading…
Reference in New Issue