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