Песочница

Ваучер Лиспекса

Проверьте подпись решения, сопоставьте выбранные исходник и вход, выполните правило заново и потребуйте точный локальный результат.

При передаче окончательного файла из издательства в типографию Ваучер Лиспекса записывает решение о соответствии формата страницы, полей, встроенных шрифтов и числа страниц согласованным требованиям. При проблеме с печатью обе стороны могут проверить одну запись. Ваучер проверяет совпадение записи и повторного выполнения. Фактическое действие определяет вызывающее приложение.

курса из шести шагов.

Четыре проверки и их результаты

Издатель выполняет правило и подписывает запись. Получатель выбирает допустимые ключи, исполняемый файл и исходник.

ПроверкаЧто означает успехСледующий шаг
АутентификацияРазрешённый вашей политикой ключ подписал именно этот контекстПередайте свои исходник и вход
Привязка запросаПодписанный контекст совпадает с точными байтами этих исходника и входаВыполните правило заново в 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 проверяет идентификаторы и привязки в этом отчёте

Выполните пример передачи окончательного файла из руководства по Ваучеру. В разделе «Записи и отчёты» выберите, какой файл результата читать следующим.