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  }