commit 45827d4febd8b16548668e94c7c5e8fddc4f533c
parent 2077f42893ef52129bde0cc1d8d6721c6a25ec67
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Wed, 5 Nov 2025 23:17:30 +0100
fix handler prio
Diffstat:
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/cmd/mailbox-server/main_test.go b/cmd/mailbox-server/main_test.go
@@ -187,7 +187,7 @@ func TestPostKeys(t *testing.T) {
}
msg.Signature = util.Base32CrockfordEncode(sig)
jsonMsg, _ := json.Marshal(msg)
- req, _ := http.NewRequest("POST", "/keys/"+aliceSigningKey, bytes.NewReader(jsonMsg))
+ req, _ := http.NewRequest("POST", "/keys", bytes.NewReader(jsonMsg))
response := executeRequest(req)
checkResponseCode(t, http.StatusNoContent, response.Code)
req, _ = http.NewRequest("GET", "/keys/"+testAliceHashedSigningKeyString, nil)
@@ -196,6 +196,7 @@ func TestPostKeys(t *testing.T) {
body := response.Body.String()
if body == "" {
t.Errorf("Expected response, Got %s", body)
+ return
}
var respMsg mailbox.MailboxMessageKeys
err := json.NewDecoder(response.Body).Decode(&respMsg)
diff --git a/pkg/rest/mailbox.go b/pkg/rest/mailbox.go
@@ -377,9 +377,9 @@ func (m *Mailbox) getKeysResponse(w http.ResponseWriter, r *http.Request) {
}
func (m *Mailbox) updateKeysResponse(w http.ResponseWriter, r *http.Request) {
- vars := mux.Vars(r)
var msg KeyUpdateRequest
if r.Body == nil {
+ m.Logf(LogError, "no request body")
http.Error(w, "No request body", http.StatusBadRequest)
return
}
@@ -388,23 +388,22 @@ func (m *Mailbox) updateKeysResponse(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusInternalServerError)
return
}
- if msg.Keys.SigningKey != vars["mailbox"] {
- w.WriteHeader(http.StatusBadRequest)
- return
- }
- pkey, err := util.Base32CrockfordDecode(vars["mailbox"], 32)
+ pkey, err := util.Base32CrockfordDecode(msg.Keys.SigningKey, 32)
if err != nil {
+ m.Logf(LogError, "unable to decode pubkey")
w.WriteHeader(http.StatusBadRequest)
return
}
pk := ed25519.PublicKey(pkey)
sig, err := util.Base32CrockfordDecode(msg.Signature, 64)
if nil != err {
+ m.Logf(LogError, "unable to decode signature")
w.WriteHeader(http.StatusBadRequest)
return
}
encPk, err := util.Base32CrockfordDecode(msg.Keys.EncryptionKey, 32)
if err != nil {
+ m.Logf(LogError, "unable to decode encryption key")
w.WriteHeader(http.StatusBadRequest)
return
}
@@ -571,11 +570,11 @@ func (m *Mailbox) setupHandlers() {
m.Router.HandleFunc("/config", m.configResponse).Methods("GET")
/* Mailbox API */
+ m.Router.HandleFunc("/keys", m.updateKeysResponse).Methods("POST")
m.Router.HandleFunc("/{h_mailbox}", m.sendMessageResponse).Methods("POST")
m.Router.HandleFunc("/{h_mailbox}", m.getMessagesResponse).Methods("GET")
m.Router.HandleFunc("/{mailbox}", m.deleteMessagesResponse).Methods("DELETE")
m.Router.HandleFunc("/keys/{h_mailbox}", m.getKeysResponse).Methods("GET")
- m.Router.HandleFunc("/keys/{mailbox}", m.updateKeysResponse).Methods("POST")
}
func (m *Mailbox) Logf(loglevel LogLevel, fmt string, args ...any) {