Wow indeed Sam you're completely right, with Version13 the test passes. Thank you a lot for help.
Unfortunately, because of that version mismatch, all my users' hashes were created with a version not supported by golang.org/x/crypto/argon2, so I can't migrate :/ Le jeudi 11 octobre 2018 18:37:07 UTC+2, Thomas Bruyelle a écrit : > > Hi all, > > I want to update my authentication code by using > golang.org/x/crypto/argon2, as a replacement of > github.com/tvdburgt/go-argon2 which uses the legacy C lib under the hood > through CGO. > The main benefit is of course to drop the usage of CGO. > > But I encounter a serious issue, with the same inputs (password, salt, > times, threads, memory), the 2 libraries give me 2 different hashes. > That means it's impossible for me to migrate, or else I have to ask all my > users to regenerate their passwords, which is not acceptable for me. > > I wonder if I did something wrong, to illustrate that I wrote a small > test, runnable inside github.com/tvdburgt/go-argon2 : > > package argon2 > import ( > "bytes" > "encoding/base64" > "testing" > > xargon2 "golang.org/x/crypto/argon2" > ) > func TestCompat(t *testing.T) { > salt := []byte("0123456789abcdef") > pwd := []byte("some password") > > ctx := &Context{ > Iterations: 3, > Memory: 1 << 16, > Parallelism: 4, > HashLen: 32, > Mode: ModeArgon2i, > } > hash, err := Hash(ctx, pwd, salt) > if err != nil { > t.Fatal(err) > } > > xhash := xargon2.Key(pwd, salt, 3, 1<<16, 4, 32) > > if !bytes.Equal(hash, xhash) { > t.Errorf("Compat failed:\n%s\n%s\n", > base64.StdEncoding.EncodeToString(hash), > base64.StdEncoding.EncodeToString(xhash), > ) > } > } > > And the result is : > > $ go test . > --- FAIL: TestCompat (0.08s) > compat_test.go:30: Compat failed: > UgjfozCx6kU6vTNKoN8Ic2UTh7Ckphy0Dc79+1xlT/0= > mf9LVGs+VH62cWpoLZVfCvtBWye6uMD7sWJfhYQk3fo= > FAIL > FAIL github.com/tvdburgt/go-argon2 0.362s > > > > > Thanks in advance > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.