From 65b805211d3e027475e222d1fb45d7713d86f95a Mon Sep 17 00:00:00 2001 From: ale <ale@incal.net> Date: Sat, 17 Feb 2018 18:31:13 +0000 Subject: [PATCH] Log the case when a user has no keys (but Open still succeeds) --- server/keystore.go | 2 +- server/server.go | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/server/keystore.go b/server/keystore.go index a84570ed..4fad6dbf 100644 --- a/server/keystore.go +++ b/server/keystore.go @@ -150,7 +150,7 @@ func (s *KeyStore) Open(ctx context.Context, username, password string, ttlSecon } if len(encKeys) == 0 { // No keys found. Not an error. - return nil + return errNoKeys } // Naive and inefficient way of decrypting multiple keys: it diff --git a/server/server.go b/server/server.go index 681ca481..e65463b0 100644 --- a/server/server.go +++ b/server/server.go @@ -22,13 +22,16 @@ func (s *keyStoreServer) handleOpen(w http.ResponseWriter, r *http.Request) { } err := s.KeyStore.Open(r.Context(), req.Username, req.Password, req.TTL) - if err != nil { + if err == errNoKeys { + log.Printf("no keys found for %s", req.Username) + } else if err != nil { log.Printf("Open(%s) error: %v", req.Username, err) http.Error(w, err.Error(), http.StatusInternalServerError) return + } else { + log.Printf("decrypted key for %s, ttl=%d", req.Username, req.TTL) } - log.Printf("decrypted key for %s, ttl=%d", req.Username, req.TTL) serverutil.EncodeJSONResponse(w, &emptyResponse) } -- GitLab