changeset 5fa47ee46ce6 in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset&node=5fa47ee46ce6
description:
Use argon2 or scrypt to hash password by default
issue10529
review359761002
diffstat:
CHANGELOG | 1 +
doc/topics/configuration.rst | 3 ++-
setup.py | 1 +
trytond/res/user.py | 7 +++++++
4 files changed, 11 insertions(+), 1 deletions(-)
diffs (56 lines):
diff -r b565612ca1fb -r 5fa47ee46ce6 CHANGELOG
--- a/CHANGELOG Mon Jul 12 23:14:32 2021 +0200
+++ b/CHANGELOG Mon Jul 12 23:31:09 2021 +0200
@@ -1,3 +1,4 @@
+* Use argon2 or scrypt to hash password by default
* Allow PYSON Expression as key for PYSON In with dict object
* Add method to format warning name with records
* Add option to trytond-console to start a readonly transaction
diff -r b565612ca1fb -r 5fa47ee46ce6 doc/topics/configuration.rst
--- a/doc/topics/configuration.rst Mon Jul 12 23:14:32 2021 +0200
+++ b/doc/topics/configuration.rst Mon Jul 12 23:31:09 2021 +0200
@@ -442,7 +442,8 @@
The path to the `INI file to load as CryptContext
<https://passlib.readthedocs.io/en/stable/narr/context-tutorial.html#loading-saving-a-cryptcontext>`_.
-If not path is set, Tryton will use the schemes ``bcrypt`` or
``pbkdf2_sha512``.
+If no path is set, Tryton will use the schemes ``argon2``, ``scrypt``,
+``bcrypt`` or ``pbkdf2_sha512``.
Default: ``None``
diff -r b565612ca1fb -r 5fa47ee46ce6 setup.py
--- a/setup.py Mon Jul 12 23:14:32 2021 +0200
+++ b/setup.py Mon Jul 12 23:31:09 2021 +0200
@@ -171,6 +171,7 @@
'graphviz': ['pydot'],
'Levenshtein': ['python-Levenshtein'],
'BCrypt': ['passlib[bcrypt]'],
+ 'Argon2': ['passlib[argon2]'],
'html2text': ['html2text'],
'weasyprint': ['weasyprint'],
'coroutine': ['gevent>=1.1'],
diff -r b565612ca1fb -r 5fa47ee46ce6 trytond/res/user.py
--- a/trytond/res/user.py Mon Jul 12 23:14:32 2021 +0200
+++ b/trytond/res/user.py Mon Jul 12 23:31:09 2021 +0200
@@ -36,6 +36,10 @@
import bcrypt
except ImportError:
bcrypt = None
+try:
+ import argon2
+except ImportError:
+ argon2 = None
from trytond.cache import Cache
from trytond.config import config
@@ -66,6 +70,9 @@
schemes = ['pbkdf2_sha512']
if bcrypt:
schemes.insert(0, 'bcrypt')
+ schemes.insert(0, 'scrypt')
+ if argon2:
+ schemes.insert(0, 'argon2')
CRYPT_CONTEXT = CryptContext(schemes=schemes)