Код: Выделить всё
receiptcontext
Клиент iOS использует для создания объекта аттестации:
Код: Выделить всё
DCAppAttestService.shared.generateAssertion(...)Затем он декодируется в бинарное, а затем в CBOR. Затем поле квитанции обнаруживается по адресу cbordata ["attstmt"] ["квитанция"].
Что такое квитанция? x509-parser и т. Д.), Я могу успешно:
- Декодировать квитанцию от Base64
- Проанализировать Внешний PKCS#7 CodeDATA
- Извлеките встроенный Econtent < /ul>
Что такое встроенные данные? Тем не менее, я не могу добраться до него или выяснить, как найти его внутри. < /P>
Здесь мы сейчас застряли. Поле Econtent содержит двоичный ASN.1-Blob, которая не может быть декодирована с использованием любого известного Asn.1 Decoder (openssl, der-parser , asn1crypto и т. Д.). BER, кодируясь с полями неопределенной длины . - не действительный der , что заставляет парсеры провалиться или возвращать частичные результаты. бессмысленная структура или не может достичь nonce .
- nonce (AKA ClientDatahash или ChallengePass ) должен присутствовать как OID 1.2.840.11359.1.9.7 , но:
< /li>
не может быть проанализировано с помощью Der-Parser, x509-parser или цибориума < /p>
< /li>
Не удается, когда диапазон как набор DER или последовательность < /p>
< /li>
не может быть интерпретируется. />
Что я попробовал- Извлечение econtent из конверта CMS
- parsing с помощью der parser , ciborium , и Fallbuck Raws parsing Ciborium , и Fallback Rawsing CODEMERITING Спасибо за помощь! < /p>
Подробнее здесь: https://stackoverflow.com/questions/797 ... s-pkcs7-re