blob: 1b07c4918e85e7a399b68f74b67ebdda23fe1069 [file] [log] [blame]
Asim Shankarae8d4c52014-10-08 13:03:31 -07001package security
2
3import (
4 "fmt"
5 "strings"
6
Jiri Simsa6ac95222015-02-23 16:11:49 -08007 "v.io/v23/security"
Asim Shankarae8d4c52014-10-08 13:03:31 -07008)
9
10func matchesError(got error, want string) error {
11 if (got == nil) && len(want) == 0 {
12 return nil
13 }
14 if got == nil {
15 return fmt.Errorf("Got nil error, wanted to match %q", want)
16 }
17 if !strings.Contains(got.Error(), want) {
18 return fmt.Errorf("Got error %q, wanted to match %q", got, want)
19 }
20 return nil
21}
22
23func newPrincipal(selfblessings ...string) (security.Principal, security.Blessings) {
24 p, err := NewPrincipal()
25 if err != nil {
26 panic(err)
27 }
28 if len(selfblessings) == 0 {
Asim Shankar2bf7b1e2015-02-27 00:45:12 -080029 return p, security.Blessings{}
Asim Shankarae8d4c52014-10-08 13:03:31 -070030 }
31 var def security.Blessings
32 for _, str := range selfblessings {
33 b, err := p.BlessSelf(str)
34 if err != nil {
35 panic(err)
36 }
37 if def, err = security.UnionOfBlessings(def, b); err != nil {
38 panic(err)
39 }
40 }
41 if err := p.AddToRoots(def); err != nil {
42 panic(err)
43 }
44 if err := p.BlessingStore().SetDefault(def); err != nil {
45 panic(err)
46 }
47 if _, err := p.BlessingStore().Set(def, security.AllPrincipals); err != nil {
48 panic(err)
49 }
50 return p, def
51}
52
53func bless(blesser, blessed security.Principal, with security.Blessings, extension string) security.Blessings {
54 b, err := blesser.Bless(blessed.PublicKey(), with, extension, security.UnconstrainedUse())
55 if err != nil {
56 panic(err)
57 }
58 return b
59}
60
61func blessSelf(p security.Principal, name string) security.Blessings {
62 b, err := p.BlessSelf(name)
63 if err != nil {
64 panic(err)
65 }
66 return b
67}
68
69func unionOfBlessings(blessings ...security.Blessings) security.Blessings {
70 b, err := security.UnionOfBlessings(blessings...)
71 if err != nil {
72 panic(err)
73 }
74 return b
75}