aboutsummaryrefslogtreecommitdiff
path: root/gen.go
diff options
context:
space:
mode:
Diffstat (limited to 'gen.go')
-rw-r--r--gen.go17
1 files changed, 10 insertions, 7 deletions
diff --git a/gen.go b/gen.go
index 1f612bf..da93282 100644
--- a/gen.go
+++ b/gen.go
@@ -8,7 +8,7 @@ import (
"golang.org/x/crypto/ed25519"
)
-func NewKey(rounds int, xorkey []byte) (PubKey, EncKey, error) {
+func NewKey() (PubKey, EncKey, error) {
pub, sec, err := ed25519.GenerateKey(rand.Reader)
if err != nil {
return PubKey{}, EncKey{}, err
@@ -24,10 +24,9 @@ func NewKey(rounds int, xorkey []byte) (PubKey, EncKey, error) {
copy(pubKey.PubKey[:], pub)
encKey := EncKey{
- PKAlg: PKAlg,
- KDFAlg: KDFAlg,
- KDFRounds: uint32(rounds),
- KeyNum: keyNum,
+ PKAlg: PKAlg,
+ KDFAlg: KDFAlg,
+ KeyNum: keyNum,
}
copy(encKey.SecKey[:], sec)
checkSum := sha512.Sum512(sec)
@@ -38,13 +37,17 @@ func NewKey(rounds int, xorkey []byte) (PubKey, EncKey, error) {
}
func Generate(pubkeyfile, seckeyfile, comment string, rounds int) error {
- pubKey, encKey, err := NewKey(rounds, nil)
+ pubKey, encKey, err := NewKey()
if err != nil {
return err
}
if rounds > 0 {
- // KDF
+ pass, err := AskPassword(nil, true)
+ if err != nil {
+ return err
+ }
+ encKey.Kdf(pass, rounds)
}
sb64, err := Marshal(encKey)