github.com/pavlo67/common@v0.5.3/common/encrlib/sha256_test.go (about) 1 package encrlib 2 3 import ( 4 "testing" 5 6 "github.com/GehirnInc/crypt" 7 _ "github.com/GehirnInc/crypt/sha256_crypt" 8 "github.com/stretchr/testify/require" 9 10 "github.com/pavlo67/common/common/strlib" 11 ) 12 13 var passwordMinLength = 6 14 var testPassword = strlib.RandomString(passwordMinLength) 15 var testPasswordBad = strlib.RandomString(passwordMinLength - 1) 16 17 const testSalt = "$5$1234" 18 19 func TestGetEncodedPassword(t *testing.T) { 20 21 crypt1 := crypt.SHA256.New() 22 23 hash1, err := crypt1.Generate([]byte(testPasswordBad), []byte(testSalt+"a")) 24 require.NoError(t, err) 25 require.NotEmpty(t, hash1) 26 27 hash2, err := crypt1.Generate([]byte(testPasswordBad), []byte(testSalt+"a")) 28 require.NoError(t, err) 29 require.NotEmpty(t, hash2) 30 31 // test ok 32 33 crypt2 := crypt.SHA256.New() 34 35 err = crypt2.Verify(hash1, []byte(testPasswordBad)) 36 require.NoError(t, err) 37 38 err = crypt2.Verify(hash2, []byte(testPasswordBad)) 39 require.NoError(t, err) 40 41 // test wrong password 42 43 err = crypt2.Verify(hash1, []byte(testPasswordBad+"!")) 44 require.Error(t, err) 45 46 err = crypt2.Verify(hash1, []byte(testPasswordBad[1:])) 47 require.Error(t, err) 48 49 err = crypt2.Verify(hash2, []byte(testPasswordBad+"!")) 50 require.Error(t, err) 51 52 err = crypt2.Verify(hash2, []byte(testPasswordBad[1:])) 53 require.Error(t, err) 54 55 }