aboutsummaryrefslogtreecommitdiffstats
path: root/key/symmetric.go
blob: 6acc8e96afbdc0d95c87010238ebec114c98bb00 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package key

import (
	crypto_rand "crypto/rand"
	"crypto/sha3"
	"github.com/keybase/saltpack"
	"io"
)

func NewReceiverSymmetricKey() (saltpack.ReceiverSymmetricKey, error) {
	var key saltpack.SymmetricKey
	if _, err := io.ReadFull(crypto_rand.Reader, key[:]); err != nil {
		return saltpack.ReceiverSymmetricKey{}, err
	}

	id := sha3.Sum512(key[:])

	return saltpack.ReceiverSymmetricKey{key, id[:]}, nil
}