Skip to content
Snippets Groups Projects
Commit 74d4d20b authored by ale's avatar ale
Browse files

Increase and standardize logging messages

parent 18716e12
No related branches found
No related tags found
No related merge requests found
......@@ -202,14 +202,16 @@ func (s *KeyStore) Get(username, ssoTicket string) ([]byte, error) {
}
// Close the user's key store and wipe the associated unencrypted key
// from memory.
func (s *KeyStore) Close(username string) {
// from memory. Returns true if a key was actually discarded.
func (s *KeyStore) Close(username string) bool {
s.mx.Lock()
if k, ok := s.userKeys[username]; ok {
defer s.mx.Unlock()
k, ok := s.userKeys[username]
if ok {
wipeBytes(k.pkey)
delete(s.userKeys, username)
}
s.mx.Unlock()
return ok
}
func wipeBytes(b []byte) {
......
......@@ -23,13 +23,13 @@ func (s *keyStoreServer) handleOpen(w http.ResponseWriter, r *http.Request) {
err := s.KeyStore.Open(r.Context(), req.Username, req.Password, req.TTL)
if err == errNoKeys {
log.Printf("no keys found for %s", req.Username)
log.Printf("Open(%s): no encrypted keys found in database", req.Username)
} else if err != nil {
log.Printf("Open(%s) error: %v", req.Username, err)
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("Open(%s): decrypted key, ttl=%d", req.Username, req.TTL)
}
serverutil.EncodeJSONResponse(w, &emptyResponse)
......@@ -44,20 +44,21 @@ func (s *keyStoreServer) handleGet(w http.ResponseWriter, r *http.Request) {
var resp keystore.GetResponse
key, err := s.KeyStore.Get(req.Username, req.SSOTicket)
if err == errNoKeys {
log.Printf("no keys for %s", req.Username)
log.Printf("Get(%s): no unlocked keys found in memory", req.Username)
} else if err != nil {
// Return an appropriate error code.
switch err {
case errUnauthorized, errBadUser:
http.Error(w, err.Error(), http.StatusForbidden)
default:
log.Printf("Get(%s) error: %v", req.Username, err)
log.Printf("Get(%s): error: %v", req.Username, err)
http.Error(w, err.Error(), http.StatusInternalServerError)
}
return
} else {
resp.HasKey = true
resp.Key = key
log.Printf("Get(%s): fetched key", req.Username)
}
serverutil.EncodeJSONResponse(w, &resp)
......@@ -69,7 +70,9 @@ func (s *keyStoreServer) handleClose(w http.ResponseWriter, r *http.Request) {
return
}
s.KeyStore.Close(req.Username)
if s.KeyStore.Close(req.Username) {
log.Printf("Close(%s): discarded key", req.Username)
}
serverutil.EncodeJSONResponse(w, &emptyResponse)
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment