Skip to content

Commit 445a392

Browse files
committed
Change uuid dependency to Google's
Significant change is uuid.UUID is now a sized array instead of a slice and uuid.Parse has become uuid.MustParse in most places. Signed-off-by: Dionna Glaze <[email protected]>
1 parent 05c9303 commit 445a392

File tree

7 files changed

+47
-55
lines changed

7 files changed

+47
-55
lines changed

abi/abi.go

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424

2525
pb "github.com/google/go-sev-guest/proto/sevsnp"
2626
"github.com/google/logger"
27-
"github.com/pborman/uuid"
27+
"github.com/google/uuid"
2828
"golang.org/x/crypto/cryptobyte"
2929
"golang.org/x/crypto/cryptobyte/asn1"
3030
"google.golang.org/protobuf/types/known/wrapperspb"
@@ -710,7 +710,7 @@ func (h *CertTableHeaderEntry) Unmarshal(data []byte) error {
710710
if len(data) < CertTableEntrySize {
711711
return fmt.Errorf("data too small: %v, want %v", len(data), CertTableEntrySize)
712712
}
713-
h.GUID = clone(data[0:GUIDSize])
713+
copy(h.GUID[:], data[0:GUIDSize])
714714
uint32Size := 4
715715
h.Offset = binary.LittleEndian.Uint32(data[GUIDSize : GUIDSize+uint32Size])
716716
h.Length = binary.LittleEndian.Uint32(data[GUIDSize+uint32Size : CertTableEntrySize])
@@ -774,8 +774,7 @@ func (c *CertTable) Unmarshal(certs []byte) error {
774774
}
775775
for i, entry := range certTableHeader {
776776
var next CertTableEntry
777-
next.GUID = make([]byte, GUIDSize)
778-
copy(next.GUID, entry.GUID)
777+
copy(next.GUID[:], entry.GUID[:])
779778
if entry.Offset+entry.Length > uint32(len(certs)) {
780779
return fmt.Errorf("cert table entry %d specifies a byte range outside the certificate data block (size %d): offset=%d, length%d", i, len(certs), entry.Offset, entry.Length)
781780
}
@@ -789,12 +788,12 @@ func (c *CertTable) Unmarshal(certs []byte) error {
789788
// GetByGUIDString returns the raw bytes for a certificate that matches a key identified by the
790789
// given GUID string.
791790
func (c *CertTable) GetByGUIDString(guid string) ([]byte, error) {
792-
g := uuid.Parse(guid)
793-
if g == nil {
794-
return nil, fmt.Errorf("GUID string format is XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX, got %s", guid)
791+
g, err := uuid.Parse(guid)
792+
if err != nil {
793+
return nil, err
795794
}
796795
for _, entry := range c.Entries {
797-
if uuid.Equal(entry.GUID, g) {
796+
if entry.GUID == g {
798797
return entry.RawCert, nil
799798
}
800799
}
@@ -806,23 +805,23 @@ func CertsFromProto(chain *pb.CertificateChain) *CertTable {
806805
c := &CertTable{}
807806
if len(chain.GetArkCert()) != 0 {
808807
c.Entries = append(c.Entries,
809-
CertTableEntry{GUID: uuid.Parse(ArkGUID), RawCert: chain.GetArkCert()})
808+
CertTableEntry{GUID: uuid.MustParse(ArkGUID), RawCert: chain.GetArkCert()})
810809
}
811810
if len(chain.GetAskCert()) != 0 {
812811
c.Entries = append(c.Entries,
813-
CertTableEntry{GUID: uuid.Parse(AskGUID), RawCert: chain.GetAskCert()})
812+
CertTableEntry{GUID: uuid.MustParse(AskGUID), RawCert: chain.GetAskCert()})
814813
}
815814
if len(chain.GetVcekCert()) != 0 {
816815
c.Entries = append(c.Entries,
817-
CertTableEntry{GUID: uuid.Parse(VcekGUID), RawCert: chain.GetVcekCert()})
816+
CertTableEntry{GUID: uuid.MustParse(VcekGUID), RawCert: chain.GetVcekCert()})
818817
}
819818
if len(chain.GetVlekCert()) != 0 {
820819
c.Entries = append(c.Entries,
821-
CertTableEntry{GUID: uuid.Parse(VlekGUID), RawCert: chain.GetVlekCert()})
820+
CertTableEntry{GUID: uuid.MustParse(VlekGUID), RawCert: chain.GetVlekCert()})
822821
}
823822
for guid, cert := range chain.GetExtras() {
824823
c.Entries = append(c.Entries,
825-
CertTableEntry{GUID: uuid.Parse(guid), RawCert: cert})
824+
CertTableEntry{GUID: uuid.MustParse(guid), RawCert: cert})
826825
}
827826
return c
828827
}
@@ -854,20 +853,20 @@ func (c *CertTable) Marshal() []byte {
854853
// so missing certificates aren't an error. If certificates are missing, you can
855854
// choose to fetch them yourself by calling verify.GetAttestationFromReport.
856855
func (c *CertTable) Proto() *pb.CertificateChain {
857-
vcekGUID := uuid.Parse(VcekGUID)
858-
vlekGUID := uuid.Parse(VlekGUID)
859-
askGUID := uuid.Parse(AskGUID)
860-
arkGUID := uuid.Parse(ArkGUID)
856+
vcekGUID := uuid.MustParse(VcekGUID)
857+
vlekGUID := uuid.MustParse(VlekGUID)
858+
askGUID := uuid.MustParse(AskGUID)
859+
arkGUID := uuid.MustParse(ArkGUID)
861860
result := &pb.CertificateChain{Extras: make(map[string][]byte)}
862861
for _, entry := range c.Entries {
863862
switch {
864-
case uuid.Equal(entry.GUID, vcekGUID):
863+
case entry.GUID == vcekGUID:
865864
result.VcekCert = entry.RawCert
866-
case uuid.Equal(entry.GUID, vlekGUID):
865+
case entry.GUID == vlekGUID:
867866
result.VlekCert = entry.RawCert
868-
case uuid.Equal(entry.GUID, askGUID):
867+
case entry.GUID == askGUID:
869868
result.AskCert = entry.RawCert
870-
case uuid.Equal(entry.GUID, arkGUID):
869+
case entry.GUID == arkGUID:
871870
result.ArkCert = entry.RawCert
872871
default:
873872
result.Extras[entry.GUID.String()] = entry.RawCert
@@ -1026,7 +1025,7 @@ func ExtendPlatformCertTable(data []byte, info *ExtraPlatformInfo) ([]byte, erro
10261025
return nil, fmt.Errorf("could not marshal ExtraPlatformInfo: %v", err)
10271026
}
10281027
certs.Entries = append(certs.Entries, CertTableEntry{
1029-
GUID: uuid.Parse(ExtraPlatformInfoGUID),
1028+
GUID: uuid.MustParse(ExtraPlatformInfoGUID),
10301029
RawCert: extra,
10311030
})
10321031
return certs.Marshal(), nil

abi/abi_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323

2424
"github.com/google/go-cmp/cmp"
2525
spb "github.com/google/go-sev-guest/proto/sevsnp"
26-
"github.com/pborman/uuid"
26+
"github.com/google/uuid"
2727
"google.golang.org/protobuf/encoding/prototext"
2828
"google.golang.org/protobuf/testing/protocmp"
2929
"google.golang.org/protobuf/types/known/wrapperspb"
@@ -237,23 +237,23 @@ func testRawCertTable(t testing.TB) *testCertTable {
237237
vcekraw := []byte("vcek")
238238
vlekraw := []byte("vlek")
239239
extraraw := []byte("extra")
240-
headers[0].GUID = uuid.Parse(ArkGUID)
240+
headers[0].GUID = uuid.MustParse(ArkGUID)
241241
headers[0].Offset = uint32(len(headers) * CertTableEntrySize)
242242
headers[0].Length = uint32(len(arkraw))
243243

244-
headers[1].GUID = uuid.Parse(AskGUID)
244+
headers[1].GUID = uuid.MustParse(AskGUID)
245245
headers[1].Offset = headers[0].Offset + headers[0].Length
246246
headers[1].Length = uint32(len(askraw))
247247

248-
headers[2].GUID = uuid.Parse(VcekGUID)
248+
headers[2].GUID = uuid.MustParse(VcekGUID)
249249
headers[2].Offset = headers[1].Offset + headers[1].Length
250250
headers[2].Length = uint32(len(vcekraw))
251251

252-
headers[3].GUID = uuid.Parse(VlekGUID)
252+
headers[3].GUID = uuid.MustParse(VlekGUID)
253253
headers[3].Offset = headers[2].Offset + headers[2].Length
254254
headers[3].Length = uint32(len(vlekraw))
255255

256-
headers[4].GUID = uuid.Parse(extraGUID)
256+
headers[4].GUID = uuid.MustParse(extraGUID)
257257
headers[4].Offset = headers[3].Offset + headers[3].Length
258258
headers[4].Length = uint32(len(extraraw))
259259

@@ -275,7 +275,7 @@ func testRawCertTableNoVcek(t testing.TB) *testCertTable {
275275
headers := make([]CertTableHeaderEntry, 2) // extra, NULL
276276
extraraw := []byte("extra")
277277

278-
headers[0].GUID = uuid.Parse(extraGUID)
278+
headers[0].GUID = uuid.MustParse(extraGUID)
279279
headers[0].Offset = uint32(len(headers) * CertTableEntrySize)
280280
headers[0].Length = uint32(len(extraraw))
281281
result := &testCertTable{

go.mod

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,12 @@ require (
77
github.com/google/go-cmp v0.5.7
88
github.com/google/go-configfs-tsm v0.2.2
99
github.com/google/logger v1.1.1
10-
github.com/pborman/uuid v1.2.1
10+
github.com/google/uuid v1.6.0
1111
github.com/pkg/errors v0.9.1
1212
go.uber.org/multierr v1.11.0
1313
golang.org/x/crypto v0.17.0
1414
golang.org/x/sys v0.15.0
1515
google.golang.org/protobuf v1.33.0
1616
)
1717

18-
require (
19-
github.com/google/uuid v1.3.1 // indirect
20-
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect
21-
)
18+
require golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect

go.sum

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,8 @@ github.com/google/go-configfs-tsm v0.2.2 h1:YnJ9rXIOj5BYD7/0DNnzs8AOp7UcvjfTvt21
99
github.com/google/go-configfs-tsm v0.2.2/go.mod h1:EL1GTDFMb5PZQWDviGfZV9n87WeGTR/JUg13RfwkgRo=
1010
github.com/google/logger v1.1.1 h1:+6Z2geNxc9G+4D4oDO9njjjn2d0wN5d7uOo0vOIW1NQ=
1111
github.com/google/logger v1.1.1/go.mod h1:BkeJZ+1FhQ+/d087r4dzojEg1u2ZX+ZqG1jTUrLM+zQ=
12-
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
13-
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
14-
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
15-
github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw=
16-
github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
12+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
13+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
1714
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
1815
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
1916
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=

testing/fake_certs.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import (
3636
"github.com/google/go-sev-guest/abi"
3737
"github.com/google/go-sev-guest/kds"
3838
spb "github.com/google/go-sev-guest/proto/sevsnp"
39-
"github.com/pborman/uuid"
39+
"github.com/google/uuid"
4040
)
4141

4242
// KDS specification:
@@ -569,23 +569,23 @@ func (s *AmdSigner) CertTableBytes() ([]byte, error) {
569569
const baseEntries = 6 // ARK, ASK, VCEK, VLEK, ASVK, NULL
570570
entries := baseEntries + len(s.Extras)
571571
headers := make([]abi.CertTableHeaderEntry, entries)
572-
headers[0].GUID = uuid.Parse(abi.ArkGUID)
572+
headers[0].GUID = uuid.MustParse(abi.ArkGUID)
573573
headers[0].Offset = uint32(len(headers) * abi.CertTableEntrySize)
574574
headers[0].Length = uint32(len(s.Ark.Raw))
575575

576-
headers[1].GUID = uuid.Parse(abi.AskGUID)
576+
headers[1].GUID = uuid.MustParse(abi.AskGUID)
577577
headers[1].Offset = headers[0].Offset + headers[0].Length
578578
headers[1].Length = uint32(len(s.Ask.Raw))
579579

580-
headers[2].GUID = uuid.Parse(abi.VcekGUID)
580+
headers[2].GUID = uuid.MustParse(abi.VcekGUID)
581581
headers[2].Offset = headers[1].Offset + headers[1].Length
582582
headers[2].Length = uint32(len(s.Vcek.Raw))
583583

584-
headers[3].GUID = uuid.Parse(abi.VlekGUID)
584+
headers[3].GUID = uuid.MustParse(abi.VlekGUID)
585585
headers[3].Offset = headers[2].Offset + headers[2].Length
586586
headers[3].Length = uint32(len(s.Vlek.Raw))
587587

588-
headers[4].GUID = uuid.Parse(abi.AsvkGUID)
588+
headers[4].GUID = uuid.MustParse(abi.AsvkGUID)
589589
headers[4].Offset = headers[3].Offset + headers[3].Length
590590
headers[4].Length = uint32(len(s.Asvk.Raw))
591591

@@ -594,7 +594,7 @@ func (s *AmdSigner) CertTableBytes() ([]byte, error) {
594594
for guid, data := range s.Extras {
595595
prior := index
596596
index++
597-
headers[index].GUID = uuid.Parse(guid)
597+
headers[index].GUID = uuid.MustParse(guid)
598598
headers[index].Offset = headers[prior].Offset + headers[prior].Length
599599
headers[index].Length = uint32(len(data))
600600
blobs = append(blobs, data)

testing/fake_certs_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222

2323
"github.com/google/go-sev-guest/abi"
2424
"github.com/google/go-sev-guest/kds"
25-
"github.com/pborman/uuid"
25+
"github.com/google/uuid"
2626
)
2727

2828
func TestCertificatesParse(t *testing.T) {
@@ -47,19 +47,19 @@ func TestCertificatesParse(t *testing.T) {
4747
t.Errorf("ParseSnpCertTableHeader(_) returned %d entries, want 5", len(entries))
4848
}
4949
for _, entry := range entries {
50-
if uuid.Equal(entry.GUID, uuid.Parse(abi.VlekGUID)) {
50+
if entry.GUID == uuid.MustParse(abi.VlekGUID) {
5151
hasVlek = true
5252
}
53-
if uuid.Equal(entry.GUID, uuid.Parse(abi.VcekGUID)) {
53+
if entry.GUID == uuid.MustParse(abi.VcekGUID) {
5454
hasVcek = true
5555
}
56-
if uuid.Equal(entry.GUID, uuid.Parse(abi.AskGUID)) {
56+
if entry.GUID == uuid.MustParse(abi.AskGUID) {
5757
hasAsk = true
5858
}
59-
if uuid.Equal(entry.GUID, uuid.Parse(abi.AsvkGUID)) {
59+
if entry.GUID == uuid.MustParse(abi.AsvkGUID) {
6060
hasAsvk = true
6161
}
62-
if uuid.Equal(entry.GUID, uuid.Parse(abi.ArkGUID)) {
62+
if entry.GUID == uuid.MustParse(abi.ArkGUID) {
6363
hasArk = true
6464
}
6565
der := certBytes[entry.Offset : entry.Offset+entry.Length]
@@ -108,7 +108,7 @@ func TestCertificatesExtras(t *testing.T) {
108108
t.Errorf("ParseSnpCertTableHeader(_) returned %d entries, want 6", len(entries))
109109
}
110110
for _, entry := range entries {
111-
if uuid.Equal(entry.GUID, uuid.Parse(abi.ExtraPlatformInfoGUID)) {
111+
if entry.GUID == uuid.MustParse(abi.ExtraPlatformInfoGUID) {
112112
hasXtra = true
113113
got := certBytes[entry.Offset : entry.Offset+entry.Length]
114114
want := []byte("test")

verify/verify.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import (
3030
spb "github.com/google/go-sev-guest/proto/sevsnp"
3131
"github.com/google/go-sev-guest/verify/trust"
3232
"github.com/google/logger"
33-
"github.com/pborman/uuid"
3433
"github.com/pkg/errors"
3534
"go.uber.org/multierr"
3635
)
@@ -54,7 +53,7 @@ var (
5453
)
5554

5655
func askVerifiedBy(signee, signer *abi.AskCert, signeeName, signerName string) error {
57-
if !uuid.Equal(signee.CertifyingID[:], signer.KeyID[:]) {
56+
if signee.CertifyingID != signer.KeyID {
5857
return fmt.Errorf("%s's certifying ID (%s) is not %s's key ID (%s) ",
5958
signeeName, signerName, signee.CertifyingID.String(), signer.KeyID.String())
6059
}

0 commit comments

Comments
 (0)