88 "fmt"
99
1010 "github.com/0xsequence/nsm/request"
11+ "github.com/0xsequence/tee-verifier/nitro"
1112)
1213
1314// Enclave communicates with the Nitro Security Module to acquire an Attestation.
@@ -73,11 +74,18 @@ func (e *Enclave) GetAttestation(ctx context.Context, nonce []byte, userData []b
7374 return nil , fmt .Errorf ("attestation document is empty" )
7475 }
7576
77+ parsed , err := nitro .Parse (res .Attestation .Document )
78+ if err != nil {
79+ _ = sess .Close ()
80+ return nil , fmt .Errorf ("parse attestation document: %w" , err )
81+ }
82+
7683 att := & Attestation {
77- ReadCloser : sess ,
78- document : res .Attestation .Document ,
79- kms : e .kms ,
80- key : e .privKey ,
84+ SignedAttestation : parsed ,
85+ ReadCloser : sess ,
86+ document : res .Attestation .Document ,
87+ kms : e .kms ,
88+ key : e .privKey ,
8189 }
8290 return att , nil
8391}
@@ -96,10 +104,10 @@ func (e *Enclave) GetMeasurements(ctx context.Context, indices []uint16) (Measur
96104
97105 measurements := make (Measurements )
98106 for _ , index := range indices {
99- res , err := sess .Send (ctx , & request.DescribePCR {Index : index })
100- if err != nil {
101- return nil , fmt .Errorf ("NSM DescribePCR call: %w" , err )
102- }
107+ res , err := sess .Send (ctx , & request.DescribePCR {Index : index })
108+ if err != nil {
109+ return nil , fmt .Errorf ("NSM DescribePCR call: %w" , err )
110+ }
103111 measurements [index ] = hex .EncodeToString (res .DescribePCR .Data )
104112 }
105113
0 commit comments