Пакет .opensd
Формат пакета: состав архива, индекс целостности index.json и правила для путей и размеров.
Плагин распространяется одним архивом .opensd. Внутри нет исполняемых файлов операционной системы. Пакет создаёт opensd pack, проверяет opensd check, а показывает содержимое opensd inspect.
Состав
index.json:
{
"format": "opensd",
"format_version": 1,
"id": "com.example.counter",
"version": "1.0.0",
"files": {
"manifest.json": { "size": 812, "sha256": "…" },
"plugin.wasm": { "size": 41233, "sha256": "…" }
}
}Индекс перечисляет все файлы архива, кроме себя. Лишний файл, отсутствующий файл, несовпадение размера или хэша делают пакет недействительным.
Правила
- Пути относительные, с прямым слешем, без
..,., пустых сегментов, двоеточий, обратных слешей, зарезервированных имён Windows и символов<>"|?*. - Имена, отличающиеся только регистром, запрещены.
- Каталоги, ссылки и специальные записи запрещены.
- Файлы с сигнатурами PE, ELF и Mach-O запрещены под любым именем.
manifest.jsonиindex.jsonдолжны описывать один и тот жеidиversion.
SHA-256 подтверждает целостность относительно индекса. Это не подпись автора: тот, кто меняет пакет, может пересчитать индекс. Подписи издателей появятся в отдельной версии формата.