[SCITT] EP-SCITT profile demo (running code) — which SCRAPI implementation is the current interop target?

Iman Schrock <team@emiliaprotocol.ai> Tue, 30 June 2026 18:58 UTC

Return-Path: <team@emiliaprotocol.ai>
X-Original-To: scitt@mail2.ietf.org
Delivered-To: scitt@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 83EDE10B11CA7 for <scitt@mail2.ietf.org>; Tue, 30 Jun 2026 11:58:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1782845896; bh=av2HUbVz6DBwkk4NZTaqAOXnaMhaeWeL2tiOIr2Psng=; h=From:Date:Subject:To; b=dX0rTT2jT/pOuE+GznsTbKKnSdaC1qM4t8h65uHs6FoojPcQwO9f++jFhEGBBiJm4 j3gKOQ0uxgmr9ZaMpWefiWfXqppyhGpG79URIPp1lIZ02lDpFJWiQX8ZOwCmRFj1Hb JTmoW1O7BwcfbLw03uAS40Z8iXQuZkX2INqc2JW8=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=emiliaprotocol.ai
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HKu6fCDMnGuZ for <scitt@mail2.ietf.org>; Tue, 30 Jun 2026 11:58:15 -0700 (PDT)
Received: from mail-oo2-x02.google.com (mail-oo2-x02.google.com [IPv6:2607:f8b0:4864:31::2]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id E5AF210B11C77 for <scitt@ietf.org>; Tue, 30 Jun 2026 11:58:15 -0700 (PDT)
Received: by mail-oo2-x02.google.com with SMTP id 006d021491bc7-6a17c102afbso98951eaf.1 for <scitt@ietf.org>; Tue, 30 Jun 2026 11:58:15 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1782845895; cv=none; d=google.com; s=arc-20260327; b=qLYHFx0+z4OZz/kpZ64gQftLqAL0tD/icF9f+3DX5b11VFMYTV9o14dbm3Txq8m4gA HgAtpSikSIx8bJ5eKodSvQ272sYgzDa2yNZaADQ+0V/ZXKMmzYinp0/v5u9aYCekREv9 QR80GTX3gN81PSHUMF1D80H054OJ4PzxwKPyHfZO9fuOtpF4aOZ+dN0JVNPUp7niE0eC YdP0yKUkohgbX5XrMDHJqCD1kxYmzBXxNM3bv+FWV8dIzMVvC69IULALzlWZa1sZb30r wIJFlM9LJ+7vwvvXJoBsDHqhnbrcpIzGrEHEd8RYIuTVb8JuWdcZPZJF2ST+wGjrVGYM rkug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=av2HUbVz6DBwkk4NZTaqAOXnaMhaeWeL2tiOIr2Psng=; fh=Anxmu+iCZVTaF0nwB+Di1xcbGc8IAUY7lT1BcRHJn1c=; b=Sj+MO9xv7LKrPUcuFc7fOA3VkxIN4C9ZZv/aBVVD4RXbVvko8viGoqECQbxA7TD0qU BocPUOczie5n2QOxIkuVWQRqnxL2bNKlEQa4U6LNLvlFQIFnCkf+NvUS9Mwi+kRg/dpx uOS34XgVONFNB/p9ovzfy3mGPAyOEtVaO7GTieGDrKMSJJG4JNFUo+8c1uGa7ZH/EUkX CDABVws6GF/cV0LUFl8cAdtjQasEmMYWADYtY7uyA7ZYn6hnCayVND4PY1EPbThdtu39 ax6doxAYWlImNDH5NGjxUgtXK1z7Wse0nhvZPJZuC8feBqhkmoS/Frm/+EnWGy+H2i3L wAYw==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=emiliaprotocol.ai; s=google; t=1782845895; x=1783450695; darn=ietf.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=av2HUbVz6DBwkk4NZTaqAOXnaMhaeWeL2tiOIr2Psng=; b=W3ckk9lIXa29Cl7U7VH0fTOB9dJw/4tttklSVepJuxScHlqK4ppl8eLf/ZG1LV2Zqv XELTslLZ230LZRMITYDTM53TecVySxLKFcluZV066/RsnhRuXtJIeOE8J1vQ0af1Y1RP o+1D9DEbRGlFH/T6NGPFVCHpPKodgZa+9dKgRtvcQkGJ28KL2uN3K35WGCfRTb7Ae+4j rZVrDBH3UzHExY22O7AJ9hs6C5TvgOA2t3xMJbDJwjva7Awprg3+YQyZmV/qDouSE084 8+9JbQTp1x5sRYfyLPLPnNrUyHIxed9Ev6RhkDoIpISeG7aIzLkEelt+VsVhfMXzdRg4 rimw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782845895; x=1783450695; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=av2HUbVz6DBwkk4NZTaqAOXnaMhaeWeL2tiOIr2Psng=; b=mC3hYGNiVKSDUdOXgmgEy+7iebNS9dxEDgjbiNv7TC7S1oT8aEk2w3YrFEMA7YHWb1 0uEEhiPJVJ7fNzsnj5gfeWtkF94krrc45xurCfQrqkap4ngymGu2tG1MIKBrq/nCgMb9 OurRpm3djfNKx6DVGBS6SIVNWa8zuWW/vkKkqziS47ijW/zRmpGhhDbLv3GDnlUSxwCA AdNMxfrFQIxIqZF/+fOfKWTVKC+krWezF122MyeKS7qTqvbjrVjb0TgKL2wkuBzJcein bgyUVUakgygSjFF1QfV3P3R1ch8WBDFnLyf9J1ikc2DVfu6zf+Lv1x6nuXzJvV4Z5Jon /aiQ==
X-Gm-Message-State: AOJu0YzZVPPPq19jLF6jQmPHQ4xuOCQp39Q4cagZfOrTZkXRFbyqM8Nx BFNuXUR00asi6p9wwMAgSlcW1NpBJwHrkpCqE1lR7yKMD+BNqvIMAt05uViN+pGghuGb45HlIl3 SvAoSvz0sRRTBxPWE7NKR48Ey2VN53iWxBzuxqAUgjV6wSE+18yrnBPhPZsuHSg==
X-Gm-Gg: AfdE7clcFIrJnjnXbtBT2lBwHfr3piENN1NVUIb+mP2phZcADvZww29zc9dTZWsObyV OGfNMn/t90awS/skAHED7Ieeue8LJ4t99sQgsK/RIeIXXMVfXhEuBC3xgS8NccSdTT2TEsZLudz lWy05zjb3YV5bby8dOviUC/MtR+Xxe0li8R39bd16ch2dlfmJLbGlPtGRXyGMb6MYSQspMSBWUy 1oBhexvrOO7wyUbMtzkUuQa+8jhTmhfQiGhY73829j34hP95biPbjsFAQl263hzmeAvCmLNaDAA x8avltewPApWEapEJYlbe4Qh1hjUPoGyd2HnTwcwT+SDhnOmuHe0jej/aS6Z0JE2QKRovVnW5qd PLV339B4uxA==
X-Received: by 2002:a05:6820:168f:b0:6a1:4388:fb2a with SMTP id 006d021491bc7-6a196c93b06mr1060805eaf.54.1782845895058; Tue, 30 Jun 2026 11:58:15 -0700 (PDT)
MIME-Version: 1.0
From: Iman Schrock <team@emiliaprotocol.ai>
Date: Tue, 30 Jun 2026 11:58:04 -0700
X-Gm-Features: AVVi8CeWLFPy64V7GN7p2YFSiJ-FcpkYyUiq6lqKp8m3byadqUdM8TYIb_TM9RY
Message-ID: <CAOfgHgq+=zmiWiUMOmsove+TuzeiKXqYr_Zkthamw1+vZ7V-EQ@mail.gmail.com>
To: scitt@ietf.org
Content-Type: multipart/alternative; boundary="00000000000043c1ef06557d286e"
Message-ID-Hash: 624H3UYIVYZADO6FGLZ4ZAYETT73KAZI
X-Message-ID-Hash: 624H3UYIVYZADO6FGLZ4ZAYETT73KAZI
X-MailFrom: team@emiliaprotocol.ai
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [SCITT] EP-SCITT profile demo (running code) — which SCRAPI implementation is the current interop target?
List-Id: "Supply Chain Integrity, Transparency, and Trust" <scitt.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/scitt/JN_z2lnfz-PgMFNgLsorJDMZQ-s>
List-Archive: <https://mailarchive.ietf.org/arch/browse/scitt>
List-Help: <mailto:scitt-request@ietf.org?subject=help>
List-Owner: <mailto:scitt-owner@ietf.org>
List-Post: <mailto:scitt@ietf.org>
List-Subscribe: <mailto:scitt-join@ietf.org>
List-Unsubscribe: <mailto:scitt-leave@ietf.org>

Hi all,

I've built a small EP-SCITT profile demo and would value the list's steer
on one concrete question.

An EMILIA authorization receipt (a portable, offline-verifiable proof that
a named, accountable human authorized one specific irreversible action) is
carried as a COSE_Sign1 Signed Statement, registered through SCRAPI, and
then verified as two separate checks:

- EMILIA authorization check: Ed25519 over the canonical EP receipt
payload, offline, no service needed.
- SCITT transparency check: the returned inclusion/transparency receipt
verified against the service's parameters.

The in-repo harness already proves the EP/COSE profile and a reproducible
register -> receipt -> verify-inclusion path in CI against a
clearly-labeled mock transparency service. I deliberately do *not* claim
official SCITT conformance against our own mock — the mock exists only so
the demo runs green in CI; the credible interop claim needs a real external
target.

So the question: which public SCRAPI-compatible implementation should I
point this profile demo at today? I found
scitt-community/scitt-api-emulator, but it appears archived (last commit
late 2024), so I don't want to overstate its current status. If the WG has
a preferred emulator, test service, or reference implementation, I'd rather
point the EP demo there and document the verifier behavior precisely.

Running code, for anyone who wants to look:

- End-to-end harness (register -> receipt -> inclusion verify):
https://github.com/emiliaprotocol/emilia-protocol/blob/main/examples/scitt/ep-receipt-scitt-end-to-end.mjs
- The profile (COSE_Sign1 field mapping, SCRAPI registration, multi-hop
lineage):
https://github.com/emiliaprotocol/emilia-protocol/blob/main/docs/EP-RECEIPT-SCITT-PROFILE.md
- The EP receipt I-D (individual, Apache-2.0),
draft-schrock-ep-authorization-receipts (current -04):
https://datatracker.ietf.org/doc/draft-schrock-ep-authorization-receipts/

The boundary I'm trying to keep crisp: SCITT logs (proves a statement was
recorded); EMILIA authorizes (proves who approved the action). Two
artifacts, "transparency/inclusion receipt" vs "authorization receipt" —
they compose, neither replaces the other. I'd genuinely welcome being told
where this maps badly onto the architecture / SCRAPI / COSE Receipts work.

Thanks,
Iman Schrock
EMILIA Protocol
team@emiliaprotocol.ai