diff options
author | Bjoern Schiessle <schiessle@owncloud.com> | 2015-04-15 19:52:48 +0200 |
---|---|---|
committer | Bjoern Schiessle <schiessle@owncloud.com> | 2015-04-15 19:52:48 +0200 |
commit | 389a101de657046fa4ba522019173e6f94d4a105 (patch) | |
tree | be8ffcfe30832dd5f0b740af7c2d9bf4873ec492 | |
parent | 1a894bd0d8ab034f35dbb3b723dd195e7f66aab4 (diff) | |
download | nextcloud-server-389a101de657046fa4ba522019173e6f94d4a105.tar.gz nextcloud-server-389a101de657046fa4ba522019173e6f94d4a105.zip |
make sure that encrypted private keys always have a header
-rw-r--r-- | apps/encryption/lib/keymanager.php | 3 | ||||
-rw-r--r-- | apps/encryption/lib/recovery.php | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/apps/encryption/lib/keymanager.php b/apps/encryption/lib/keymanager.php index a280ea9bde3..87adf75c924 100644 --- a/apps/encryption/lib/keymanager.php +++ b/apps/encryption/lib/keymanager.php @@ -140,7 +140,8 @@ class KeyManager { // Encrypt private key empty passphrase $encryptedKey = $this->crypt->symmetricEncryptFileContent($keyPair['privateKey'], ''); - $this->keyStorage->setSystemUserKey($this->publicShareKeyId . '.privateKey', $encryptedKey); + $header = $this->crypt->generateHeader(); + $this->setSystemPrivateKey($this->publicShareKeyId, $header . $encryptedKey); } $this->keyId = $userSession && $userSession->isLoggedIn() ? $userSession->getUser()->getUID() : false; diff --git a/apps/encryption/lib/recovery.php b/apps/encryption/lib/recovery.php index 5c1e91866a0..cfaa3e49619 100644 --- a/apps/encryption/lib/recovery.php +++ b/apps/encryption/lib/recovery.php @@ -135,8 +135,9 @@ class Recovery { $recoveryKey = $this->keyManager->getSystemPrivateKey($this->keyManager->getRecoveryKeyId()); $decryptedRecoveryKey = $this->crypt->decryptPrivateKey($recoveryKey, $oldPassword); $encryptedRecoveryKey = $this->crypt->symmetricEncryptFileContent($decryptedRecoveryKey, $newPassword); + $header = $this->crypt->generateHeader(); if ($encryptedRecoveryKey) { - $this->keyManager->setSystemPrivateKey($this->keyManager->getRecoveryKeyId(), $encryptedRecoveryKey); + $this->keyManager->setSystemPrivateKey($this->keyManager->getRecoveryKeyId(), $header . $encryptedRecoveryKey); return true; } return false; |