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 promptUnknownKey(key libtrust.PublicKey, host string) bool { fmt.Printf("The authenticity of host %q can't be established.\nRemote key ID %s\n", host, key.KeyID()) fmt.Printf("Are you sure you want to continue connecting (yes/no)? ") reader := bufio.NewReader(os.Stdin) line, _, err := reader.ReadLine() if err != nil { log.Fatalf("Error reading input: %s", err) } input := strings.TrimSpace(strings.ToLower(string(line))) return input == "yes" || input == "y" }
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 }