func testVerified(t *testing.T, g TrustGraph, k libtrust.PublicKey, keyName, target string, permission uint16) { if ok, err := g.Verify(k, target, permission); err != nil { t.Fatalf("Unexpected error during verification: %s", err) } else if !ok { t.Errorf("key failed verification\n\tKey: %s(%s)\n\tNamespace: %s", keyName, k.KeyID(), target) } }
func (g *memoryGraph) GetGrants(key libtrust.PublicKey, node string, permission uint16) ([][]*Grant, error) { grants := [][]*Grant{} collect := func(grant *Grant, chain []*Grant) bool { grantChain := make([]*Grant, len(chain)+1) copy(grantChain, chain) grantChain[len(grantChain)-1] = grant grants = append(grants, grantChain) return false } g.walkGrants(key.KeyID(), node, permission, collect, nil, nil, true) return grants, nil }
func (g *memoryGraph) Verify(key libtrust.PublicKey, node string, permission uint16) (bool, error) { return g.walkGrants(key.KeyID(), node, permission, foundWalkFunc, nil, nil, false), nil }