diff --git a/.gitignore b/.gitignore index daf913b..569f6be 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ _testmain.go *.exe *.test *.prof +debug \ No newline at end of file diff --git a/scramble.go b/passwordHash.go similarity index 100% rename from scramble.go rename to passwordHash.go diff --git a/scramble_test.go b/passwordHash_test.go similarity index 100% rename from scramble_test.go rename to passwordHash_test.go diff --git a/passwordHasher.go b/passwordHasher.go new file mode 100644 index 0000000..307c146 --- /dev/null +++ b/passwordHasher.go @@ -0,0 +1,19 @@ +package passwordHash + +// PasswordHasher is an interface that describes two basic functions that can be +// used to perform a password encode and validate +type PasswordHasher interface { + Encode(pw1 string, pw2 string) (string, error) + Validate(pw string, hashPackage string) (bool, error) +} + +// DefaultPasswordHasher impliments the PasswordHasher interface which uses passwordHash +type DefaultPasswordHasher struct{} + +func (DefaultPasswordHasher) Encode(pw1 string, pw2 string) (string, error) { + return HashWithDefaults(pw1, pw2) +} + +func (DefaultPasswordHasher) Validate(pw string, hashedPackage string) (bool, error) { + return Validate(pw, hashedPackage) +}