OpenSSL, как связаны ASN1_TYPE и ASN1_ITEM - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь подписать документ в формате PDF с помощью библиотеки OpenSSL.Теперь я хочу получить дайджест из содержимого документа PDF.Я нашел только метод, который создает дайджест из ASN1_ITEM.Но у меня есть ASN1_OCTET_STRING объект, который я могу преобразовать в ASN1_TYPE при необходимости.Я полагаю, что должен быть какой-то способ конвертировать ASN1_TYPE или ASN1_OCTET_STRING в ASN1_ITEM.Но я не понимаю, как связаны ASN1_TYPE и ASN1_TYPE.

PS Буду признателен, если кто-нибудь поделится какой-то надлежащей документацией OpenSSL.То, что я мог найти, в основном исходные файлы без надлежащего объяснения.

1 Ответ

0 голосов
/ 29 ноября 2018

Поскольку вы пишете "то, что у меня есть * ASN1_OCTET_STRING объект", следующий фрагмент, найденный в разделе NOTES документации ASN1_STRING утилит *1003* , кажется полезным:

Почти все типы ASN1 в OpenSSL представлены как структура ASN1_STRING.Другие типы, такие как ASN1_OCTET_STRING, просто устанавливаются на ASN1_STRING, а функции вызывают ASN1_STRING эквиваленты.

(Вы можете убедиться, что это происходит в ossl_typ.h, на самом деле это не typedef, а #define)

На той же странице документации есть функция ASN1_STRING_to_UTF8(), которую можно использовать для получения представления данных в виде unsigned char * в видеа также его длина.Получив это, вы можете вычислить дайджест по своему вкусу .

Это не ответ на ваш вопрос "как связаны ASN1_TYPE и ASN1_ITEM", но, похоже,охватить проблему, которую вы описываете.Если это не так, пожалуйста, уточните.

...