package main import ( "io/ioutil" "os" "testing" ) func TestEncrypt(t *testing.T) { key := GetRandomName() encrypted, salt, iv := Encrypt([]byte("hello, world"), key) decrypted, err := Decrypt(encrypted, key, salt, iv) if err != nil { t.Error(err) } if string(decrypted) != "hello, world" { t.Error("problem decrypting") } _, err = Decrypt(encrypted, "wrong passphrase", salt, iv) if err == nil { t.Error("should not work!") } } func TestEncryptFiles(t *testing.T) { key := GetRandomName() if err := ioutil.WriteFile("temp", []byte("hello, world!"), 0644); err != nil { t.Error(err) } if err := EncryptFile("temp", "temp.enc", key); err != nil { t.Error(err) } if err := DecryptFile("temp.enc", "temp.dec", key); err != nil { t.Error(err) } data, err := ioutil.ReadFile("temp.dec") if string(data) != "hello, world!" { t.Errorf("Got something weird: " + string(data)) } if err != nil { t.Error(err) } if err := DecryptFile("temp.enc", "temp.dec", key+"wrong password"); err == nil { t.Error("should throw error!") } os.Remove("temp.dec") os.Remove("temp.enc") os.Remove("temp") }