aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-01-19 21:18:03 +0100
committerChristian Grothoff <christian@grothoff.org>2020-01-19 21:18:03 +0100
commitc48e4a8a06f5554ff484f1a60c8e5673e70a897a (patch)
treec1a044a461300beaf967e3f5abe098d431a38e7c /src
parent84fd3013138db335d34fb734608b43fe2b85641e (diff)
comment on JSON canonicalization
Diffstat (limited to 'src')
-rw-r--r--src/include/taler_json_lib.h6
-rw-r--r--src/json/json.c8
2 files changed, 13 insertions, 1 deletions
diff --git a/src/include/taler_json_lib.h b/src/include/taler_json_lib.h
index be98f2a7e..d5f6b0ba2 100644
--- a/src/include/taler_json_lib.h
+++ b/src/include/taler_json_lib.h
@@ -107,6 +107,12 @@ TALER_JSON_spec_denomination_signature (const char *field,
/**
* Hash a JSON for binary signing.
*
+ * See https://tools.ietf.org/html/draft-rundgren-json-canonicalization-scheme-15
+ * for fun JSON canonicalization problems. Callers must ensure that
+ * those are avoided in the input. We will use libjanson's "JSON_COMPACT"
+ * encoding for whitespace and "JSON_SORT_KEYS" to canonicalize as best
+ * as we can.
+ *
* @param[in] json some JSON value to hash
* @param[out] hc resulting hash code
* @return #GNUNET_OK on success, #GNUNET_SYSERR on error
diff --git a/src/json/json.c b/src/json/json.c
index 688086a50..807ea0b61 100644
--- a/src/json/json.c
+++ b/src/json/json.c
@@ -25,7 +25,13 @@
/**
- * Hash a JSON for binary signing.
+ * Hash a JSON object for binary signing.
+ *
+ * See https://tools.ietf.org/html/draft-rundgren-json-canonicalization-scheme-15
+ * for fun JSON canonicalization problems. Callers must ensure that
+ * those are avoided in the input. We will use libjanson's "JSON_COMPACT"
+ * encoding for whitespace and "JSON_SORT_KEYS" to canonicalize as best
+ * as we can.
*
* @param[in] json some JSON value
* @param[out] hc resulting hash code