summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorblizzz <blizzz@arthur-schiwon.de>2021-06-23 11:17:05 +0200
committerGitHub <noreply@github.com>2021-06-23 11:17:05 +0200
commitc6d5653a85df1d007baca42ae67643fff937c2ab (patch)
treea35de70203bd0dbfe108f29d2b8a0183adacd111 /apps
parent092ff40f154b310c3c0397d87c7be30e1e7cbbc4 (diff)
parente6173612506560205e1a1d89879b57372aaef960 (diff)
downloadnextcloud-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')
-rw-r--r--apps/encryption/lib/Crypto/Crypt.php50
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);
}