Blame internal/crypt/crypt_test.go

Packit 63bb0d
// +build !darwin
Packit 63bb0d
Packit 63bb0d
package crypt
Packit 63bb0d
Packit 63bb0d
import (
Packit 63bb0d
	"testing"
Packit 63bb0d
Packit 63bb0d
	"github.com/stretchr/testify/assert"
Packit 63bb0d
)
Packit 63bb0d
Packit 63bb0d
func Test_crypt_PasswordIsCrypted(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name     string
Packit 63bb0d
		password string
Packit 63bb0d
		want     bool
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:     "bcrypt",
Packit 63bb0d
			password: "$2b$04$123465789012345678901uac5A8egfBuZVHMrDZsQzR96IqNBivCy",
Packit 63bb0d
			want:     true,
Packit 63bb0d
		}, {
Packit 63bb0d
			name:     "sha256",
Packit 63bb0d
			password: "$5$1234567890123456$v.2bOKKLlpmUSKn0rxJmgnh.e3wOKivAVNZmNrOsoA3",
Packit 63bb0d
			want:     true,
Packit 63bb0d
		}, {
Packit 63bb0d
			name:     "sha512",
Packit 63bb0d
			password: "$6$1234567890123456$d.pgKQFaiD8bRiExg5NesbGR/3u51YvxeYaQXPzx4C6oSYREw8VoReiuYZjx0V9OhGVTZFqhc6emAxT1RC5BV.",
Packit 63bb0d
			want:     true,
Packit 63bb0d
		}, {
Packit 63bb0d
			name:     "scrypt",
Packit 63bb0d
			password: "$7$123456789012345", //not actual hash output from scrypt
Packit 63bb0d
			want:     false,
Packit 63bb0d
		}, {
Packit 63bb0d
			name:     "plain",
Packit 63bb0d
			password: "password",
Packit 63bb0d
			want:     false,
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, test := range tests {
Packit 63bb0d
		t.Run(test.name, func(t *testing.T) {
Packit 63bb0d
			if got := PasswordIsCrypted(test.password); got != test.want {
Packit 63bb0d
				t.Errorf("PasswordIsCrypted() =%v, want %v", got, test.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestCryptSHA512(t *testing.T) {
Packit 63bb0d
	retPassFirst, err := CryptSHA512("testPass")
Packit 63bb0d
	assert.NoError(t, err)
Packit 63bb0d
	retPassSecond, _ := CryptSHA512("testPass")
Packit 63bb0d
	expectedPassStart := "$6$"
Packit 63bb0d
	assert.Equal(t, expectedPassStart, retPassFirst[0:3])
Packit 63bb0d
	assert.NotEqual(t, retPassFirst, retPassSecond)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestGenSalt(t *testing.T) {
Packit 63bb0d
	length := 10
Packit 63bb0d
	retSaltFirst, err := genSalt(length)
Packit 63bb0d
	assert.NoError(t, err)
Packit 63bb0d
	retSaltSecond, _ := genSalt(length)
Packit 63bb0d
	assert.NotEqual(t, retSaltFirst, retSaltSecond)
Packit 63bb0d
}