]> Cypherpunks.ru repositories - gocheese.git/blobdiff - auth_test.go
Add auth with argon2i and sha256 hashed passwords
[gocheese.git] / auth_test.go
diff --git a/auth_test.go b/auth_test.go
new file mode 100644 (file)
index 0000000..1e49e2b
--- /dev/null
@@ -0,0 +1,45 @@
+package main
+
+import (
+       "testing"
+)
+
+var argon2iParams = "v=19$m=32768,t=3,p=4$ZjY5MDA5MGVlYjM0Yjg2Nw$hS8nOADanSJkVd9x5qZ0JG6Vsj/qG3gUWCqhJdr2A3c"
+
+func TestSHA256(t *testing.T) {
+       algorithm, auther, err := strToAuther("$sha256$a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3")
+       if err != nil {
+               t.FailNow()
+       }
+       if algorithm != "sha256" {
+               t.FailNow()
+       }
+       if !auther.Auth("123") {
+               t.FailNow()
+       }
+       if auther.Auth("1234") {
+               t.FailNow()
+       }
+}
+
+func TestArgon2i(t *testing.T) {
+       algorithm, auther, err := strToAuther("$argon2i$" + argon2iParams)
+       if err != nil {
+               t.FailNow()
+       }
+       if algorithm != "argon2i" {
+               t.FailNow()
+       }
+       if !auther.Auth("123") {
+               t.FailNow()
+       }
+       if auther.Auth("1234") {
+               t.FailNow()
+       }
+}
+
+func BenchmarkParseArgon2i(b *testing.B) {
+       for i := 0; i < b.N; i++ {
+               parseArgon2i(argon2iParams)
+       }
+}