diff options
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 |