1# Changelog
2
3## 3.2.0
4
5* Enhancements
6  * Shortening user-supplied salts to 128 bits -- to make it compatible with other implementations.
7
8## 3.1.0
9
10* Changes
11  * Now forcing a recompile of C code for Windows users.
12
13## 3.0.0
14
15* Enhancements
16  * Small changes to NIF code to make it more scheduler-friendly.
17  * Improved documentation with respect to Argon2.
18* Changes
19  * Now using `elixir_make` to help compile the C code.
20
21## 2.6.0
22
23* Enhancements
24  * Improved Windows build to prevent build failure when upgrading Erlang versions.
25
26## 2.4.0
27
28* Enhancements
29  * Improved Windows build error messages.
30* Changes
31  * Changed behavior for incorrect input to Bcrypt.gen_salt.
32
33## 2.3.0
34
35* Enhancements
36  * Added support for one-time passwords (HOTP, TOTP) for use in two factor authentication.
37
38## 2.2.0
39
40* Changes
41  * Improved documentation for Windows builds.
42  * Updated the required Elixir version to 1.2.
43
44## 2.1.0
45
46* Enhancements
47  * Added legacy option to Comeonin.Bcrypt.gen_salt so that hashes with the older $2a$ prefix can be more easily generated.
48  * To try to solve the load errors after upgrading Erlang / Elixir:
49    * Force C code to be recompiled every time `deps.compile` is called.
50    * Added basic upgrade function to the NIF library.
51  * To be compatible with the nerves project:
52    * Added CROSSCOMPILE option to the Makefile.
53    * Stopped the library autoloading on compilation (requires Elixir 1.2.2).
54
55## 2.0.0 (2015-12-17)
56
57* Changes
58  * Increased the default number of rounds for pbkdf2_sha512 to 100_000.
59  * Removed `create_hash` and `create_user` functions.
60  * Moved the password strength checker and random password generator to a separate package, called NotQwerty123.
61    * This means that i18n support has been moved to NotQwerty123.
62
63## 1.6.0 (2015-11-17)
64
65* Changes
66  * Edited C code and deleted unused functions.
67
68## 1.5.0 (2015-11-10)
69
70* Changes
71  * Moved gettext support to `comeonin_i18n` optional dependency.
72  * Removed forced compilation of C code in dev and prod environments.
73
74## 1.4.0 (2015-11-06)
75
76* Enhancements
77  * Added gettext support.
78  * Added Japanese translations for messages.
79
80## 1.3.0 (2015-10-18)
81
82* Enhancements
83  * Improved the efficiency of the common password check for the `strong_password` function.
84  * Added more information to the Mix build errors.
85* Changes
86  * Forcing compilation of C code in dev and prod environments.
87
88## 1.2.0 (2015-09-26)
89
90* Enhancements
91  * Added a common option to the `strong_password` check. This checks for passwords that are easy to guess, or common.
92  * Improved random password generator -- added a check to ensure it is strong and set the minimum length to 8 characters.
93
94## 1.1.4 (2015-09-25)
95
96* Bug fix
97  * Removed `random_bytes` function. Now calling :crypto.strong_rand_bytes directly.
98
99## 1.1.0 (2015-07-28)
100
101* Changes
102  * Divided the `strong password` check into two parts: minimum length and check for punctuation
103  characters and digits.
104  * Removed configutation values for password length for generated passwords and minimum length of passwords
105  for the password check.
106
107## 1.0.5 (2015-07-14)
108
109* Bug fix
110  * Replaced `Mix.Shell.info` with `IO.binwrite` to prevent compile errors with certain character encodings.
111
112## 1.0.1 (2015-05-31)
113
114* Enhancements
115  * Enabled the create_user function to be used with atoms as keys as well as strings.
116
117## 1.0.0 (2015-05-20)
118
119* Changes
120  * Renamed signup_user, function to check password strength before hashing the password, to create_user.
121* Enhancements
122  * Added create_user function which takes a map, removes the "password" entry and adds a "password_hash" entry.
123
124## 0.11.0 (2015-05-19)
125
126* Changes
127  * Renamed hashpwsalt/2 to signup_user/1.
128
129## 0.10.0 (2015-05-14)
130
131* Changes
132  * Removed log_rounds, or rounds, parameter for the function hashpwsalt.
133  * Added option to check password (for strength) in the function hashpwsalt (hashpwsalt/2).
134
135## 0.9.0 (2015-05-08)
136
137* Enhancements
138  * Added random password generator.
139  * Added optional check to test if passwords have digits and punctuation characters.
140* Bug fixes
141  * Added information about password strength and password policies to the documentation.
142
143## 0.8.2 (2015-05-02)
144
145* Bug fixes
146  * Updated Windows build and improved error information at compile time.
147
148## 0.8.0 (2015-04-20)
149
150* Bug fixes
151  * Updated bcrypt to support non-ascii characters in the password (pbkdf2 already supports these characters).
152
153## 0.7.0 (2015-04-18)
154
155* Enhancements
156  * Use crypto.strong_rand_bytes by default for generating random numbers.
157
158## 0.6.0 (2015-04-17)
159
160* Enhancements
161  * Updated bcrypt implementation to only call C functions for the most expensive operations.
162
163## 0.5.0 (2015-04-14)
164
165* Enhancements
166  * Updated bcrypt implementation so that long-running NIFs are cut to a minimum.
167
168## 0.4.0 (2015-04-05)
169
170* Enhancements
171  * Updated pbkdf2_sha512 to prevent users from calling `hashpass` without a salt.
172
173## 0.3.0 (2015-03-04)
174
175* Enhancements
176  * Updated bcrypt to version 1.5.2.
177
178## v0.2.4 (2015-02-26)
179
180* Enhancements
181  * Added configuration options for number of log_rounds, or rounds.
182
183## v0.2.2 (2015-01-25)
184
185* Enhancements
186  * Improved documentation about the recommended time the functions should take.
187  * Increased default number of rounds for pbkdf2_sha512 from 40000 to 60000.
188  * Improved implementation of dummy check.
189
190* Changes
191  * Removed the `salt_length` optional argument from `Comeonin.Pbkdf2.hashpwsalt`. The only optional argument to this function is now the number of rounds.
192
193## v0.2.0 (2015-01-21)
194
195* Enhancements
196  * Added support for pbkdf2_sha512.
197  * Added Travis integration.
198  * Added timing functions to help developers adjust the complexity of the key derivation functions.
199
200* Changes
201  * Removed the hashing and check functions from the main Comeonin module.
202
203## v0.1.1
204
205* Bug fixes
206  * Enable build on OS X.
207
208## v0.1.0
209
210* Bcrypt authentication.
211