From f9e5c46d4e7473bf27aac78c8be186300c8e0520 Mon Sep 17 00:00:00 2001 From: Özgür Kesim Date: Sun, 13 Jul 2025 22:22:39 +0200 Subject: running local inprocess keyserver --- main.go | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 2570c08..d281c64 100644 --- a/main.go +++ b/main.go @@ -37,7 +37,7 @@ func main() { // setupTestUser uses the -test_user and -test_secrets flags to bootstrap the // inprocess key server with an initial user. -func setupTestUser(key upspin.KeyServer) { +func setupTestUser(server upspin.KeyServer) { if *keyDir == "" { log.Println("no keyDir provided") return @@ -54,22 +54,41 @@ func setupTestUser(key upspin.KeyServer) { log.Fatalf("cannot open keyDir %q: %v", *keyDir, err) } + if len(entries) == 0 { + log.Fatalf("no entries in keyDir %q", *keyDir) + } + for _, entry := range entries { name := entry.Name() path := filepath.Join(*keyDir, name) - if !entry.IsDir() || !strings.Contains("@", name) { + if !strings.Contains(name, "@") { continue } - pk, err := os.ReadFile(path) + f, err := os.ReadFile(path) if err != nil { log.Fatalf("unable to read %q: %v", path, err) } + parts := strings.SplitN(string(f), "\n", 3) + if len(parts) != 3 { + log.Fatalf("file %q has wrong number of lines", path) + } + dir, err := upspin.ParseEndpoint(parts[0]) + if err != nil { + log.Fatalf("couldn't parse first line of %q as dirserver: %v", path, err) + } + store, err := upspin.ParseEndpoint(parts[1]) + if err != nil { + log.Fatalf("couldn't parse first line of %q as storeserver: %v", path, err) + } + userStruct := &upspin.User{ Name: upspin.UserName(name), - PublicKey: upspin.PublicKey(string(pk)), + Dirs: []upspin.Endpoint{*dir}, + Stores: []upspin.Endpoint{*store}, + PublicKey: upspin.PublicKey(string(parts[2])), } - err = key.Put(userStruct) + err = server.Put(userStruct) if err != nil { log.Fatalf("Put %q failed: %v", name, err) } -- cgit v1.2.3