fix a Message.signedWithCerts property content#45
fix a Message.signedWithCerts property content#45zavla wants to merge 1 commit intodstucrypt:masterfrom
Conversation
|
То воно получається не буде перевіряти один з сертифікатів, так? Це нехорошо. |
Я файла не бачив, але підозрюю що розбирає він все правильно і там дійсно вказан keyid, а serial не вказан. Це нормально. Треба дивитись на ctx.jsL317~318 чого воно не може знайти той сертифікат по keyid. |
В даному проблемному p7s, доречи сертифікат виданий uakey.com.ua АЦСК Україна, вказано що дані підписано одним сертифікатом. Тобто в групі байтів що відповідають по asn1 идентифікатору certificates є тілки один елемент. Це можна бачити на малюнку, зверху приблизно 9-тий рядок. |
Це просто ще один p7s контейнер, а в ньому позначка часу пидписана TSP сервером, тому функція і рекурсивна. |

Доброго здоров'я.
Маю один p7s файл і щось не перевіряється підпис, помилки не виводиться, в ньому коли використовую ваш github.com/dstucrypt/agent.
Перевіряю в режимі --verify --ocsp lax. З'ясував що саме перевірка --ocsp викликає помилку, яка є коли в об'єкт Message, в поле signedWithCerts, що є масивом, записувалось три об'єкта що представляють сертифікати, які читаються з цього p7s файла. Першій 'сертифікат' був з полем serialNumber, інші два об'єкта були тільки з полем keyId. Я пошукав що там в поле keyId зачиталось з p7s файла.
Використав http://lapo.it/asn1js щоб подивитись байти з keyId у файлі p7s. Маю картинку де видно ці байти в файлі і які ідентифікатори asn1 їм відповідають. Я так зробив висновок що то пакет asn1.js помилково розбирає p7s.
В цьому PR я пропоную корекцію к полю signedWithCerts що
б взагалі відсікати такі прочитані
сертифікатив яких немає поля serialNumber. Тести проходять ті що в вас є в jkurwa.Але я не впевнений що зроблено вірно для всіх, але мою помилку виправило і також коректно перевіряє p7s файли ті що раніше і так перевірялись.