Redefine ExpandHKDF as a one shot function #73
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.
Go 1.24 will most probably move the
golang.org/x/crypto/hkdf
package into the standard library: golang/go#61477. The new API will be a little bit simpler, basicallyhkdf.Expand
won't return aio.Reader
but a slice of bytes as bis as thekeyLength
parameter.Our
cng.ExpandHKDF
function is not well fitted to implement the new API, as it also returns anio.Reader
and internally allocated a buffer that might not have the same size askeyLength
, which will end up causing unnecessary allocations.This PR redefines and reimplements
cng.ExpandHKDF
so it fits better with the new Go API. As a bonus, the resulting implementation is much simpler.Note that this repository is still in
v0
, so we are free to introduce breaking changes.