diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-01-19 21:18:03 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-01-19 21:18:03 +0100 |
commit | c48e4a8a06f5554ff484f1a60c8e5673e70a897a (patch) | |
tree | c1a044a461300beaf967e3f5abe098d431a38e7c /src | |
parent | 84fd3013138db335d34fb734608b43fe2b85641e (diff) |
comment on JSON canonicalization
Diffstat (limited to 'src')
-rw-r--r-- | src/include/taler_json_lib.h | 6 | ||||
-rw-r--r-- | src/json/json.c | 8 |
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 |