aboutsummaryrefslogtreecommitdiff
path: root/keys.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-04-14 23:49:29 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-04-14 23:49:29 +0200
commit894e41ee7aae0b9a9b8e3e35027c3e2e07096d96 (patch)
tree89b683e28986a459b9588dbed3d3d0e457886ef1 /keys.go
parentde4003cb28ef5f7f257aad15034917587668a8ed (diff)
deadcode
Diffstat (limited to 'keys.go')
-rw-r--r--keys.go13
1 files changed, 10 insertions, 3 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[:])