authelia/internal
James Elliott 26369fff3d
[FEATURE] Support Argon2id password hasing and improved entropy (#679)
* [FEATURE] Support Argon2id Passwords

- Updated go module github.com/simia-tech/crypt
- Added Argon2id support for file based authentication backend
- Made it the default method
- Made it so backwards compatibility with SHA512 exists
- Force seeding of the random string generator used for salts to ensure they are all different
- Added command params to the authelia hash-password command
- Automatically remove {CRYPT} from hashes as they are updated
- Automatically change hashes when they are updated to the configured algorithm
- Made the hashing algorithm parameters completely configurable
- Added reasonably comprehensive test suites
- Updated docs
- Updated config template

* Adjust error output

* Fix unit test

* Add unit tests and argon2 version check

* Fix new unit tests

* Update docs, added tests

* Implement configurable values and more comprehensive testing

* Added cmd params to hash_password, updated docs, misc fixes

* More detailed error for cmd, fixed a typo

* Fixed cmd flag error, minor refactoring

* Requested Changes and Minor refactoring

* Increase entropy

* Update docs for entropy changes

* Refactor to reduce nesting and easier code maintenance

* Cleanup Errors (uniformity for the function call)

* Check salt length, fix docs

* Add Base64 string validation for argon2id

* Cleanup and Finalization
- Moved RandomString function from ./internal/authentication/password_hash.go to ./internal/utils/strings.go
- Added SplitStringToArrayOfStrings func that splits strings into an array with a fixed max string len
- Fixed an error in validator that would allow a zero salt length
- Added a test to verify the upstream crypt module supports our defined random salt chars
- Updated docs
- Removed unused "HashingAlgorithm" string type

* Update crypt go mod, support argon2id key length and major refactor

* Config Template Update, Final Tests

* Use schema defaults for hash-password cmd

* Iterations check

* Docs requested changes

* Test Coverage, suggested edits

* Wording edit

* Doc changes

* Default sanity changes

* Default sanity changes - docs

* CI Sanity changes

* Memory in MB
2020-03-06 12:38:02 +11:00
..
authentication [FEATURE] Support Argon2id password hasing and improved entropy (#679) 2020-03-06 12:38:02 +11:00
authorization [BUGFIX] Skip 2FA step if no ACL rule is two_factor (#684) 2020-03-06 11:31:09 +11:00
commands [FEATURE] Support Argon2id password hasing and improved entropy (#679) 2020-03-06 12:38:02 +11:00
configuration [FEATURE] Support Argon2id password hasing and improved entropy (#679) 2020-03-06 12:38:02 +11:00
duo [MISC] Add Detailed DUO Push Logging (#664) 2020-03-01 11:51:11 +11:00
handlers [BUGFIX] Skip 2FA step if no ACL rule is two_factor (#684) 2020-03-06 11:31:09 +11:00
logging Misc Spelling Corrections 2020-01-21 12:16:00 +11:00
middlewares [MISC] Fail with an error message when X-Forwarded-* headers are missing (#631) 2020-02-13 13:12:37 +11:00
mocks [MISC] Add Detailed DUO Push Logging (#664) 2020-03-01 11:51:11 +11:00
models Move source code into internal directory to follow standard project layout. 2019-11-17 16:30:33 +01:00
notification [FEATURE] SMTPS support (#643) 2020-02-20 12:09:46 +11:00
regulation [FIX] Disable regulation when max_retries set to 0 (#584) 2020-01-27 22:54:24 +11:00
server [FEATURE] Add TLS support. (#677) 2020-03-03 18:18:25 +11:00
session [FEATURE] Redis DB Index Selection (#653) 2020-02-28 11:14:44 +11:00
storage [FEATURE] Support MySQL as a storage backend. (#678) 2020-03-05 10:25:52 +11:00
suites [BUGFIX] Skip 2FA step if no ACL rule is two_factor (#684) 2020-03-06 11:31:09 +11:00
templates Force TLS and valid x509 certs in SMTP Notifier by default 2020-01-10 17:37:16 +01:00
utils [FEATURE] Support Argon2id password hasing and improved entropy (#679) 2020-03-06 12:38:02 +11:00