diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2020-08-11 19:26:41 +0200 |
---|---|---|
committer | backportbot[bot] <backportbot[bot]@users.noreply.github.com> | 2020-08-12 07:16:12 +0000 |
commit | 11561aab211287e60dc6edcbd72d049840149ba4 (patch) | |
tree | 1d93462b4811e17731b63106331dd1d57c4645ba /apps | |
parent | 3b3caba521debcfce6b322f7f78a2d82697e5665 (diff) | |
download | nextcloud-server-11561aab211287e60dc6edcbd72d049840149ba4.tar.gz nextcloud-server-11561aab211287e60dc6edcbd72d049840149ba4.zip |
SSE enhancement
Do not blind concatenate ints. Lets add a _ between them. So that we can
distrinquis them properly
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'apps')
-rw-r--r-- | apps/encryption/lib/Crypto/Crypt.php | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/apps/encryption/lib/Crypto/Crypt.php b/apps/encryption/lib/Crypto/Crypt.php index b2fdec513d2..c8311f4cf73 100644 --- a/apps/encryption/lib/Crypto/Crypt.php +++ b/apps/encryption/lib/Crypto/Crypt.php @@ -191,7 +191,7 @@ class Crypt { $this->getCipher()); // Create a signature based on the key as well as the current version - $sig = $this->createSignature($encryptedContent, $passPhrase.$version.$position); + $sig = $this->createSignature($encryptedContent, $passPhrase.'_'.$version.'_'.$position); // combine content to encrypt the IV identifier and actual IV $catFile = $this->concatIV($encryptedContent, $iv); @@ -464,7 +464,13 @@ class Crypt { $catFile = $this->splitMetaData($keyFileContents, $cipher); if ($catFile['signature'] !== false) { - $this->checkSignature($catFile['encrypted'], $passPhrase.$version.$position, $catFile['signature']); + try { + // First try the new format + $this->checkSignature($catFile['encrypted'], $passPhrase . '_' . $version . '_' . $position, $catFile['signature']); + } catch (GenericEncryptionException $e) { + // For compatibility with old files check the version without _ + $this->checkSignature($catFile['encrypted'], $passPhrase . $version . $position, $catFile['signature']); + } } return $this->decrypt($catFile['encrypted'], |