Source file
src/crypto/hkdf/example_test.go
1
2
3
4
5 package hkdf_test
6
7 import (
8 "bytes"
9 "crypto/hkdf"
10 "crypto/rand"
11 "crypto/sha256"
12 "fmt"
13 )
14
15
16
17 func Example_usage() {
18
19 hash := sha256.New
20 keyLen := hash().Size()
21
22
23 secret := []byte{0x00, 0x01, 0x02, 0x03}
24
25
26
27 salt := make([]byte, hash().Size())
28 if _, err := rand.Read(salt); err != nil {
29 panic(err)
30 }
31
32
33 info := "hkdf example"
34
35
36 var keys [][]byte
37 for i := 0; i < 3; i++ {
38 key, err := hkdf.Key(hash, secret, salt, info, keyLen)
39 if err != nil {
40 panic(err)
41 }
42 keys = append(keys, key)
43 }
44
45 for i := range keys {
46 fmt.Printf("Key #%d: %v\n", i+1, !bytes.Equal(keys[i], make([]byte, 16)))
47 }
48
49
50
51
52
53 }
54
View as plain text