Невозможно записать "случайное состояние"

Приложение OpenSSL выдает ошибку «невозможно записать случайное состояние» при создании самозаверяющего сертификата.

Я нашел Используя OpenSSL, что не может записать «случайное состояние» 'означает? и узнал, что это случай версии более новой, чем 0.9.6a, и удаление или изменение владельца .rnd или запуск от имени пользователя root решат проблему. Но мы используем встроенный Linux с занятым ящиком, поэтому у нас нет sudo/su утилиты, а также файловая система является файловой системой только для чтения.

Я вызываю приложение OpenSSL из приложения, использующего system(). Пожалуйста, помогите, есть ли другой способ решить эту проблему.


person Chu    schedule 13.08.2014    source источник
comment
Итак, мне ясно (у меня нет устройства Busybox для тестирования): выполнение export RANDFILE=/tmp или export RANDFILE=/dev/null не работает? Вы также должны показать код, вызывающий system(), поскольку это может быть актуально.   -  person jww    schedule 13.08.2014
comment
Но мы используем встроенный Linux с занятым ящиком, поэтому у нас нет утилиты sudo / su, а также файловая система является файловой системой только для чтения. Если это действительно связано с проблемой, похоже, вам нужно узнать немного больше об управлении вашей встроенной установкой Linux. Возможно, вам следует сделать символическую ссылку на файл, о котором идет речь, на раздел tmpfs или даже переключиться на схему, в которой ваша работающая файловая система представляет собой либо ramdisk, не сжатый из флэш-памяти, либо какое-то объединение tmpfs поверх файловой системы флэш-памяти только для чтения.   -  person Chris Stratton    schedule 13.08.2014
comment
@Chris - хорошее наблюдение. Но с Busybox работать не так просто (по опыту). Возможно, ему потребуется привлечь консультанта, но в бюджете может не хватить помещения.   -  person jww    schedule 13.08.2014
comment
Из приложения я экспортировал RANDFILE = / dev / null, а затем запустил openssl, используя system (). Но это не сработало, моя ошибка заключалась в том, что я использовал два разных вызова system (). Но когда я использовал обе команды в одном вызове, это сработало. Но разве нет постоянного решения вместо того, чтобы каждый раз вызывать экспорт?   -  person Chu    schedule 16.08.2014