File tree Expand file tree Collapse file tree 3 files changed +13
-9
lines changed Expand file tree Collapse file tree 3 files changed +13
-9
lines changed Original file line number Diff line number Diff line change @@ -70,6 +70,7 @@ test/crypt-des
70
70
test /crypt-gost-yescrypt
71
71
test /crypt-kat
72
72
test /crypt-md5
73
+ test /crypt-multithread
73
74
test /crypt-nthash
74
75
test /crypt-pbkdf1-sha1
75
76
test /crypt-scrypt
Original file line number Diff line number Diff line change @@ -7,6 +7,18 @@ Version 4.4.37
7
7
* Several fixes to the manpages (issue #185).
8
8
* Add binary compatibility for x86_64 GNU/Hurd (issue #189).
9
9
* Only test the needed makecontext signature during configure (issue #178).
10
+ * crypt and crypt_gensalt now use per-thread storage areas for their
11
+ output, allocated upon the first call in each thread that uses them.
12
+ This makes it safe to call these functions from multiple threads
13
+ simultaneously (but consecutive calls will still clobber the
14
+ previous output).
15
+ This feature is a safety net against sloppy coding. Programs are
16
+ still strongly encouraged to use the reentrant functions instead,
17
+ both because this safety net is not guaranteed by any standard
18
+ (although we are informed that Solaris also does this) and because
19
+ this introduces some overhead for initializing a buffer of
20
+ 'sizeof (crypt_data)' as well as for copying the computed output
21
+ to the thread-local output buffer for each invocation of crypt.
10
22
11
23
Version 4.4.36
12
24
* Fix left over bits failing with Perl v5.38.0 (issue #173).
Original file line number Diff line number Diff line change @@ -67,15 +67,6 @@ It was last updated 20 October 2018.
67
67
* If we do, should it know how to trigger the trusted-path
68
68
password prompt in modern GUI environments? (probably)
69
69
70
- * Make the crypt and crypt_gensalt static state thread-specific?
71
- * Solaris 11 may have done this (its ` crypt(3) ` manpage describes
72
- it as MT-Safe and I don’t see any other way they could have
73
- accomplished that).
74
- * if allocated on first use, this would also shave 32kB of
75
- data segment off the shared library
76
- * alternatively, add a global lock and * crash the program* if we
77
- detect concurrent calls
78
-
79
70
* Allow access to more of yescrypt’s tunable parameters and ROM
80
71
feature, in a way that’s generic enough that we could also use it
81
72
for e.g. Argon2’s tunable parameters
You can’t perform that action at this time.
0 commit comments