On 31 Aug 2018, at 22:19, Yann Ylavic <ylavic....@gmail.com> wrote: > Actually this updated patch, rather. > There is no more copy with an apr_table than with an apr_hash (we > still point to the given key). > I also added apr_json_object_add() for explicitely allowing doublons, > while apr_json_object_set() still replaces as before, similarly to > apr_table_add() vs apr_table_set(). > > WDYT?
To fill you in, the purpose of the apr_json.h API is to be RFC8259 compliant, which in turn is being used an implementation of JOSE support for APR (RFC7515/RFC7516/RFC7519), which in turn depends on a fully RFC compliant version of a JSON encode/decoder, meeting specific security requirements. In the case of the apr_table.h API, keys are case insensitive, meaning that if we use apr_tables.h in turn apr_json.h will in turn no longer be RFC compliant (object keys will fail comparisons), and therefore neither will any of the JOSE code. As a result, we cannot use the apr_tables.h API for this and remain compliant. The JOSE code was ready earlier today, but the API changes have meant I need to update the code to the new API before being able to commit anything (you just beat me to it). Will do that tomorrow when I have had some sleep. Regards, Graham —