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