]> source.dussan.org Git - nextcloud-server.git/commitdiff
expose Argon2 options (as we did for bcrypt)
authorArthur Schiwon <blizzz@arthur-schiwon.de>
Mon, 20 Jan 2020 17:11:00 +0000 (18:11 +0100)
committerArthur Schiwon <blizzz@arthur-schiwon.de>
Fri, 21 Feb 2020 13:51:44 +0000 (14:51 +0100)
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
config/config.sample.php
lib/private/Security/Hasher.php

index e6ef5d907971729804715df6db531ebc1ed6dc8e..45d78ca9123018fcd302be38c72967af16ca5a15 100644 (file)
@@ -1421,6 +1421,31 @@ $CONFIG = array(
  */
 'tempdirectory' => '/tmp/nextcloudtemp',
 
+/**
+ * Hashing
+ *
+ * Nextcloud uses the Argon2 algorithm (with PHP >= 7.2) to create hashes by its
+ * own and exposes its configuration options as following. More information can
+ * be found at: https://www.php.net/manual/en/function.password-hash.php
+ */
+
+/**
+ * The allowed maximum memory to be used by the algorithm for computing a hash.
+ */
+'hashingMemoryCost' => PASSWORD_ARGON2_DEFAULT_MEMORY_COST,
+
+/**
+ * The allowed maximum time that can be used by the algorithm for computing a
+ * hash.
+ */
+'hashingTimeCost' => PASSWORD_ARGON2_DEFAULT_TIME_COST,
+
+/**
+ * The allowed number of CPU threads that can be used by the algorithm for
+ * computing a hash.
+ */
+'hashingThreads' => PASSWORD_ARGON2_DEFAULT_THREADS,
+
 /**
  * The hashing cost used by hashes generated by Nextcloud
  * Using a higher value requires more time and CPU power to calculate the hashes
index e20de729f4fa4079d94cf448023ebc3765111a17..b1a3216ec720d5dc563404b764040822757abfb9 100644 (file)
@@ -61,6 +61,12 @@ class Hasher implements IHasher {
        public function __construct(IConfig $config) {
                $this->config = $config;
 
+               $this->options = [
+                       'memory_cost' => (int)$this->config->getSystemValue('hashingMemoryCost', PASSWORD_ARGON2_DEFAULT_MEMORY_COST),
+                       'time_cost' => (int)$this->config->getSystemValue('hashingTimeCost', PASSWORD_ARGON2_DEFAULT_TIME_COST),
+                       'threads' => (int)$this->config->getSystemValue('hashingThreads', PASSWORD_ARGON2_DEFAULT_THREADS),
+               ];
+
                $hashingCost = $this->config->getSystemValue('hashingCost', null);
                if(!\is_null($hashingCost)) {
                        $this->options['cost'] = $hashingCost;