]> source.dussan.org Git - nextcloud-server.git/commitdiff
make sure that encrypted private keys always have a header
authorBjoern Schiessle <schiessle@owncloud.com>
Wed, 15 Apr 2015 17:52:48 +0000 (19:52 +0200)
committerBjoern Schiessle <schiessle@owncloud.com>
Wed, 15 Apr 2015 17:52:48 +0000 (19:52 +0200)
apps/encryption/lib/keymanager.php
apps/encryption/lib/recovery.php

index a280ea9bde33558f7109fe808a2cad5fbc59db16..87adf75c924eded299d1b1c3f27de7aae59e451d 100644 (file)
@@ -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;
index 5c1e91866a0a191a1ba381526592e0029e63690b..cfaa3e496195adc77042416b9b0da095967664ad 100644 (file)
@@ -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;