scrypt: add MCF support #781
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
NOTE: not yet passing test vectorsInformation about the scrypt MCF format comes largely from libxcrypt:
https://github.com/besser82/libxcrypt/blob/a74a677/lib/crypt-scrypt.c
The format is somewhat like yescrypt in that it uses a special binary encoding of the parameters which is then serialized as little endian crypt-like Base64 (i.e.
./0123456789ABC..XYZZabc..xyz).However, scrypt doesn't place the parameters in their own
$-delimited field like yescrypt, but instead concatenates them to the salt and shoves the combined params + salt into a single$-delimited field.Also, where yescrypt uses a variable-width integer encoding, scrypt uses a fixed-width encoding.