diff options
author | blizzz <blizzz@arthur-schiwon.de> | 2021-06-23 11:17:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-23 11:17:05 +0200 |
commit | c6d5653a85df1d007baca42ae67643fff937c2ab (patch) | |
tree | a35de70203bd0dbfe108f29d2b8a0183adacd111 /apps/encryption/lib | |
parent | 092ff40f154b310c3c0397d87c7be30e1e7cbbc4 (diff) | |
parent | e6173612506560205e1a1d89879b57372aaef960 (diff) | |
download | nextcloud-server-c6d5653a85df1d007baca42ae67643fff937c2ab.tar.gz nextcloud-server-c6d5653a85df1d007baca42ae67643fff937c2ab.zip |
Merge pull request #26323 from J0WI/crypt-const
Use constant for supported formats
Diffstat (limited to 'apps/encryption/lib')
-rw-r--r-- | apps/encryption/lib/Crypto/Crypt.php | 50 |
1 files changed, 24 insertions, 26 deletions
diff --git a/apps/encryption/lib/Crypto/Crypt.php b/apps/encryption/lib/Crypto/Crypt.php index 41889d1226e..a7d7c024cbb 100644 --- a/apps/encryption/lib/Crypto/Crypt.php +++ b/apps/encryption/lib/Crypto/Crypt.php @@ -56,10 +56,20 @@ use OCP\IUserSession; * @package OCA\Encryption\Crypto */ class Crypt { + public const SUPPORTED_CIPHERS_AND_KEY_SIZE = [ + 'AES-256-CTR' => 32, + 'AES-128-CTR' => 16, + 'AES-256-CFB' => 32, + 'AES-128-CFB' => 16, + ]; + // one out of SUPPORTED_CIPHERS_AND_KEY_SIZE public const DEFAULT_CIPHER = 'AES-256-CTR'; // default cipher from old Nextcloud versions public const LEGACY_CIPHER = 'AES-128-CFB'; + public const SUPPORTED_KEY_FORMATS = ['hash', 'password']; + // one out of SUPPORTED_KEY_FORMATS + public const DEFAULT_KEY_FORMAT = 'hash'; // default key format, old Nextcloud version encrypted the private key directly // with the user password public const LEGACY_KEY_FORMAT = 'password'; @@ -76,20 +86,9 @@ class Crypt { /** @var IConfig */ private $config; - /** @var array */ - private $supportedKeyFormats; - /** @var IL10N */ private $l; - /** @var array */ - private $supportedCiphersAndKeySize = [ - 'AES-256-CTR' => 32, - 'AES-128-CTR' => 16, - 'AES-256-CFB' => 32, - 'AES-128-CFB' => 16, - ]; - /** @var bool */ private $supportLegacy; @@ -104,8 +103,6 @@ class Crypt { $this->user = $userSession && $userSession->isLoggedIn() ? $userSession->getUser()->getUID() : '"no user given"'; $this->config = $config; $this->l = $l; - $this->supportedKeyFormats = ['hash', 'password']; - $this->supportLegacy = $this->config->getSystemValueBool('encryption.legacy_format_support', false); } @@ -206,12 +203,12 @@ class Crypt { /** * generate header for encrypted file * - * @param string $keyFormat (can be 'hash' or 'password') + * @param string $keyFormat see SUPPORTED_KEY_FORMATS * @return string * @throws \InvalidArgumentException */ - public function generateHeader($keyFormat = 'hash') { - if (in_array($keyFormat, $this->supportedKeyFormats, true) === false) { + public function generateHeader($keyFormat = self::DEFAULT_KEY_FORMAT) { + if (in_array($keyFormat, self::SUPPORTED_KEY_FORMATS, true) === false) { throw new \InvalidArgumentException('key format "' . $keyFormat . '" is not supported'); } @@ -258,14 +255,15 @@ class Crypt { */ public function getCipher() { $cipher = $this->config->getSystemValue('cipher', self::DEFAULT_CIPHER); - if (!isset($this->supportedCiphersAndKeySize[$cipher])) { + if (!isset(self::SUPPORTED_CIPHERS_AND_KEY_SIZE[$cipher])) { $this->logger->warning( - sprintf( - 'Unsupported cipher (%s) defined in config.php supported. Falling back to %s', - $cipher, - self::DEFAULT_CIPHER - ), - ['app' => 'encryption']); + sprintf( + 'Unsupported cipher (%s) defined in config.php supported. Falling back to %s', + $cipher, + self::DEFAULT_CIPHER + ), + ['app' => 'encryption'] + ); $cipher = self::DEFAULT_CIPHER; } @@ -280,8 +278,8 @@ class Crypt { * @throws \InvalidArgumentException */ protected function getKeySize($cipher) { - if (isset($this->supportedCiphersAndKeySize[$cipher])) { - return $this->supportedCiphersAndKeySize[$cipher]; + if (isset(self::SUPPORTED_CIPHERS_AND_KEY_SIZE[$cipher])) { + return self::SUPPORTED_CIPHERS_AND_KEY_SIZE[$cipher]; } throw new \InvalidArgumentException( @@ -403,7 +401,7 @@ class Crypt { $keyFormat = self::LEGACY_KEY_FORMAT; } - if ($keyFormat === 'hash') { + if ($keyFormat === self::DEFAULT_KEY_FORMAT) { $password = $this->generatePasswordHash($password, $cipher, $uid); } |