summaryrefslogtreecommitdiff
path: root/src/mint/taler-mint-httpd_responses.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mint/taler-mint-httpd_responses.c')
-rw-r--r--src/mint/taler-mint-httpd_responses.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/mint/taler-mint-httpd_responses.c b/src/mint/taler-mint-httpd_responses.c
index 78e239b7c..7aedec1d3 100644
--- a/src/mint/taler-mint-httpd_responses.c
+++ b/src/mint/taler-mint-httpd_responses.c
@@ -290,5 +290,39 @@ TALER_MINT_reply_withdraw_sign_success (struct MHD_Connection *connection,
}
+/**
+ * Send a response to a "/refresh/commit" request.
+ *
+ * FIXME: maybe not the ideal argument type for @a refresh_session here.
+ *
+ * @param connection the connection to send the response to
+ * @param refresh_session the refresh session
+ * @return a MHD status code
+ */
+int
+TALER_MINT_reply_refresh_commit_success (struct MHD_Connection *connection,
+ struct RefreshSession *refresh_session)
+{
+ struct RefreshCommitResponseSignatureBody body;
+ struct GNUNET_CRYPTO_EddsaSignature sig;
+ json_t *sig_json;
+
+ body.purpose.size = htonl (sizeof (struct RefreshCommitResponseSignatureBody));
+ body.purpose.purpose = htonl (TALER_SIGNATURE_REFRESH_COMMIT_RESPONSE);
+ body.noreveal_index = htons (refresh_session->noreveal_index);
+ TALER_MINT_keys_sign (&body.purpose,
+ &sig);
+ sig_json = TALER_JSON_from_sig (&body.purpose, &sig);
+ GNUNET_assert (NULL != sig_json);
+ return TALER_MINT_reply_json_pack (connection,
+ MHD_HTTP_OK,
+ "{s:i, s:o}",
+ "noreveal_index", (int) refresh_session->noreveal_index,
+ "signature", sig_json);
+}
+
+
+
+
/* end of taler-mint-httpd_responses.c */