taler-mailbox

Service for asynchronous wallet-to-wallet payment messages
Log | Files | Refs | Submodules | README | LICENSE

commit 45827d4febd8b16548668e94c7c5e8fddc4f533c
parent 2077f42893ef52129bde0cc1d8d6721c6a25ec67
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Wed,  5 Nov 2025 23:17:30 +0100

fix handler prio

Diffstat:
Mcmd/mailbox-server/main_test.go | 3++-
Mpkg/rest/mailbox.go | 13++++++-------
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) {