В предыдущем вопросе Oh okay введённое имя отделено от ключа поиска NFC. Подпись добавляет другую границу. Допустим, JSON содержит имя с e, за которым следует U+0301, и эта строка участвует в подписи на основе JCS.
RFC 8785 сохраняет разобранные строковые данные Unicode без нормализации. При этом JCS выполняет каноническую сериализацию JSON, поэтому представление, переданное для подписания, не является просто исходными байтами JSON. Замена этого имени на U+00E9 до канонизации изменила бы строковые данные, которые протокол сохраняет.
Я бы сохраняла значения, передаваемые в JCS, а ключ поиска NFC получала в отдельном поле приложения. Это требует ещё одного представления, зато преобразование для поиска остаётся явным. Два набора данных могут дать одинаковый ключ приложения, сохраняя разные строковые данные Unicode для JCS.
На каком этапе получать этот ключ, чтобы код поиска не мог незаметно подставить его в данные, передаваемые в JCS?