При передаче окончательного файла из издательства в типографию Ваучер Лиспекса записывает решение о соответствии формата страницы, полей, встроенных шрифтов и числа страниц согласованным требованиям. При проблеме с печатью обе стороны могут проверить одну запись. Ваучер проверяет совпадение записи и повторного выполнения. Фактическое действие определяет вызывающее приложение.
Четыре проверки и их результаты
Издатель выполняет правило и подписывает запись. Получатель выбирает допустимые ключи, исполняемый файл и исходник.
| Проверка | Что означает успех | Следующий шаг |
|---|---|---|
| Аутентификация | Разрешённый вашей политикой ключ подписал именно этот контекст | Передайте свои исходник и вход |
| Привязка запроса | Подписанный контекст совпадает с точными байтами этих исходника и входа | Выполните правило заново в Native |
| Согласие текущего выполнения | Полные текущие записи выполнения совпадают с подписанными | Укажите решение, нужное приложению |
| Локальная проверка допуска | Текущий результат равен требуемому решению | Примените политику действий приложения |
vouch verify аутентифицирует запись. Добавьте --source и --input для
привязки запроса, затем --reexecute для проверки текущего выполнения.
Используйте vouch gate --require-decision approve, если приложению нужен
результат approve в этом вызове. Полные команды и результаты приведены в руководстве.
Выберите доверенные данные до проверки подписи
Создайте политику доверия из независимо проверенных открытого ключа, идентификатора исполняемого файла и исходника. Политика хранит допустимые ключи, движки, профили языка и идентификаторы исходников в едином установленном байтовом формате.
Идентификатор исполняемого файла равен SHA-256 точной программы Native. Открытый ключ идентифицирует ключ подписи издателя. Получатель решает, с какой организацией и средой развёртывания связан этот ключ.
vouch policy create записывает эти настройки. vouch policy check проверяет
их формат. Затем vouch verify проверяет подписанную запись по этой политике.
Успешная аутентификация означает, что разрешённый ключ подписал записанный
контекст. Текущее выполнение проверяется отдельно с помощью --reexecute.
Что отправляет издатель
Native vouch issue выполняет правило и подписывает ключом Ed25519 следующие данные.
- Точные байты исходника и входа.
- Профиль языка
csk.checked-profile/v1, задающий допустимые формы для этого процесса. - Обе полные записи выполнения, включая итоговый результат.
- Идентификатор точного исполняемого файла Native у издателя.
Native выполняет исходник двумя реализациями. Интерпретатор Лиспекса читает
исходник, нормализует его в основные формы CoreExpr и вычисляет их.
Интерпретатор Meaning вычисляет представление,
полученное из этого исходника. Оба написаны на Rust. Подписанная запись
сохраняет обе полные записи выполнения, а не только итоговые значения.
Подпись и записанные данные составляют контейнер подписанной записи, также
называемый конвертом DSSE. С --emit-bundle команда создаёт ещё и
транспортный пакет с конвертом, исходником и входом. Формат пакета задаёт
лимит байтов. Файлы описаны в разделе
«Записи и отчёты».
Передайте собственный запрос
Передайте проверенный исходник через --source, а выбранный вход через
--input. Ваучер сравнит их точные байты с подписанным контекстом.
Пакет содержит выбор издателя. отдельные файлы задают ваш выбор.
Повторное выполнение и проверка допуска в Native требуют оба внешних пути.
Неполная пара отклоняется до чтения файлов. Полностью проверенное
изображение Лиспекса может передать исходник
через --source-image. Изображение переносит байты исходника, а получатель
по-прежнему выбирает вход и политику доверия.
Выполните заново и проверьте нужный результат
Native vouch verify --reexecute запускает оба интерпретатора сейчас.
Команда сравнивает полные записи выполнения с подписанными и отдельно
сообщает результаты аутентификации и текущего выполнения.
vouch gate выполняет аутентификацию, привязку запроса, повторное выполнение
и сравнение требуемого решения за один вызов Native. При совпадении возникает
локальный допуск, который существует внутри этого процесса. Приложение
получает результат проверки, а отчёт сохраняет сведения об этом вызове.
Каждый вызов gate заново проверяет переданные данные и запрос. Сохранённые отчёты служат для просмотра и журналирования. Вызывающее приложение управляет личностью пользователя, актуальностью, сроком действия и отзывом. Оно также контролирует повторное использование запросов и состояние транзакций. Приложение разрешает и выполняет платежи, передачу файлов, печать и другие внешние действия.
Добавьте выполнение скомпилированного кода
Добавьте --compiled-artifact, если нужно также согласие ВМ Лиспекса.
Она выполняет скомпилированные инструкции.
После аутентификации запроса Native заново строит файл
lispex.vouch-compiled-artifact/v1 из вашего точного исходника.
Затем проверяет полученный байткод и запускает ВМ Лиспекса.
Это добавляет согласие VM к проверкам tree и Meaning в том же семействе реализаций на Rust. Проверка связывает скомпилированный файл, исходник, вход, запись выполнения и лимиты ресурсов. Команды приведены в примере компиляции.
Выберите другую проверку
| Задача | Операция и результат |
|---|---|
| Проверить структуру записи выполнения | Native vouch inspect читает запись и вход, при необходимости исходник, и создаёт отчёт о структуре |
| Аутентифицировать подписанные данные | vouch verify в Native или npm проверяет их по вашей политике |
| Сравнить сохранённые примеры | npm vouch replay сообщает о совпадении, расхождении и состоянии сравнения |
| Проверить отчёт внешнего движка | Проверка Bridge проверяет идентификаторы и привязки в этом отчёте |
Выполните пример передачи окончательного файла из руководства по Ваучеру. В разделе «Записи и отчёты» выберите, какой файл результата читать следующим.