aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keys.go13
-rw-r--r--main_test.go16
2 files changed, 10 insertions, 19 deletions
diff --git a/keys.go b/keys.go
index f12c6f0..5e6e73f 100644
--- a/keys.go
+++ b/keys.go
@@ -38,12 +38,19 @@ type EncKey struct {
SecKey [ed25519.PrivateKeySize]byte
}
+func (v *EncKey) XOR(key []byte) {
+ if len(key) != len(v.SecKey) {
+ panic("invalid key len")
+ }
+ for i := range key {
+ v.SecKey[i] ^= key[i]
+ }
+}
+
func (v *EncKey) IsValid(pass []byte) bool {
if v.KDFRounds > 0 {
key := bhash.Pbkdf(pass, v.Salt[:], int(v.KDFRounds), len(v.SecKey))
- for x := range key {
- v.SecKey[x] ^= key[x]
- }
+ v.XOR(key)
}
sum := sha512.Sum512(v.SecKey[:])
return bytes.Equal(sum[:len(v.Checksum)], v.Checksum[:])
diff --git a/main_test.go b/main_test.go
deleted file mode 100644
index 1ea7dc7..0000000
--- a/main_test.go
+++ /dev/null
@@ -1,16 +0,0 @@
-package main
-
-import (
- "testing"
-
- "golang.org/x/crypto/bcrypt"
-)
-
-func TestBcrypt(t *testing.T) {
- pw := "test"
- ret, err := bcrypt.GenerateFromPassword([]byte(pw), 10)
- if err != nil {
- t.Error(err)
- }
- t.Log(ret)
-}