Closed licy183 closed 3 years ago
@mwcw I think this solves the problems we'd been having with argon2 on the web. This library's focus isn't on speed anyways (and technically, neither is Argon2's), so I'd recommend merging it.
Hi,
I'll take a look at it tomorrow (Melb, AU) time or perhaps if I can this evening.
MW
Thanks!
Merged will be synced in a few hours.
MW
Fix Register64.mul, add Register64.mod and add support for argon2 on web platform.
Register64.mul
has an error on web platform whenp1
is a 33-bit integer. Dartint
on web platform (Javascript) will make the result an 32-bit integer, which is not the same as Dart VM. This PR fixes this, and add some tests for this problem.mod(int)
opertaion on classRegister64
. This method is implemented using Horner's method. Maybe we can implement it using Knuth's method for a better performance later.Argon2BytesGenerator
which is implemented usingRegister64
, and it can run on web platform with higher memory occupation and worse performance. This PR uses a platform-aware method to determine use either Register64 impl or native int impl.