Например, authenticated.json записывает действительную подпись по вашей политике.
current.json добавляет сравнение нового выполнения.
gate.json записывает, совпал ли текущий результат с требуемым решением.
Команды ниже продолжают руководство по Ваучеру. Используйте Native в том же каталоге, завершив пример возврата. Полные исходник, вход, подготовка ключей и команды политики приведены в руководстве.
Прочитайте результат и выберите следующую команду
Ниже перечислены файлы отчётов из руководства.
| Файл | Какой результат читать | Следующая команда |
|---|---|---|
issued/issue-report.json | status: "issued-native" | vouch verify аутентифицирует пакет |
authenticated.json | authentication_status: "authenticated" | Добавьте свои --source и --input |
bound.json | Аутентификация успешна после совпадения отдельно переданных исходника и входа | Добавьте --reexecute |
current.json | reexecution.status: "execution-agreed" и comparison.current_vs_signed: "agree" | Запустите vouch gate с нужным решением |
gate.json | gate.status: "granted", требуемое и наблюдаемое решения | Приложение применяет свою политику действий |
authenticated.json и bound.json используют csk.native-verify-report/v0.
Их поле comparison_status описывает подписанную запись выполнения.
Вызов с привязкой запроса добавляет ваши внешние исходник и вход.
current.json использует csk.native-reexecution-report/v0 и отдельно
записывает аутентификацию и текущее согласие tree/Meaning.
gate.json использует csk.native-gate-report/v0.
Интерпретатор Лиспекса читает исходник, нормализует его в основные формы CoreExpr и вычисляет их.
Meaning вычисляет представление, полученное из того же исходника.
Текущее сравнение охватывает полные записи выполнения, включая итоговый результат.
Каждый вызов gate аутентифицирует данные, привязывает запрос, заново выполняет правило и проверяет решение в одном процессе Native. Он использует результат каждого предыдущего этапа внутри этого процесса. Сохранённые отчёты описывают вызов для просмотра и журналирования. Следующий вызов начинается с пакета или конверта, политики, ваших исходника и входа.
Файлы для аутентификации
| Файл или формат | Содержимое | Где используется |
|---|---|---|
policy.json, политика доверия v1 | Выбранные получателем ключи, движки, профили языка и идентификаторы исходников | vouch verify и vouch gate |
issued/envelope.dsse.json | Контейнер подписанной записи с данными выполнения | vouch verify --envelope с внешними исходником и входом |
issued/vouch-input-bundle.json, csk.vouch-input-bundle/v0 | Точные байты конверта, исходника и входа | vouch verify --bundle или vouch gate --bundle |
issued/payload.json | Подписанные данные выполнения с идентификаторами исходника и входа и полными записями | Проверка структуры и аутентификация |
Получатель выбирает открытый ключ, идентификатор исполняемого файла и проверенный исходник. Вызывающее приложение проверяет личность исполнителя, время, уникальность запроса и состояние транзакции. Оно разрешает и выполняет внешнее действие.
Проверьте структуру записи выполнения
Используйте данные выполнения и точный вход из руководства для проверки структуры записи.
lispex vouch inspect \
--receipt issued/payload.json \
--source refund-window.lspx \
--input input.checked.json \
--profile csk.checked-profile/v1 \
--report-out structure.jsonКоманда завершается с кодом 0 без вывода.
Она записывает следующий structure.json.
{
"status": "structurally-consistent",
"verify_report": "csk.verify-report/v0"
}Проверка охватывает схему записи, хеши и внутренние привязки.
Аутентификация подписи выполняется отдельно командой vouch verify из руководства.
Формат дифференциальной записи csk.differential-receipt/v0 описывает правило
профиля решений и точный вход. Он также содержит полученное промежуточное
представление, результаты выполнения, версии и хеши.
Native lispex diff-receipt создаёт такую запись.
npm lispex verify проверяет структуру записи.
npm lispex replay сравнивает наборы записанных случаев.
Эти команды описаны в CLI и
сравнении случаев Ваучера.
Соберите и проверьте скомпилированный файл
Файл lispex.vouch-compiled-artifact/v1 связывает точный исходник с Core IR
и проверенным байткодом. Core IR — промежуточное представление с разрешёнными ссылками имён.
Файл также идентифицирует проверяющую программу байткода, ВМ Лиспекса и профиль ресурсов.
Виртуальная машина выполняет скомпилированные инструкции.
Соберите файл из исходника руководства, затем проверьте, что он в точности получается из этого исходника.
lispex vouch compiled build \
--source refund-window.lspx \
--out refund-window.lpxvca
lispex vouch compiled validate \
--artifact refund-window.lpxvca \
--source refund-window.lspxОбе команды завершаются с кодом 0 и выводят JSON.
Сборка создаёт refund-window.lpxvca и сообщает execution: "not-run".
Проверка сообщает valid: true, derivation: "exact-source" и execution: "not-run".
Оба результата содержат authority: "integrity-only".
Далее аутентифицируйте запрос и выполните скомпилированные инструкции.
lispex vouch verify \
--bundle issued/vouch-input-bundle.json \
--trust-policy policy.json \
--source refund-window.lspx \
--input input.checked.json \
--profile csk.checked-profile/v1 \
--reexecute \
--compiled-artifact refund-window.lpxvca \
--report-out compiled-current.jsonКоманда завершается с кодом 0 без вывода.
Она записывает compiled-current.json в формате csk.native-compiled-reexecution-report/v1.
Отчёт фиксирует аутентификацию с привязкой запроса и текущее согласие tree/Meaning.
Он также записывает точное повторное построение из исходника и текущее согласие ВМ Лиспекса.
| Поле | Значение в этом примере |
|---|---|
authentication.status | "authenticated" |
compiled_reexecution.status | "execution-agreed" |
Native аутентифицирует запрос перед повторным построением Core IR и байткода. Затем проверяет байткод и сравнивает текущее выполнение VM. Чтобы потребовать нужное решение в том же вызове, запустите проверку допуска со скомпилированным файлом.
lispex vouch gate \
--bundle issued/vouch-input-bundle.json \
--trust-policy policy.json \
--source refund-window.lspx \
--input input.checked.json \
--profile csk.checked-profile/v1 \
--compiled-artifact refund-window.lpxvca \
--require-decision approve \
--report-out compiled-gate.jsonКоманда завершается с кодом 0 без вывода.
Она создаёт compiled-gate.json в формате csk.native-compiled-gate-report/v1.
Поле gate.status равно "granted".
Поля gate.observed_decision и gate.required_decision равны "approve".
Локальный допуск существует внутри этого вызова Native.
Другие отчёты сравнения
Эти отчёты отвечают на собственные вопросы сравнения. Проверка допуска Native использует аутентифицированное текущее выполнение.
| Отчёт или продукт | Что записывает | Где использовать |
|---|---|---|
| Отчёт Bridge | Привязки файлов внешнего движка, идентификаторы и объявленные проверки | lispex verify-bridge и политика Bridge получателя |
| Отчёт сравнения случаев | Совпадение, расхождение и состояние сравнения выбранного набора | Проверка правил через replay |