From 3a4c53ba05302cdf76bc5620e5d5bc5e654d3e05 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 19 Jul 2017 00:35:59 +0200 Subject: comments --- key/key.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'key/key.go') diff --git a/key/key.go b/key/key.go index 3c3e98b..bddd6ac 100644 --- a/key/key.go +++ b/key/key.go @@ -11,6 +11,7 @@ import ( "golang.org/x/crypto/ed25519" ) +// DefaultRounds of KDF const DefaultRounds = 42 var ( @@ -27,10 +28,12 @@ var ( kdfAlg = [2]byte{'B', 'K'} ) +// KeyDeriver returns a derived key from passphrase type KeyDeriver interface { DeriveKey(salt []byte, rounds int, length int) ([]byte, error) } +// Generate a new key pair func Generate(der KeyDeriver) (*Pub, *Enc, error) { pubKey, encKey, err := ed25519.GenerateKey(rand.Reader) if err != nil { @@ -44,8 +47,12 @@ func Generate(der KeyDeriver) (*Pub, *Enc, error) { checkSum := sha512.Sum512(encKey) copy(enc.Checksum[:], checkSum[:len(enc.Checksum)]) - rand.Read(enc.Salt[:]) - rand.Read(enc.KeyNum[:]) + if _, err := rand.Read(enc.Salt[:]); err != nil { + return err + } + if _, err := rand.Read(enc.KeyNum[:]); err != nil { + return err + } // Pbdkf if der != nil { -- cgit v1.2.3