summary refs log tree commit diff
path: root/scripts/hash_password
diff options
context:
space:
mode:
authorKent Shikama <kent@kentshikama.com>2016-07-06 12:17:54 +0900
committerKent Shikama <kent@kentshikama.com>2016-07-06 12:17:54 +0900
commit896bc6cd464c4e2807a6751bd2de8039bbe1fc63 (patch)
treec8e06d4200454b4f3c28d39ab09d13e353046a12 /scripts/hash_password
parentMerge pull request #904 from matrix-org/dbkr/register_email_no_untrusted_id_s... (diff)
downloadsynapse-896bc6cd464c4e2807a6751bd2de8039bbe1fc63.tar.xz
Update hash_password script
Signed-off-by: Kent Shikama <kent@kentshikama.com>
Diffstat (limited to 'scripts/hash_password')
-rwxr-xr-xscripts/hash_password18
1 files changed, 17 insertions, 1 deletions
diff --git a/scripts/hash_password b/scripts/hash_password
index e784600989..215ab25cfe 100755
--- a/scripts/hash_password
+++ b/scripts/hash_password
@@ -1,10 +1,16 @@
 #!/usr/bin/env python
 
 import argparse
+
+import sys
+
 import bcrypt
 import getpass
 
+import yaml
+
 bcrypt_rounds=12
+password_pepper = ""
 
 def prompt_for_pass():
     password = getpass.getpass("Password: ")
@@ -28,12 +34,22 @@ if __name__ == "__main__":
         default=None,
         help="New password for user. Will prompt if omitted.",
     )
+    parser.add_argument(
+        "-c", "--config",
+        type=argparse.FileType('r'),
+        help="Path to server config file. Used to read in bcrypt_rounds and password_pepper.",
+    )
 
     args = parser.parse_args()
+    if "config" in args and args.config:
+        config = yaml.safe_load(args.config)
+        bcrypt_rounds = config.get("bcrypt_rounds", bcrypt_rounds)
+        password_config = config.get("password_config", {})
+        password_pepper = password_config.get("pepper", password_pepper)
     password = args.password
 
     if not password:
         password = prompt_for_pass()
 
-    print bcrypt.hashpw(password, bcrypt.gensalt(bcrypt_rounds))
+    print bcrypt.hashpw(password + password_pepper, bcrypt.gensalt(bcrypt_rounds))