Skip to content

Commit 299fd3a

Browse files
authored
Merge pull request #59 from Ruoyu-y/update_api
golang: update api
2 parents 862206e + 6478a55 commit 299fd3a

File tree

7 files changed

+24
-25
lines changed

7 files changed

+24
-25
lines changed

src/golang/cctrusted_vm/cmd/app/imr.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ var imrCmd = &cobra.Command{
1717
if err != nil {
1818
return err
1919
}
20-
report, err := sdk.GetCCReport("", "", nil)
20+
report, err := sdk.GetCCReport(nil, nil, nil)
2121
if err != nil {
2222
return err
2323
}

src/golang/cctrusted_vm/cmd/app/report.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package app
22

33
import (
4-
"encoding/base64"
54
"encoding/binary"
65
"math"
76
"math/rand"
@@ -31,14 +30,14 @@ var reportCmd = &cobra.Command{
3130
},
3231
}
3332

34-
func makeNonce() string {
33+
func makeNonce() []byte {
3534
num := uint64(rand.Int63n(math.MaxInt64))
3635
b := make([]byte, 8)
3736
binary.LittleEndian.PutUint64(b, num)
38-
return base64.StdEncoding.EncodeToString(b)
37+
return b
3938
}
4039

41-
func makeUserData() string {
40+
func makeUserData() []byte {
4241
b := []byte("demo user data")
43-
return base64.StdEncoding.EncodeToString(b)
42+
return b
4443
}

src/golang/cctrusted_vm/cvm.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const (
1717

1818
type Device interface {
1919
ProbeDevice() error
20-
Report(nonce, userData string, extraArgs map[string]any) (evidence_api.CcReport, error)
20+
Report(nonce, userData []byte, extraArgs map[string]any) (evidence_api.CcReport, error)
2121
Name() string
2222
CCType() evidence_api.CC_Type
2323
Version() evidence_api.DeviceVersion
@@ -27,7 +27,7 @@ type GenericDevice struct {
2727
Device
2828
}
2929

30-
func (d *GenericDevice) Report(nonce, userData string, extraArgs map[string]any) (evidence_api.CcReport, error) {
30+
func (d *GenericDevice) Report(nonce, userData []byte, extraArgs map[string]any) (evidence_api.CcReport, error) {
3131
var err error
3232
if _, err = os.Stat(TSM_PREFIX); os.IsNotExist(err) {
3333
return evidence_api.CcReport{}, errors.New("Configfs TSM is not supported in the current environment.")
@@ -36,18 +36,18 @@ func (d *GenericDevice) Report(nonce, userData string, extraArgs map[string]any)
3636
// concatenate nonce and userData
3737
// check if the data is base64 encoded, if yes, decode before doing hash
3838
hasher := sha512.New()
39-
if nonce != "" {
40-
val, err := base64.StdEncoding.DecodeString(nonce)
39+
if nonce != nil {
40+
val, err := base64.StdEncoding.DecodeString(string(nonce))
4141
if err != nil {
42-
hasher.Write([]byte(nonce))
42+
hasher.Write(nonce)
4343
} else {
4444
hasher.Write(val)
4545
}
4646
}
47-
if userData != "" {
48-
val, err := base64.StdEncoding.DecodeString(userData)
47+
if userData != nil {
48+
val, err := base64.StdEncoding.DecodeString(string(userData))
4949
if err != nil {
50-
hasher.Write([]byte(userData))
50+
hasher.Write(userData)
5151
} else {
5252
hasher.Write(val)
5353
}

src/golang/cctrusted_vm/sdk/sdk.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func (s *SDK) DumpCCReport(reportBytes []byte) error {
3737
// GetCCMeasurement implements evidence_api.EvidenceAPI.
3838
func (s *SDK) GetCCMeasurement(index int, alg evidence_api.TCG_ALG) (evidence_api.TcgDigest, error) {
3939
emptyRet := evidence_api.TcgDigest{}
40-
report, err := s.GetCCReport("", "", nil)
40+
report, err := s.GetCCReport(nil, nil, nil)
4141
if err != nil {
4242
return emptyRet, err
4343
}
@@ -121,7 +121,7 @@ func (s *SDK) internelEventlog() (*evidence_api.EventLogger, error) {
121121
}
122122

123123
// Report implements EvidenceAPI.
124-
func (s *SDK) GetCCReport(nonce, userData string, extraArgs map[string]any) (evidence_api.Report, error) {
124+
func (s *SDK) GetCCReport(nonce, userData []byte, extraArgs map[string]any) (evidence_api.Report, error) {
125125
if s.cvm == nil {
126126
return nil, errors.New("no available cvm in sdk")
127127
}

src/golang/cctrusted_vm/tdx/device.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func (t *TDXDevice) initDevice() error {
6262
}
6363

6464
// Report implements cctrusted_vm.Device, get CC report
65-
func (t *TDXDevice) Report(nonce, userData string, extraArgs map[string]any) (evidence_api.CcReport, error) {
65+
func (t *TDXDevice) Report(nonce, userData []byte, extraArgs map[string]any) (evidence_api.CcReport, error) {
6666
var resp evidence_api.CcReport
6767
var err error
6868

src/golang/cctrusted_vm/tdx/device_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ func TestReport15(t *testing.T) {
2222
fmt.Println(res)
2323
assert.Equal(t, true, res)
2424

25-
nonce := "IXUKoBO1UM3c1wopN4sY"
26-
userData := "MTIzNDU2NzgxMjM0NTY3ODEyMzQ1Njc4MTIzNDU2NzgxMjM0NTY3ODEyMzQ1Njc4"
25+
nonce := []byte{"IXUKoBO1UM3c1wopN4sY"}
26+
userData := []byte{"MTIzNDU2NzgxMjM0NTY3ODEyMzQ1Njc4MTIzNDU2NzgxMjM0NTY3ODEyMzQ1Njc4"}
2727
tdreport, err := device.TdReport(nonce, userData)
2828
assert.Nil(t, err)
2929
t.Log(tdreport)

src/golang/cctrusted_vm/tdx/quote_handler.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ type QuoteHandler interface {
2121
Quote([tdx.TD_REPORT_LEN]byte) ([]byte, error)
2222
// TdReport gets the td report of the td vm, where nonce ad userData
2323
// are encoded in base64
24-
TdReport(nonce, userData string) ([tdx.TD_REPORT_LEN]byte, error)
24+
TdReport(nonce, userData []byte) ([tdx.TD_REPORT_LEN]byte, error)
2525
}
2626

2727
var _ QuoteHandler = (*QuoteHandler15)(nil)
@@ -34,7 +34,7 @@ type QuoteHandler15 struct {
3434
}
3535

3636
// TdReport implements QuoteHandler.
37-
func (q *QuoteHandler15) TdReport(nonce, userData string) ([tdx.TD_REPORT_LEN]byte, error) {
37+
func (q *QuoteHandler15) TdReport(nonce, userData []byte) ([tdx.TD_REPORT_LEN]byte, error) {
3838
tdreport := [tdx.TD_REPORT_LEN]uint8{}
3939
var err error
4040
var file *os.File
@@ -55,18 +55,18 @@ func (q *QuoteHandler15) TdReport(nonce, userData string) ([tdx.TD_REPORT_LEN]by
5555
// check if the data is base64 encoded, if yes, decode before doing hash
5656
hasher := sha512.New()
5757
if len(nonce) > 0 {
58-
nonceDecoded, err := base64.StdEncoding.DecodeString(nonce)
58+
nonceDecoded, err := base64.StdEncoding.DecodeString(string(nonce))
5959
if err != nil {
60-
hasher.Write([]byte(nonce))
60+
hasher.Write(nonce)
6161
} else {
6262
hasher.Write(nonceDecoded)
6363
}
6464
}
6565

6666
if len(userData) > 0 {
67-
userDataDecoded, err := base64.StdEncoding.DecodeString(userData)
67+
userDataDecoded, err := base64.StdEncoding.DecodeString(string(userData))
6868
if err != nil {
69-
hasher.Write([]byte(userData))
69+
hasher.Write(userData)
7070
} else {
7171
hasher.Write(userDataDecoded)
7272
}

0 commit comments

Comments
 (0)