Существует ли какой-либо формат архива, который предлагает следующее:
- иметь цифровую подпись с цифровым сертификатом из надежного источника, такого как Verisign, - для предотвращения изменений в файле (я не имею в видутолько для чтения, но в случае, если файл был изменен, он больше не должен подписываться, сообщая пользователю, что это не оригинальный файл)
- быть потоковым - иметь возможность открываться, даже если не весь контент имеетбыли переданы (также не строго линейно)
- быть «читабельными» - иметь возможность читать данные без извлечения во временную папку (AFAIK, если вы открываете файл в zip-архиве, он извлекается первым, и это остаетсяtrue даже для форматов на основе zip, таких как OOXML. Это не то, что я хочу)
- быть переносимым - поддержка по крайней мере в Windows, Linux и Mac OS X является обязательной или, по крайней мере, в будущем поддержка
- быть свободным от патентов - быть открытым исходным кодом - также желательно иметь лицензию, которая разрешает коммерческое использование (насколько я знаю, GPL является аналогичной лицензией, поэтому она не позволяеткоммерческое использование, BSD, с другой стороны, позволяет это)
Примечание: Хотя это может пригодиться, в конце концов, я не могу сейчас думать о сценарии, который потребовал бы одновременно и точки 1, и точки 2.Или оставим возможность проверять подпись только после загрузки всего файла.
Меня не интересует:
- возможность сжатия
- поддерживается в устаревших системах
Подходит ли какой-либо существующий формат архива этому описанию (на ум приходят эволюции tar, такие как DAR и pax)?Если есть, есть ли программные библиотеки для вышеупомянутых ОС?Если нет, то будет ли сложно создать такую вещь?
Сценарий использования: я хочу использовать это для создания нового медиа-контейнера.Текущие медиа-контейнеры содержат потоки аудио, видео и субтитров напрямую.Matroska, в настоящее время самый продвинутый контейнер, имеет дополнительные функции, такие как приложения и меню.Функциональность меню, однако, не реализована и очень ограничена.То, что я хочу создать, на один уровень выше.Я хочу создать файл, похожий на OOXML.Кроме того, все меню должно быть сделано в веб-технологиях, таких как HTML5 (так как теперь этот тег позволяет использовать любой кодек) и CSS.Также как у вас есть голограммы на DVD, чтобы доказать подлинность, я хочу создать подписываемый файл
Примечания к исследованию: перед тем, как задать этот вопрос, я наткнулся на следующее: Как лучше всего подписать почтовый индекс цифровым способом?файл для загрузки с использованием .Net
Несмотря на то, что для отдельных файлов, содержащихся в этом архиве, возможна отдельная подпись, она не является элегантным решением для файла архива.Не подходит для конечных пользователей. Конечные пользователи должны иметь возможность дважды щелкнуть файл, чтобы открыть его в медиапроигрывателе, например, VLC, и увидеть сообщение о том, что файл допустим (так же, как вы видите в браузере, если страница передается с SSL через HTTPS).или нет)
РЕДАКТИРОВАТЬ: уточненный пункт 5
РЕДАКТИРОВАТЬ 2: добавлен примечание для уточнения пункта 1 и 2
РЕДАКТИРОВАТЬ 3: добавлен сценарий использования
РЕДАКТИРОВАТЬ 4: добавлен раздел с примечаниями к исследованию
PS: это мой первый вопрос по StackOverflow