@coderifts/agent-guard 17.3.0 → 17.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cas-attestation.d.ts +15 -0
- package/dist/cjs/cas-attestation.d.ts.map +1 -1
- package/dist/cjs/cas-attestation.js +40 -2
- package/dist/cjs/cas-attestation.js.map +1 -1
- package/dist/cjs/vendor/VENDOR.sha256 +47 -10
- package/dist/cjs/vendor/evidence-root.js +188 -0
- package/dist/cjs/vendor/verified-execution-binding.js +202 -11
- package/dist/cjs/vendor/verify-evidence.js +172 -0
- package/dist/cjs/vendor/verify-grant.js +34 -1
- package/dist/cjs/vendor/verify.js +6 -6
- package/dist/esm/cas-attestation.d.ts +15 -0
- package/dist/esm/cas-attestation.d.ts.map +1 -1
- package/dist/esm/cas-attestation.js +40 -2
- package/dist/esm/cas-attestation.js.map +1 -1
- package/dist/esm/vendor/VENDOR.sha256 +47 -10
- package/dist/esm/vendor/evidence-root.js +188 -0
- package/dist/esm/vendor/verified-execution-binding.js +202 -11
- package/dist/esm/vendor/verify-evidence.js +172 -0
- package/dist/esm/vendor/verify-grant.js +34 -1
- package/dist/esm/vendor/verify.js +6 -6
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cas-attestation.js","sourceRoot":"","sources":["../../src/cas-attestation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cas-attestation.js","sourceRoot":"","sources":["../../src/cas-attestation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,uEAAuE;AACvE,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAA6B,CAAC;AAqBlE,MAAM,MAAM,GAAyB,MAAM,CAAC,MAAM,CAAC;IACjD,iCAAiC,EAAE,IAAI;IACvC,mDAAmD,EAAE,IAAI;IACzD,sCAAsC,EAAE,IAAI;IAC5C,qDAAqD,EAAE,IAAI;IAC3D,iCAAiC,EAAE,IAAI;IACvC,oCAAoC,EAAE,IAAI;CAC3C,CAAC,CAAC;AA8JH;;;;;;;;;;;;;;GAcG;AACH,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,8EAA8E;QAC9E,OAAO,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC9B,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAgC,EAChC,OAAiD,EACjD,GAAY;IAEZ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACnF,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IAC9F,CAAC;IACD,IAAI,CAAC;QACH,8DAA8D;QAC9D,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QACnD,8DAA8D;QAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ;gBAAE,SAAS;YACtF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;gBACd,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;gBAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,QAAQ;gBAC5B,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;QACnG,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE;YACzC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;YACzC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC,CAAC;QACH,OAAO;YACL,aAAa,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI;YAC/B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;YACrC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;SAC3C,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,aAAa,EAAE,KAAK;YACpB,MAAM,EAAE,sBAAsB;YAC9B,MAAM,EAAE,OAAO,IAAI,2CAA2C;SAC/D,CAAC;IACJ,CAAC;AACH,CAAC;AAID,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAkC,CAAC;AAO1E;;;;;;;;;;;GAWG;AACH,SAAS,uBAAuB,CAAC,OAAgB,EAAE,IAA6B;IAC9E,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7F,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;WACtC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;IAC1E,IAAI,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAEpC,4FAA4F;IAC5F,EAAE;IACF,+FAA+F;IAC/F,gGAAgG;IAChG,2CAA2C;IAC3C,EAAE;IACF,0FAA0F;IAC1F,2FAA2F;IAC3F,2FAA2F;IAC3F,4EAA4E;IAC5E,EAAE;IACF,8FAA8F;IAC9F,gGAAgG;IAChG,gGAAgG;IAChG,wFAAwF;IACxF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,KAAK,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,kBAAkB,CAAC;IAC7F,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC;IAE5B,IAAI,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/E,IAAI,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/E,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;IAC7B,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAgB,EAChB,QAAiC,EACjC,OAAgC,EAAE;IAElC,MAAM,YAAY,GAAG,QAAQ,IAAI,IAAI;WAChC,QAAQ,CAAC,KAAK,KAAK,mBAAmB;WACtC,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,CAAC;IACtD,CAAC;IACD,OAAO;QACL,YAAY,EAAE,0BAA0B;QACxC,sBAAsB,EAAE,uBAAuB;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GAAgB,MAAM,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,QAAQ;IACf,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,SAAS,WAAW,CAAC,MAAqB,EAAE,GAAkB,EAAE,GAAkB;IAChF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,cAAc;QACrB,aAAa,EAAE,MAAM;QACrB,YAAY,EAAE,GAAG;QACjB,SAAS,EAAE,GAAG;KACf,CAAC,CAAC;AACL,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,+BAA+B,CAAC,OAAgB;IAC9D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,CAAC,GAAG,OAAkC,CAAC;IAC7C,IAAI,OAAO,CAAC,CAAC,oBAAoB,KAAK,QAAQ,IAAI,CAAC,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpF,OAAO,CAAC,CAAC,oBAAoB,CAAC;IAChC,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAI,CAA6B,CAAC,oBAAoB,CAAC;QAChE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,MAAM,QAAQ,GAAgD,EAAE,CAAC;IACjE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC7D,MAAM,CAAC,GAAG,OAAkC,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,MAAkC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SAC3E,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/E,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC;IACrC,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxE,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;IAC7C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,OAAgC,EAAE;IAElC,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC;QAAE,OAAO,eAAe,CAAC;IAClE,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC;IAEzD,MAAM,KAAK,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC;IACtD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,WAAW,CAAC,cAAc,IAAI,IAAI,CAAC;IACjF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;IAE/C,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,QAAQ,GAIV,EAAE,CAAC;IACP,IAAI,KAAK;QAAE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IAClC,IAAI,cAAc;QAAE,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAC;IAC7D,IAAI,YAAY;QAAE,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;IACvD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAEvD,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,0BAA0B,CAAC,KAAK,EAAE;YAC3C,QAAQ;YACR,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;QACtE,CAAC,CAAC,QAAQ,CAAC,OAAkC;QAC7C,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,GAAG,GAAG,OAAO,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9F,MAAM,GAAG,GAAG,OAAO,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAExF,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI;WACpB,CAAC,QAAQ,CAAC,MAAM,KAAK,cAAc,IAAI,QAAQ,CAAC,MAAM,KAAK,mCAAmC,CAAC,EAAE,CAAC;QACvG,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,mBAAmB;YAC1B,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,YAAY,EAAE,GAAG;YACjB,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,qBAAqB,CAAC,CAAU;IAC9C,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAiF,CAAC;IAC5F,OAAO,CAAC,CAAC,UAAU,KAAK,oBAAoB;WACvC,CAAC,CAAC,OAAO,IAAI,IAAI;WACjB,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;WAC7B,CAAC,CAAC,qBAAqB,IAAI,IAAI;WAC/B,OAAO,CAAC,CAAC,qBAAqB,KAAK,QAAQ,CAAC;AACnD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,2BAA2B,CAAC,CAAU;IACpD,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAyB,CAAC;IACpC,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAgC,CAAC;QAC3C,OAAO,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAmD,CAAC;QAC9D,OAAO,CAAC,CAAC,MAAM,KAAK,qBAAqB,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,0BAA0B,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAmD,CAAC;QAC9D,OAAO,CAAC,CAAC,MAAM,KAAK,qBAAqB,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAmD,CAAC;QAC9D,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,eAAe;eAC/B,CAAC,CAAC,MAAM,KAAK,0BAA0B;eACvC,CAAC,CAAC,MAAM,KAAK,oBAAoB,CAAC;eAClC,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,CAAsB;IACvD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,CAAwB,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,OAA2C;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,IAAa;YACxB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,KAAc;YACzB,MAAM,EAAE,qBAA8B;YACtC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa;SAC5E,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,eAAe;YACvB,SAAS,EAAE,SAAkB;YAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc;SAC/E,CAAC,CAAC;IACL,CAAC;IACD,2BAA2B;IAC3B,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,0BAA0B;QAClC,SAAS,EAAE,IAAa;QACxB,MAAM,EAAE,qBAA8B;QACtC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB;KACxF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA0B,EAC1B,OAA2C,EAC3C,OAAgC,EAAE;IAElC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CACjB,+FAA+F;cAC7F,kDAAkD,CACrD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,SAAS,CACjB,yFAAyF;cACvF,4EAA4E,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;IACzD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC;IACzC,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,KAAK,0BAA0B,CAAC;IACtE,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;IACzC,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,KAAK,eAAe,CAAC;IACrD,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,wBAAwB,GAAG,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC;IAC9E,IAAI,OAAO,GAAqD,IAAI,CAAC;IACrE,IAAI,sCAAsC,GAAG,KAAK,CAAC;IACnD,sFAAsF;IACtF,qFAAqF;IACrF,4FAA4F;IAC5F,EAAE;IACF,+FAA+F;IAC/F,0FAA0F;IAC1F,+FAA+F;IAC/F,+FAA+F;IAC/F,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,KAAK,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,kBAAkB,CAAC;IACpG,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAClG,MAAM,QAAQ,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,sFAAsF;YACtF,0CAA0C;YAC1C,wBAAwB,GAAG,KAAK,CAAC;YACjC,OAAO,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,iDAAiD,CAAC,EAAE,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,8EAA8E;YAC9E,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;YAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACrF,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI;qBAChC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,cAAc,CAAC;qBAClD,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;wBACvB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;wBACrC,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,QAAQ;wBAC5B,UAAU,EAAE,IAAI;wBAChB,cAAc,EAAE,IAAI;qBACrB,CAAC,CAAC,CAAC;gBACN,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBAC1E,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI;qBAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC;qBACrF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;wBAClB,8EAA8E;wBAC9E,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;wBACnE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,QAAQ;wBAC5B,UAAU,EAAE,IAAI;wBAChB,cAAc,EAAE,IAAI;qBACrB,CAAC,CAAC,CAAC;gBACN,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;gBACtC,mFAAmF;gBACnF,EAAE;gBACF,yFAAyF;gBACzF,0FAA0F;gBAC1F,sFAAsF;gBACtF,EAAE;gBACF,2FAA2F;gBAC3F,uFAAuF;gBACvF,0FAA0F;gBAC1F,6EAA6E;gBAC7E,OAAO,EAAE,IAAI,CAAC,aAAa;oBACzB,CAAC,CAAC;wBACA,KAAK,EAAE,IAAI,CAAC,aAAa;wBACzB,OAAO,EAAE,cAAc;wBACvB,WAAW,EAAE,IAAI;wBACjB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACxD;oBACD,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE;gBAClC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;gBACjH,WAAW,EAAE;oBACX,KAAK,EAAE,QAAQ;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,8EAA8E;oBAC9E,2CAA2C;oBAC3C,8EAA8E;oBAC9E,MAAM,EAAE,CAAC,CAAS,EAAE,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC9F;gBACD,SAAS,EAAE,GAAG,CAAC,MAAM,KAAK,WAAW;gBACrC,QAAQ,EAAE,CAAC,cAAc,EAAE,sBAAsB,CAAC;aACnD,CAAC,CAAC;YACH,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;YACvD,oFAAoF;YACpF,EAAE;YACF,0FAA0F;YAC1F,uFAAuF;YACvF,4FAA4F;YAC5F,wEAAwE;YACxE,EAAE;YACF,0FAA0F;YAC1F,wFAAwF;YACxF,wBAAwB,GAAG,CAAC,CAAC,sBAAsB,KAAK,IAAI,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;QACxC,uFAAuF;QACvF,EAAE;QACF,4BAA4B;QAC5B,EAAE;QACF,gGAAgG;QAChG,EAAE;QACF,8FAA8F;QAC9F,wFAAwF;QACxF,yBAAyB;QACzB,EAAE;QACF,yDAAyD;QACzD,wDAAwD;QACxD,EAAE;QACF,6FAA6F;QAC7F,8FAA8F;QAC9F,4DAA4D;QAC5D,EAAE;QACF,6FAA6F;QAC7F,+FAA+F;QAC/F,wDAAwD;QACxD,6FAA6F;QAC7F,sFAAsF;QACtF,gFAAgF;QAChF,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,KAAK,cAAc,CAAC;QAC1D,sCAAsC,GAAG,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,WAAW,CAAC;IACzG,CAAC;IAED,MAAM,WAAW,GAAmB;QAClC,gBAAgB,EAAE,oBAAoB;QACtC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACnE,SAAS,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACnE,qBAAqB,EAAE,yBAAyB,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAC7E,gBAAgB;SACjB,CAAC;QACF,GAAG;QACH,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,wBAAwB;YACxB,SAAS;YACT,mBAAmB;YACnB,OAAO;YACP,aAAa;YACb,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,kBAAkB;gBACrC,CAAC,CAAC,EAAE,sCAAsC,EAAE;gBAC5C,CAAC,CAAC,EAAE,CAAC;YACP,qFAAqF;YACrF,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,CAAC;QACF,YAAY;QACZ,MAAM,EAAE,MAAM;KACf,CAAC;IAEF,OAAO,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAiB;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -15,24 +15,61 @@
|
|
|
15
15
|
# against an unauthenticated document is not a binding.
|
|
16
16
|
#
|
|
17
17
|
# Do not edit these files here. Recopy from receipt-verifier and re-pin.
|
|
18
|
-
# PER-FILE PROVENANCE,
|
|
19
|
-
#
|
|
20
|
-
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
18
|
+
# PER-FILE PROVENANCE, RETIRED. It said verify.js was held at 6048195 because "recopying HEAD
|
|
19
|
+
# would change a verifier nobody measured again" — true when written. MEASURED before retiring it:
|
|
20
|
+
# the 6048195 -> v1.0.0 delta on verify.js is ZERO non-comment lines (CLI usage docs), so the
|
|
21
|
+
# reason did not apply to this delta. verify-evidence.js was older still and did not export
|
|
22
|
+
# verifyEvidenceRootBinding at all, which is why the shared core needed a fail-closed guard against
|
|
23
|
+
# its own missing dependency. The core is now ONE released tag.
|
|
23
24
|
#
|
|
24
25
|
# verify.js 6048195c0bcf7e2594a2d78e83cfc082ea615790
|
|
25
26
|
# arity.js 724aa9ae8171f1acf629c3c6b4879dc056575f20
|
|
26
27
|
# verify-grant.js a472bf9073781cba25d83c7d1406b1a7c4af0b94
|
|
27
28
|
# verify-prove-transcript.js 724aa9ae8171f1acf629c3c6b4879dc056575f20
|
|
28
|
-
# verified-execution-binding.js 1e41542296551139c41e2d4b4cff2e67bc42aa06
|
|
29
29
|
# verify-evidence.js 724aa9ae8171f1acf629c3c6b4879dc056575f20
|
|
30
30
|
# keys/coderifts-keys.json 724aa9ae8171f1acf629c3c6b4879dc056575f20
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
# ── THE RECEIPT-VERIFIER CORE IS PINNED TO A RELEASED TAG ───────────────────────────────────
|
|
33
|
+
#
|
|
34
|
+
# The shared verification core here comes from receipt-verifier **v1.0.1**, peeled commit
|
|
35
|
+
# 51a8224439959a5b46c0b09e9a2cd67117f05d56.
|
|
36
|
+
#
|
|
37
|
+
# It was pinned to a WORKING TREE and to per-file commits. Both are honest about where the bytes
|
|
38
|
+
# came from and neither is a provenance a stranger can resolve: a working tree is not fetchable,
|
|
39
|
+
# so "the vendored bytes match upstream" reduced to "they match whatever is on this machine right
|
|
40
|
+
# now". A released tag is a name anyone can check out — that is the difference between a pin and
|
|
41
|
+
# a note.
|
|
42
|
+
#
|
|
43
|
+
# The hash lines below are UNCHANGED by the re-pin. Where a file already matched the tag this is
|
|
44
|
+
# prose only; where it did not, it was re-copied from the tag and that is recorded below.
|
|
45
|
+
#
|
|
46
|
+
#
|
|
47
|
+
# ── AND THE TAG IS SIGNED, WHICH IS THE PART A STRANGER CAN CHECK ───────────────────────────
|
|
48
|
+
#
|
|
49
|
+
# v1.0.0 was an unsigned tag: a name anyone can check out, and also a name anyone with push access
|
|
50
|
+
# can move. v1.0.1 is annotated and SSH-signed, so the pin now resolves to an identity and not
|
|
51
|
+
# only to bytes.
|
|
52
|
+
#
|
|
53
|
+
# tag object 06dd74f36f60e0b4d22dd4667732fe0a27575287
|
|
54
|
+
# peeled commit 51a8224439959a5b46c0b09e9a2cd67117f05d56
|
|
55
|
+
# signer zsobpeter@gmail.com
|
|
56
|
+
# fingerprint SHA256:7yRXTm9zKGicfFpzL+7lpwFoPaoSwxAJlabB3jwxw2Y
|
|
57
|
+
#
|
|
58
|
+
# Verify it yourself, in a checkout of receipt-verifier:
|
|
59
|
+
#
|
|
60
|
+
# git tag -v v1.0.1
|
|
61
|
+
# -> Good "git" signature for zsobpeter@gmail.com with ED25519 key SHA256:7yRXTm9zKGicfFpzL+7lpwFoPaoSwxAJlabB3jwxw2Y
|
|
62
|
+
#
|
|
63
|
+
# The peeled commit is UNCHANGED from v1.0.0 — the core is byte-identical and this re-pin moves no
|
|
64
|
+
# hash line. What it adds is who stands behind the bytes.
|
|
65
|
+
# source_commit: 51a8224439959a5b46c0b09e9a2cd67117f05d56 (receipt-verifier v1.0.1, signed)
|
|
66
|
+
#
|
|
67
|
+
|
|
68
|
+
verify.js 348d3f851cd79bf63298b51da422d11be980820576ab0bf0a2990b9f007d6249
|
|
33
69
|
arity.js 721fcac58b960b5e2aa1af91edb6cfc87ebe828a6da73879967ef79a1ca474e8
|
|
34
|
-
verify-grant.js
|
|
70
|
+
verify-grant.js 4a0ad5bd7bb8282e086bea99dcaf8ca278370d80019c5681d2942bf11bc87504
|
|
35
71
|
verify-prove-transcript.js 3bb17bd4f16d5ee3cf3fbb754b4df9aa570a615ca94ff2a97b751c4fabd3bd0d
|
|
36
|
-
verify-evidence.js
|
|
37
|
-
verified-execution-binding.js
|
|
72
|
+
verify-evidence.js 98cd9b989a25095e0442f91f68a1adecd6e6a2a5b05902bf2580b8cba973c5e2
|
|
73
|
+
verified-execution-binding.js 9d0259e916f2bcd32029744c3e9ec81448bcefa46e6ad3f054c8a650dc0482b7
|
|
38
74
|
keys/coderifts-keys.json bfe0c898cda3c3a4c8141726d0adb4cdb7eb9762de6264e430eff6469b90422e
|
|
75
|
+
evidence-root.js 4d5476fc44bbfc2a847feeb313a1c6c08ef7fd832a2348ef3c244bd8d3f03fcd
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* cr.evidence.root.v1 — ONE signed manifest that binds a set of tokens to ONE run.
|
|
5
|
+
*
|
|
6
|
+
* ── THE ATTACK THIS EXISTS FOR (1432) ───────────────────────────────────────────────────────
|
|
7
|
+
*
|
|
8
|
+
* 1423 made every token in a prove artifact authenticate against its issuer's key. That closed
|
|
9
|
+
* forgery and left something open, which the second auditor found and which was reproduced three
|
|
10
|
+
* ways before this file existed: take a REAL second run of the same producer, at the same commit,
|
|
11
|
+
* and move one of ITS tokens into the first run's artifact. Recompute the pin. Everything still
|
|
12
|
+
* verifies — because nothing was forged. Each token really was issued, really is signed, and
|
|
13
|
+
* really says what it says.
|
|
14
|
+
*
|
|
15
|
+
* transcript_token from run B → graded COVERED
|
|
16
|
+
* execution_grant from run B → graded COVERED
|
|
17
|
+
* chain_receipt from run B → graded COVERED
|
|
18
|
+
*
|
|
19
|
+
* Authenticity is a property of a TOKEN. "These tokens are one run" is a property of a SET, and no
|
|
20
|
+
* per-token signature can carry it. So a set needs its own signature.
|
|
21
|
+
*
|
|
22
|
+
* ── WHAT THE ROOT IS, AND WHAT IT IS NOT ────────────────────────────────────────────────────
|
|
23
|
+
*
|
|
24
|
+
* It is the producer saying, under its own key: "this run emitted exactly these bytes". The
|
|
25
|
+
* binding is the sha256 of each token's EXACT bytes, not a claim copied out of it — a substituted
|
|
26
|
+
* token has different bytes, so its digest cannot match, whatever it says inside.
|
|
27
|
+
*
|
|
28
|
+
* It is NOT a second opinion on any token's validity. A root cannot make an expired grant current
|
|
29
|
+
* or a bad signature good; every per-token check still runs and still decides. The root adds one
|
|
30
|
+
* sentence the others could not say.
|
|
31
|
+
*
|
|
32
|
+
* ── WHY IT IS SIGNED BY THE EXECUTOR ────────────────────────────────────────────────────────
|
|
33
|
+
*
|
|
34
|
+
* The executor is the only party present for the whole run: it mints the challenge, consumes the
|
|
35
|
+
* grant, seals the attestation and signs the transcript. The issuer sees one authorize; the
|
|
36
|
+
* provider sees one merge. A manifest of the run has to be signed by whoever witnessed the run,
|
|
37
|
+
* and that is the executor — the same key the correlation already uses, deliberately, so a reader
|
|
38
|
+
* verifying one is verifying the other's signer too.
|
|
39
|
+
*
|
|
40
|
+
* The residual is stated rather than hidden: this is the EXECUTOR's account of its own run. It
|
|
41
|
+
* makes splicing detectable, not impossible for the executor itself. An executor that lies about
|
|
42
|
+
* its own run was never constrained by its own signature — what the root removes is the ability of
|
|
43
|
+
* a THIRD party (anyone who can edit a vendored artifact) to assemble two honest runs into one.
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
const crypto = require('node:crypto');
|
|
47
|
+
|
|
48
|
+
const ROOT_V = 'cr.evidence.root.v1';
|
|
49
|
+
const ROOT_SIGNING_PREFIX = 'crevidenceroot.v1';
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* The slots a root accounts for. MANDATORY ones must be present and non-null: a root that simply
|
|
53
|
+
* omits a token would let deletion — the strongest tamper there is — read as "not applicable".
|
|
54
|
+
*/
|
|
55
|
+
const SLOTS = Object.freeze({
|
|
56
|
+
chain_receipt: { mandatory: true },
|
|
57
|
+
execution_grant: { mandatory: true },
|
|
58
|
+
transcript_token: { mandatory: true },
|
|
59
|
+
correlation: { mandatory: true },
|
|
60
|
+
atomic_attestation: { mandatory: false },
|
|
61
|
+
provider_readback: { mandatory: false },
|
|
62
|
+
});
|
|
63
|
+
const SLOT_NAMES = Object.freeze(Object.keys(SLOTS));
|
|
64
|
+
|
|
65
|
+
const sha256pref = (bytes) =>
|
|
66
|
+
`sha256:${crypto.createHash('sha256').update(bytes).digest('hex')}`;
|
|
67
|
+
|
|
68
|
+
/** RFC 8785-shaped canonical JSON: sorted keys, no whitespace, no invented values. */
|
|
69
|
+
function canonicalJson(value) {
|
|
70
|
+
if (value === null) return 'null';
|
|
71
|
+
const t = typeof value;
|
|
72
|
+
if (t === 'boolean' || t === 'string') return JSON.stringify(value);
|
|
73
|
+
if (t === 'number') {
|
|
74
|
+
if (!Number.isFinite(value)) throw new TypeError('canonicalJson: non-finite number');
|
|
75
|
+
return JSON.stringify(value);
|
|
76
|
+
}
|
|
77
|
+
if (t === 'undefined') throw new TypeError('canonicalJson: undefined');
|
|
78
|
+
if (Array.isArray(value)) return `[${value.map(canonicalJson).join(',')}]`;
|
|
79
|
+
const keys = Object.keys(value).sort();
|
|
80
|
+
return `{${keys.map((k) => `${JSON.stringify(k)}:${canonicalJson(value[k])}`).join(',')}}`;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* The exact bytes signed. The WHOLE body under canonical JSON, so every field is covered and a
|
|
85
|
+
* future field cannot be added without breaking the signature.
|
|
86
|
+
*/
|
|
87
|
+
function rootSigningInput(body) {
|
|
88
|
+
return `${ROOT_SIGNING_PREFIX}|${canonicalJson(body)}`;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Digest a token exactly as it travels.
|
|
93
|
+
*
|
|
94
|
+
* A STRING is hashed as utf8 bytes. An OBJECT — the correlation is one — is hashed as canonical
|
|
95
|
+
* JSON, so key order in a re-serialised artifact cannot change the digest of a value nobody
|
|
96
|
+
* edited. Absent is null, never the empty-string hash: `sha256('')` is a real value and would
|
|
97
|
+
* make "no token" indistinguishable from "a token that happens to be empty".
|
|
98
|
+
*/
|
|
99
|
+
function digestToken(token) {
|
|
100
|
+
if (token == null) return null;
|
|
101
|
+
if (typeof token === 'string') return token.length === 0 ? null : sha256pref(Buffer.from(token, 'utf8'));
|
|
102
|
+
return sha256pref(Buffer.from(canonicalJson(token), 'utf8'));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Build and sign a root.
|
|
107
|
+
*
|
|
108
|
+
* @param {object} o
|
|
109
|
+
* @param {string} o.run_id
|
|
110
|
+
* @param {{name: string, version: string, commit: string|null}} o.producer
|
|
111
|
+
* @param {string} o.operation
|
|
112
|
+
* @param {string} o.target_uri
|
|
113
|
+
* @param {string|null} o.contract_commit
|
|
114
|
+
* @param {object} o.tokens slot name → the token as it travels (string or object)
|
|
115
|
+
* @param {object} o.claims { grant_id, receipt_hash, scope_hash, policy_hash, state_token_hash }
|
|
116
|
+
* @param {import('crypto').KeyObject} o.privateKey
|
|
117
|
+
* @param {string} o.executor_kid
|
|
118
|
+
*/
|
|
119
|
+
function buildEvidenceRoot(o) {
|
|
120
|
+
const artifact_digests = {};
|
|
121
|
+
for (const name of SLOT_NAMES) {
|
|
122
|
+
artifact_digests[name] = digestToken(o.tokens ? o.tokens[name] : null);
|
|
123
|
+
}
|
|
124
|
+
const c = o.claims || {};
|
|
125
|
+
const body = {
|
|
126
|
+
v: ROOT_V,
|
|
127
|
+
run_id: String(o.run_id),
|
|
128
|
+
executor_kid: String(o.executor_kid),
|
|
129
|
+
producer: {
|
|
130
|
+
name: String(o.producer.name),
|
|
131
|
+
version: String(o.producer.version),
|
|
132
|
+
commit: o.producer.commit == null ? null : String(o.producer.commit),
|
|
133
|
+
},
|
|
134
|
+
operation: o.operation == null ? null : String(o.operation),
|
|
135
|
+
target_uri: o.target_uri == null ? null : String(o.target_uri),
|
|
136
|
+
contract_commit: o.contract_commit == null ? null : String(o.contract_commit),
|
|
137
|
+
artifact_digests,
|
|
138
|
+
// The CLAIMS the run asserts. They are ALSO inside the tokens; carrying them here is what
|
|
139
|
+
// lets a verifier compare the two and refuse a manifest that agrees with itself but not with
|
|
140
|
+
// its own evidence.
|
|
141
|
+
grant_id: c.grant_id == null ? null : String(c.grant_id),
|
|
142
|
+
receipt_hash: c.receipt_hash == null ? null : String(c.receipt_hash),
|
|
143
|
+
scope_hash: c.scope_hash == null ? null : String(c.scope_hash),
|
|
144
|
+
policy_hash: c.policy_hash == null ? null : String(c.policy_hash),
|
|
145
|
+
state_token_hash: c.state_token_hash == null ? null : String(c.state_token_hash),
|
|
146
|
+
};
|
|
147
|
+
const signature = crypto.sign(null, Buffer.from(rootSigningInput(body), 'utf8'), o.privateKey);
|
|
148
|
+
return { ...body, signature: signature.toString('base64url') };
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/** Verify a root's own signature. Says nothing about the tokens — that is verifyEvidenceEnvelope. */
|
|
152
|
+
function verifyEvidenceRoot(root, publicKey) {
|
|
153
|
+
if (!root || root.v !== ROOT_V) {
|
|
154
|
+
return { valid: false, status: 'ROOT_MALFORMED', reason: 'not_an_evidence_root' };
|
|
155
|
+
}
|
|
156
|
+
if (typeof root.signature !== 'string' || root.signature.length === 0) {
|
|
157
|
+
return { valid: false, status: 'ROOT_MALFORMED', reason: 'no_signature' };
|
|
158
|
+
}
|
|
159
|
+
if (!publicKey) {
|
|
160
|
+
return { valid: false, status: 'ROOT_UNKNOWN_KEY', reason: 'unknown_kid' };
|
|
161
|
+
}
|
|
162
|
+
const { signature, ...body } = root;
|
|
163
|
+
let ok = false;
|
|
164
|
+
try {
|
|
165
|
+
ok = crypto.verify(
|
|
166
|
+
null, Buffer.from(rootSigningInput(body), 'utf8'), publicKey,
|
|
167
|
+
Buffer.from(signature, 'base64url'),
|
|
168
|
+
);
|
|
169
|
+
} catch (_) {
|
|
170
|
+
return { valid: false, status: 'ROOT_INVALID_SIGNATURE', reason: 'signature_error' };
|
|
171
|
+
}
|
|
172
|
+
return ok
|
|
173
|
+
? { valid: true, status: 'ROOT_VALID' }
|
|
174
|
+
: { valid: false, status: 'ROOT_INVALID_SIGNATURE', reason: 'signature_mismatch' };
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
module.exports = {
|
|
178
|
+
ROOT_V,
|
|
179
|
+
ROOT_SIGNING_PREFIX,
|
|
180
|
+
SLOTS,
|
|
181
|
+
SLOT_NAMES,
|
|
182
|
+
canonicalJson,
|
|
183
|
+
rootSigningInput,
|
|
184
|
+
digestToken,
|
|
185
|
+
buildEvidenceRoot,
|
|
186
|
+
verifyEvidenceRoot,
|
|
187
|
+
sha256pref,
|
|
188
|
+
};
|
|
@@ -43,6 +43,7 @@ const crypto = require('node:crypto');
|
|
|
43
43
|
|
|
44
44
|
const { verifyExecutionGrant } = require('./verify-grant.js');
|
|
45
45
|
const { verifyEvidenceRootBinding } = require('./verify-evidence.js');
|
|
46
|
+
const { verifyReceipt } = require('./verify.js');
|
|
46
47
|
|
|
47
48
|
const BINDING_V = 'cr.verified-execution-binding.v1';
|
|
48
49
|
|
|
@@ -57,6 +58,24 @@ const STATE = Object.freeze({
|
|
|
57
58
|
RECORDED_UNWITNESSED: 'RECORDED_UNWITNESSED',
|
|
58
59
|
NOT_COMMITTED: 'NOT_COMMITTED',
|
|
59
60
|
AUTHORIZED_AND_COMMITTED: 'AUTHORIZED_AND_COMMITTED',
|
|
61
|
+
/**
|
|
62
|
+
* A CUSTOM aggregation was satisfied — and it is NOT the global success token.
|
|
63
|
+
*
|
|
64
|
+
* ── THE HOLE THIS CLOSES, REPRODUCED BEFORE IT WAS WRITTEN ──────────────────────────────
|
|
65
|
+
*
|
|
66
|
+
* valid grant + committed + NO attestation + NO root, required: ['issuer_grant']
|
|
67
|
+
* -> AUTHORIZED_AND_COMMITTED, authorized_and_committed: true
|
|
68
|
+
*
|
|
69
|
+
* Nothing was forged. The caller simply asked for less, and the function handed back the token
|
|
70
|
+
* every consumer reads as "authorized and committed". `required[]` was a strictness dial that
|
|
71
|
+
* also selected the NAME of success, so narrowing the dial upgraded the verdict — the strongest
|
|
72
|
+
* word in the vocabulary, reachable by asking for the least.
|
|
73
|
+
*
|
|
74
|
+
* A caller may still choose its own authorities. What it may no longer do is call the result by
|
|
75
|
+
* the global name. `AUTHORIZED_AND_COMMITTED` is now reachable ONLY through a closed, versioned
|
|
76
|
+
* profile whose authority set the caller does not get to shorten.
|
|
77
|
+
*/
|
|
78
|
+
CUSTOM_REQUIREMENTS_SATISFIED: 'CUSTOM_REQUIREMENTS_SATISFIED',
|
|
60
79
|
});
|
|
61
80
|
|
|
62
81
|
/** What each authority is allowed to be missing for, so a caller can choose its own strictness. */
|
|
@@ -67,6 +86,36 @@ const AUTHORITY = Object.freeze({
|
|
|
67
86
|
PROVIDER_WITNESS: 'provider_witness',
|
|
68
87
|
});
|
|
69
88
|
|
|
89
|
+
/**
|
|
90
|
+
* CLOSED, VERSIONED ASSURANCE PROFILES.
|
|
91
|
+
*
|
|
92
|
+
* A profile fixes its authority set. The caller names the profile; it does not get to edit what
|
|
93
|
+
* the profile means, and the version in the name is what lets the set change later without
|
|
94
|
+
* silently changing what an older caller was promised.
|
|
95
|
+
*
|
|
96
|
+
* `TRUSTED_EXECUTOR_INTEGRITY_V1` is the honest ceiling of a single-machine chain: the decision
|
|
97
|
+
* receipt verified, the issuer's grant verified, the executor's attestation verified, and one
|
|
98
|
+
* signed root binding the set to one run. It says nothing about a third party, and the name is
|
|
99
|
+
* chosen so it cannot be read as one — `EXTERNALLY_WITNESSED_EXECUTION_V1` is a different profile
|
|
100
|
+
* and no producer can satisfy it today (no signed-witness format exists), which is why it is not
|
|
101
|
+
* declared here as an empty promise.
|
|
102
|
+
*/
|
|
103
|
+
const PROFILE = Object.freeze({
|
|
104
|
+
TRUSTED_EXECUTOR_INTEGRITY_V1: Object.freeze({
|
|
105
|
+
name: 'TRUSTED_EXECUTOR_INTEGRITY_V1',
|
|
106
|
+
authorities: Object.freeze([
|
|
107
|
+
AUTHORITY.ISSUER_GRANT,
|
|
108
|
+
AUTHORITY.EXECUTOR_ATTESTATION,
|
|
109
|
+
AUTHORITY.ONE_RUN_ROOT,
|
|
110
|
+
]),
|
|
111
|
+
// The receipt is mandatory in every profile and is not listed as an authority because it is
|
|
112
|
+
// not optional anywhere — it gates the whole predicate above the state machine.
|
|
113
|
+
proof_scope: 'TRUSTED_EXECUTOR',
|
|
114
|
+
externally_witnessed: false,
|
|
115
|
+
}),
|
|
116
|
+
});
|
|
117
|
+
const PROFILE_NAMES = Object.freeze(Object.keys(PROFILE));
|
|
118
|
+
|
|
70
119
|
const sha256pref = (v) =>
|
|
71
120
|
`sha256:${crypto.createHash('sha256').update(String(v), 'utf8').digest('hex')}`;
|
|
72
121
|
|
|
@@ -116,12 +165,55 @@ function grantClaims(token) {
|
|
|
116
165
|
* @param {{artifact: object, executorKey}} [o.evidenceRoot]
|
|
117
166
|
* @param {{signed: boolean}} [o.providerReadback]
|
|
118
167
|
* @param {boolean} o.committed
|
|
119
|
-
* @param {string
|
|
168
|
+
* @param {string} [o.profile] a CLOSED profile name (see PROFILE). Its authority set cannot be
|
|
169
|
+
* edited by the caller, and only a profile can reach AUTHORIZED_AND_COMMITTED.
|
|
170
|
+
* @param {string[]} [o.required] a CUSTOM authority set. Legal, and it can never produce the
|
|
171
|
+
* global success token — a satisfied custom set reads CUSTOM_REQUIREMENTS_SATISFIED.
|
|
120
172
|
*/
|
|
121
173
|
function verifiedExecutionBinding(o = {}) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
174
|
+
// ── WHICH SET, AND WHO CHOSE IT ─────────────────────────────────────────────────────────
|
|
175
|
+
//
|
|
176
|
+
// A profile and a custom set are different KINDS of question, so they are answered separately
|
|
177
|
+
// and never merged. Passing both is refused rather than resolved by precedence: a caller that
|
|
178
|
+
// names a profile and then also lists authorities is asking two things at once, and picking one
|
|
179
|
+
// silently is how a caller ends up believing it got the other.
|
|
180
|
+
const profileName = typeof o.profile === 'string' && o.profile ? o.profile : null;
|
|
181
|
+
const customRequired = Array.isArray(o.required) && o.required.length ? o.required : null;
|
|
182
|
+
if (profileName && customRequired) {
|
|
183
|
+
return {
|
|
184
|
+
v: BINDING_V,
|
|
185
|
+
authorized_and_committed: false,
|
|
186
|
+
requirements_satisfied: false,
|
|
187
|
+
profile: null,
|
|
188
|
+
proof_scope: null,
|
|
189
|
+
externally_witnessed: false,
|
|
190
|
+
state: STATE.UNAUTHORIZED,
|
|
191
|
+
authorities: {},
|
|
192
|
+
shortfalls: ['profile: both `profile` and `required` were supplied — a closed profile\'s '
|
|
193
|
+
+ 'authority set is not editable, so this asks two different questions at once'],
|
|
194
|
+
does_not_prove: [],
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
if (profileName && !Object.prototype.hasOwnProperty.call(PROFILE, profileName)) {
|
|
198
|
+
// FAIL CLOSED on an unknown profile. Falling back to a default would let a typo — or a caller
|
|
199
|
+
// written against a future version — silently receive a weaker check than it named.
|
|
200
|
+
return {
|
|
201
|
+
v: BINDING_V,
|
|
202
|
+
authorized_and_committed: false,
|
|
203
|
+
requirements_satisfied: false,
|
|
204
|
+
profile: null,
|
|
205
|
+
proof_scope: null,
|
|
206
|
+
externally_witnessed: false,
|
|
207
|
+
state: STATE.UNAUTHORIZED,
|
|
208
|
+
authorities: {},
|
|
209
|
+
shortfalls: [`profile: unknown assurance profile "${profileName}"; known: ${PROFILE_NAMES.join(', ')}`],
|
|
210
|
+
does_not_prove: [],
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
const profile = profileName ? PROFILE[profileName] : null;
|
|
214
|
+
const required = new Set(profile
|
|
215
|
+
? profile.authorities
|
|
216
|
+
: (customRequired || [AUTHORITY.ISSUER_GRANT, AUTHORITY.EXECUTOR_ATTESTATION]));
|
|
125
217
|
const shortfalls = [];
|
|
126
218
|
const authorities = {};
|
|
127
219
|
const note = (name, ok, detail) => {
|
|
@@ -225,9 +317,31 @@ function verifiedExecutionBinding(o = {}) {
|
|
|
225
317
|
if (!er || !er.artifact) {
|
|
226
318
|
note(AUTHORITY.ONE_RUN_ROOT, false,
|
|
227
319
|
'no cr.evidence.root.v1 was supplied, so these bytes are not shown to be one run');
|
|
320
|
+
} else if (typeof verifyEvidenceRootBinding !== 'function') {
|
|
321
|
+
// ── A MISSING VERIFIER IS A REFUSAL, NEVER A CRASH ───────────────────────────────────
|
|
322
|
+
//
|
|
323
|
+
// MEASURED on a consumer: agent-guard vendors an OLDER `verify-evidence.js` that does not
|
|
324
|
+
// export `verifyEvidenceRootBinding` (true on its HEAD too), so this line threw a TypeError
|
|
325
|
+
// the moment anyone passed an `evidenceRoot`. Latent there — that guard holds no root — and
|
|
326
|
+
// the SHAPE is what matters: a crash is not an answer, and a caller cannot tell "the core
|
|
327
|
+
// blew up" from "the core is unavailable" from "the binding failed".
|
|
328
|
+
//
|
|
329
|
+
// Every OTHER dependency this file has is already used unconditionally, so this is the one
|
|
330
|
+
// place a mixed vendor pin can leave a hole. Refusing here is the fail-closed answer, and it
|
|
331
|
+
// names the cause rather than reporting a generic unbound root.
|
|
332
|
+
note(AUTHORITY.ONE_RUN_ROOT, false,
|
|
333
|
+
'the evidence-root verifier is not available in this build (the vendored verify-evidence.js '
|
|
334
|
+
+ 'does not export verifyEvidenceRootBinding) — the root was NOT checked, and an unchecked '
|
|
335
|
+
+ 'root is refused rather than reported as unbound');
|
|
228
336
|
} else {
|
|
229
|
-
|
|
230
|
-
|
|
337
|
+
let r;
|
|
338
|
+
try {
|
|
339
|
+
r = verifyEvidenceRootBinding(er.artifact, { executorKey: er.executorKey, sidecars: er.sidecars });
|
|
340
|
+
} catch (err) {
|
|
341
|
+
r = { ok: false, failures: [`the evidence-root verifier threw: ${(err && err.message) || 'error'}`] };
|
|
342
|
+
}
|
|
343
|
+
note(AUTHORITY.ONE_RUN_ROOT, r.ok === true,
|
|
344
|
+
r.ok ? 'bound' : ((r.failures && r.failures[0]) || 'unbound'));
|
|
231
345
|
}
|
|
232
346
|
|
|
233
347
|
// ── 4. THE PROVIDER WITNESS ────────────────────────────────────────────────────────────
|
|
@@ -273,11 +387,65 @@ function verifiedExecutionBinding(o = {}) {
|
|
|
273
387
|
// Left as-is deliberately: making a bare boolean insufficient would change the input shape of
|
|
274
388
|
// all five consumers at once, and that belongs with the closed-profile work (1465), not
|
|
275
389
|
// half-done in a round that would leave them broken. The gap is named, not narrowed in silence.
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
390
|
+
// ── THE DECISION RECEIPT, VERIFIED HERE WHEN IT CAN BE ─────────────────────────────────
|
|
391
|
+
//
|
|
392
|
+
// ── THE FOURTH CALLER-BOOLEAN THIS REPOSITORY HAS MET ──────────────────────────────────
|
|
393
|
+
//
|
|
394
|
+
// providerReadback: { signed: true } believed because it was set (closed)
|
|
395
|
+
// attestation: { present: true } believed because it was set (closed)
|
|
396
|
+
// call_hash present == "tool-call bound" (pre-empted)
|
|
397
|
+
// receipt: { verified: true } believed because it was set (this)
|
|
398
|
+
//
|
|
399
|
+
// `receipt.verified` is the CALLER's word. With no token and no keyring, nothing was checked and
|
|
400
|
+
// this function had no way to check it — and a caller that simply set the flag reached a
|
|
401
|
+
// satisfied verdict. `receipt_caller_asserted` recorded it, which is honest reporting and not a
|
|
402
|
+
// gate: a field nobody branches on does not stop anything.
|
|
403
|
+
//
|
|
404
|
+
// Now: when a token AND a key source are supplied, THIS function verifies the receipt. When they
|
|
405
|
+
// are not, the assertion is accepted only for a CUSTOM aggregation — where the caller owns its
|
|
406
|
+
// own question — and can never reach AUTHORIZED_AND_COMMITTED, which is the word every consumer
|
|
407
|
+
// reads as the answer.
|
|
408
|
+
const rc = o.receipt || {};
|
|
409
|
+
let receiptOk = false;
|
|
410
|
+
let receiptAsserted = false;
|
|
411
|
+
let receiptDetail = 'the decision receipt did not verify';
|
|
412
|
+
const keySource = rc.keyring || rc.publicKey;
|
|
413
|
+
if (typeof rc.token === 'string' && rc.token.length > 0 && keySource) {
|
|
414
|
+
let rv;
|
|
415
|
+
try {
|
|
416
|
+
rv = verifyReceipt(rc.token, {
|
|
417
|
+
ctx: { ...(rc.keyring ? { keyring: rc.keyring } : { publicKey: rc.publicKey }),
|
|
418
|
+
expectedKid: rc.expectedKid === undefined ? null : rc.expectedKid },
|
|
419
|
+
...(Number.isFinite(rc.now) ? { now: rc.now } : {}),
|
|
420
|
+
});
|
|
421
|
+
} catch (err) {
|
|
422
|
+
rv = { valid: false, status: 'VERIFIER_ERROR', reason: (err && err.message) || 'error' };
|
|
423
|
+
}
|
|
424
|
+
receiptOk = rv.valid === true;
|
|
425
|
+
if (!receiptOk) receiptDetail = `the decision receipt did not verify (${rv.status}: ${rv.reason})`;
|
|
426
|
+
} else if (rc.verified === true) {
|
|
427
|
+
// Accepted, and MARKED. The state machine below refuses to hand this the global name.
|
|
428
|
+
receiptOk = true;
|
|
429
|
+
receiptAsserted = true;
|
|
430
|
+
} else if (rc.token || keySource) {
|
|
431
|
+
receiptDetail = 'the receipt was supplied without '
|
|
432
|
+
+ `${rc.token ? 'a keyring or public key' : 'its token'}, so it could not be verified here`;
|
|
433
|
+
} else {
|
|
434
|
+
receiptDetail = 'no decision receipt was supplied';
|
|
435
|
+
}
|
|
436
|
+
if (!receiptOk) shortfalls.unshift(`receipt: ${receiptDetail}`);
|
|
437
|
+
if (receiptAsserted) {
|
|
438
|
+
shortfalls.push('decision_receipt: `verified` was taken on the caller\'s word — no token and '
|
|
439
|
+
+ 'no keyring were supplied, so nothing was checked here');
|
|
440
|
+
}
|
|
279
441
|
|
|
280
|
-
|
|
442
|
+
// THE NAME OF SUCCESS DEPENDS ON WHO CHOSE THE SET, not on how much of it passed. A custom
|
|
443
|
+
// aggregation that meets everything it asked for is satisfied — and says so in its own words.
|
|
444
|
+
// A CALLER-ASSERTED RECEIPT CAN NEVER BE THE GLOBAL CLAIM. It is not downgraded to a failure —
|
|
445
|
+
// a custom aggregation may legitimately own that determination — but the strongest word in the
|
|
446
|
+
// vocabulary is not available to a run whose receipt nobody verified.
|
|
447
|
+
let state = (profile && !receiptAsserted)
|
|
448
|
+
? STATE.AUTHORIZED_AND_COMMITTED : STATE.CUSTOM_REQUIREMENTS_SATISFIED;
|
|
281
449
|
if (!receiptOk || (required.has(AUTHORITY.ISSUER_GRANT) && !grantOk)) state = STATE.UNAUTHORIZED;
|
|
282
450
|
else if (required.has(AUTHORITY.EXECUTOR_ATTESTATION) && !attOk) state = STATE.COMMIT_UNPROVEN;
|
|
283
451
|
else if (required.has(AUTHORITY.ONE_RUN_ROOT) && !authorities[AUTHORITY.ONE_RUN_ROOT].ok) {
|
|
@@ -285,11 +453,31 @@ function verifiedExecutionBinding(o = {}) {
|
|
|
285
453
|
} else if (required.has(AUTHORITY.PROVIDER_WITNESS) && !authorities[AUTHORITY.PROVIDER_WITNESS].ok) {
|
|
286
454
|
state = STATE.RECORDED_UNWITNESSED;
|
|
287
455
|
} else if (!committed) state = STATE.NOT_COMMITTED;
|
|
456
|
+
// The default set (no profile, no custom list) is the historical grant+attestation pair. It is
|
|
457
|
+
// an implicit choice by the caller, not a profile, so it lands in the custom lane too.
|
|
458
|
+
|
|
288
459
|
|
|
289
460
|
return {
|
|
290
461
|
v: BINDING_V,
|
|
291
462
|
authorized_and_committed: state === STATE.AUTHORIZED_AND_COMMITTED,
|
|
463
|
+
/**
|
|
464
|
+
* Did the set THIS CALLER ASKED FOR pass? True for a satisfied profile and for a satisfied
|
|
465
|
+
* custom aggregation alike.
|
|
466
|
+
*
|
|
467
|
+
* Separated from `authorized_and_committed` on purpose. A caller that only wants to know
|
|
468
|
+
* whether its own question was answered should not have to string-compare a state name, and
|
|
469
|
+
* — more importantly — should not be tempted to read the global claim because it was the only
|
|
470
|
+
* boolean available. That temptation is how `required: ['issuer_grant']` came to mean
|
|
471
|
+
* "authorized and committed" in the first place.
|
|
472
|
+
*/
|
|
473
|
+
requirements_satisfied: state === STATE.AUTHORIZED_AND_COMMITTED
|
|
474
|
+
|| state === STATE.CUSTOM_REQUIREMENTS_SATISFIED,
|
|
292
475
|
state,
|
|
476
|
+
/** Which closed profile answered this, or null when the caller aggregated its own set. */
|
|
477
|
+
profile: profile ? profile.name : null,
|
|
478
|
+
/** Stated on every result so a reader never has to infer it from the state name. */
|
|
479
|
+
proof_scope: profile ? profile.proof_scope : null,
|
|
480
|
+
externally_witnessed: profile ? profile.externally_witnessed : false,
|
|
293
481
|
authorities,
|
|
294
482
|
shortfalls,
|
|
295
483
|
/** True when `receipt.verified` was taken on the caller's word rather than established here. */
|
|
@@ -313,4 +501,7 @@ function verifiedExecutionBinding(o = {}) {
|
|
|
313
501
|
};
|
|
314
502
|
}
|
|
315
503
|
|
|
316
|
-
module.exports = {
|
|
504
|
+
module.exports = {
|
|
505
|
+
verifiedExecutionBinding, STATE, AUTHORITY, PROFILE, PROFILE_NAMES, BINDING_V,
|
|
506
|
+
grantClaims, attestationClaims,
|
|
507
|
+
};
|