@microsoft/ccf-app 5.0.0-dev1 → 5.0.0-dev2

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/global.d.ts CHANGED
@@ -608,3 +608,67 @@ export interface OpenEnclave {
608
608
  */
609
609
  verifyOpenEnclaveEvidence(format: string | undefined, evidence: ArrayBuffer, endorsements?: ArrayBuffer): EvidenceClaims;
610
610
  }
611
+ export interface TcbVersion {
612
+ boot_loader: number;
613
+ tee: number;
614
+ snp: number;
615
+ microcode: number;
616
+ }
617
+ export interface SnpAttestationResult {
618
+ attestation: {
619
+ version: number;
620
+ guest_svn: number;
621
+ policy: {
622
+ abi_minor: number;
623
+ abi_major: number;
624
+ smt: number;
625
+ migrate_ma: number;
626
+ debug: number;
627
+ single_socket: number;
628
+ };
629
+ family_id: ArrayBuffer;
630
+ image_id: ArrayBuffer;
631
+ vmpl: number;
632
+ signature_algo: number;
633
+ platform_version: TcbVersion;
634
+ platform_info: {
635
+ smt_en: number;
636
+ tsme_en: number;
637
+ };
638
+ flags: {
639
+ author_key_en: number;
640
+ mask_chip_key: number;
641
+ signing_key: number;
642
+ };
643
+ report_data: ArrayBuffer;
644
+ measurement: ArrayBuffer;
645
+ host_data: ArrayBuffer;
646
+ id_key_digest: ArrayBuffer;
647
+ author_key_digest: ArrayBuffer;
648
+ report_id: ArrayBuffer;
649
+ report_id_ma: ArrayBuffer;
650
+ reported_tcb: TcbVersion;
651
+ chip_id: ArrayBuffer;
652
+ committed_tcb: TcbVersion;
653
+ current_minor: number;
654
+ current_build: number;
655
+ current_major: number;
656
+ committed_build: number;
657
+ committed_minor: number;
658
+ committed_major: number;
659
+ launch_tcb: TcbVersion;
660
+ signature: {
661
+ r: ArrayBuffer;
662
+ s: ArrayBuffer;
663
+ };
664
+ };
665
+ uvm_endorsements?: {
666
+ did: string;
667
+ feed: string;
668
+ svn: string;
669
+ };
670
+ }
671
+ export declare const snp_attestation: SnpAttestation;
672
+ export interface SnpAttestation {
673
+ verifySnpAttestation(evidence: ArrayBuffer, endorsements: ArrayBuffer, uvm_endorsements?: ArrayBuffer, endorsed_tcb?: string): SnpAttestationResult;
674
+ }
package/global.js CHANGED
@@ -21,3 +21,5 @@
21
21
  // This avoids polluting the global namespace.
22
22
  export const ccf = globalThis.ccf;
23
23
  export const openenclave = globalThis.openenclave;
24
+ export const snp_attestation = globalThis
25
+ .snp_attestation;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/ccf-app",
3
- "version": "5.0.0-dev1",
3
+ "version": "5.0.0-dev2",
4
4
  "description": "CCF app support package",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -28,7 +28,8 @@
28
28
  "mocha": "^10.0.0",
29
29
  "node-forge": "^1.2.0",
30
30
  "ts-node": "^10.4.0",
31
- "typedoc": "^0.24.1",
32
- "typescript": "^5.0.2"
31
+ "typedoc": "^0.25.0",
32
+ "typescript": "^5.0.2",
33
+ "get-func-name": "2.0.0"
33
34
  }
34
35
  }
package/polyfill.js CHANGED
@@ -479,6 +479,12 @@ class OpenEnclavePolyfill {
479
479
  }
480
480
  }
481
481
  globalThis.openenclave = new OpenEnclavePolyfill();
482
+ class SnpAttestationPolyfill {
483
+ verifySnpAttestation(evidence, endorsements, uvm_endorsements, endorsed_tcb) {
484
+ throw new Error("Method not implemented.");
485
+ }
486
+ }
487
+ globalThis.snp_attestation = new SnpAttestationPolyfill();
482
488
  function nodeBufToArrBuf(buf) {
483
489
  // Note: buf.buffer is not safe, see docs.
484
490
  const arrBuf = new ArrayBuffer(buf.byteLength);
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @inheritDoc global!SnpAttestation.verifySnpAttestation
3
+ */
4
+ export declare const verifySnpAttestation: (evidence: ArrayBuffer, endorsements: ArrayBuffer, uvm_endorsements?: ArrayBuffer | undefined, endorsed_tcb?: string | undefined) => import("./global").SnpAttestationResult;
@@ -0,0 +1,12 @@
1
+ // Copyright (c) Microsoft Corporation. All rights reserved.
2
+ // Licensed under the Apache 2.0 License.
3
+ /**
4
+ * The `snp_attestation` module provides SNP Attestation Validation.
5
+ *
6
+ * @module
7
+ */
8
+ import { snp_attestation } from "./global";
9
+ /**
10
+ * @inheritDoc global!SnpAttestation.verifySnpAttestation
11
+ */
12
+ export const verifySnpAttestation = snp_attestation.verifySnpAttestation;