Не удалось прочитать подписанный файл PKCS7 в формате s / mime (большой размер) - PullRequest
1 голос
/ 25 июня 2011

Я хочу проверить подписанный файл в формате s / mime, а размер файла pkcs7 составляет 500 МБ.

openssl smime -verify -in test.pk7 -inform DER

Ошибка чтения сообщения S / MIME 715956256: ошибка: 07069041: подпрограммы буфера памяти: BUF_MEM_grow_clean: ошибка malloc: buffer.c: 152: 715956256: ошибка: 0D06B041: процедуры кодирования asn1: ASN1_D2I_READ_BIO: ошибка malloc: a_d2i_fp.c: 229:

Возможно ли при ограниченном использовании памяти, например, 200 МБ?

Ответы [ 4 ]

1 голос
/ 25 июня 2011

К сожалению, OpenSSL загрузит весь файл в память.

Если возможно, переключение отдельных подписей PKCS # 7 значительно уменьшит требования к памяти. Это означает наличие данных и подписи в виде двух отдельных файлов.

0 голосов
/ 03 апреля 2014

Я использовал библиотеку NSS, которая поддерживает обработку на основе фрагментов, и она отлично работала.

0 голосов
/ 11 сентября 2011

Как упоминает Матиас, вы можете обрабатывать данные в потоковом режиме в OpenSSL, если подпись отсоединена.

Теперь, если ваша подпись не отсоединена, вы все равно сможете отсоединить ее самостоятельно. Формат PKCS # 7 хорошо документирован. asn1c может работать в блоках, поэтому вы должны иметь возможность работать с этим.

Конечно, правильное решение - сначала получить отдельную подпись.

0 голосов
/ 08 июля 2011

У меня была эта проблема с зашифрованным файлом объемом 1,4 ГБ, на 32-битном хосте он не работал на malloc, на 64-битном - через.

...