sevsnp

package
v0.4.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 13, 2023 License: Apache-2.0 Imports: 4 Imported by: 20

Documentation

Overview

Package sevsnp implements a protocol buffer for representing SEV-SNP attestations.

Index

Constants

This section is empty.

Variables

View Source
var File_sevsnp_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type Attestation

type Attestation struct {
	Report           *Report           `protobuf:"bytes,1,opt,name=report,proto3" json:"report,omitempty"`
	CertificateChain *CertificateChain `protobuf:"bytes,2,opt,name=certificate_chain,json=certificateChain,proto3" json:"certificate_chain,omitempty"`
	// contains filtered or unexported fields
}

func (*Attestation) Descriptor deprecated

func (*Attestation) Descriptor() ([]byte, []int)

Deprecated: Use Attestation.ProtoReflect.Descriptor instead.

func (*Attestation) GetCertificateChain

func (x *Attestation) GetCertificateChain() *CertificateChain

func (*Attestation) GetReport

func (x *Attestation) GetReport() *Report

func (*Attestation) ProtoMessage

func (*Attestation) ProtoMessage()

func (*Attestation) ProtoReflect

func (x *Attestation) ProtoReflect() protoreflect.Message

func (*Attestation) Reset

func (x *Attestation) Reset()

func (*Attestation) String

func (x *Attestation) String() string

type CertificateChain

type CertificateChain struct {

	// The versioned chip endorsement key's certificate for the individual chip
	// that signed this report.
	VcekCert []byte `protobuf:"bytes,1,opt,name=vcek_cert,json=vcekCert,proto3" json:"vcek_cert,omitempty"`
	// The AMD SEV Signing key's certificate (signs the VCEK cert).
	AskCert []byte `protobuf:"bytes,2,opt,name=ask_cert,json=askCert,proto3" json:"ask_cert,omitempty"`
	// The AMD Root key certificate (signs the ASK cert).
	ArkCert []byte `protobuf:"bytes,3,opt,name=ark_cert,json=arkCert,proto3" json:"ark_cert,omitempty"`
	// contains filtered or unexported fields
}

func (*CertificateChain) Descriptor deprecated

func (*CertificateChain) Descriptor() ([]byte, []int)

Deprecated: Use CertificateChain.ProtoReflect.Descriptor instead.

func (*CertificateChain) GetArkCert

func (x *CertificateChain) GetArkCert() []byte

func (*CertificateChain) GetAskCert

func (x *CertificateChain) GetAskCert() []byte

func (*CertificateChain) GetVcekCert

func (x *CertificateChain) GetVcekCert() []byte

func (*CertificateChain) ProtoMessage

func (*CertificateChain) ProtoMessage()

func (*CertificateChain) ProtoReflect

func (x *CertificateChain) ProtoReflect() protoreflect.Message

func (*CertificateChain) Reset

func (x *CertificateChain) Reset()

func (*CertificateChain) String

func (x *CertificateChain) String() string

type Report

type Report struct {
	Version         uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` // Should be 1 for revision 1.51
	GuestSvn        uint32 `protobuf:"varint,2,opt,name=guest_svn,json=guestSvn,proto3" json:"guest_svn,omitempty"`
	Policy          uint64 `protobuf:"varint,3,opt,name=policy,proto3" json:"policy,omitempty"`
	FamilyId        []byte `protobuf:"bytes,4,opt,name=family_id,json=familyId,proto3" json:"family_id,omitempty"` // Should be 16 bytes long
	ImageId         []byte `protobuf:"bytes,5,opt,name=image_id,json=imageId,proto3" json:"image_id,omitempty"`    // Should be 16 bytes long
	Vmpl            uint32 `protobuf:"varint,6,opt,name=vmpl,proto3" json:"vmpl,omitempty"`
	SignatureAlgo   uint32 `protobuf:"varint,7,opt,name=signature_algo,json=signatureAlgo,proto3" json:"signature_algo,omitempty"`
	CurrentTcb      uint64 `protobuf:"varint,8,opt,name=current_tcb,json=currentTcb,proto3" json:"current_tcb,omitempty"`
	PlatformInfo    uint64 `protobuf:"varint,9,opt,name=platform_info,json=platformInfo,proto3" json:"platform_info,omitempty"`
	AuthorKeyEn     uint32 `protobuf:"varint,10,opt,name=author_key_en,json=authorKeyEn,proto3" json:"author_key_en,omitempty"`
	ReportData      []byte `protobuf:"bytes,11,opt,name=report_data,json=reportData,proto3" json:"report_data,omitempty"`                  // Should be 64 bytes long
	Measurement     []byte `protobuf:"bytes,12,opt,name=measurement,proto3" json:"measurement,omitempty"`                                  // Should be 48 bytes long
	HostData        []byte `protobuf:"bytes,13,opt,name=host_data,json=hostData,proto3" json:"host_data,omitempty"`                        // Should be 32 bytes long
	IdKeyDigest     []byte `protobuf:"bytes,14,opt,name=id_key_digest,json=idKeyDigest,proto3" json:"id_key_digest,omitempty"`             // Should be 48 bytes long
	AuthorKeyDigest []byte `protobuf:"bytes,15,opt,name=author_key_digest,json=authorKeyDigest,proto3" json:"author_key_digest,omitempty"` // Should be 48 bytes long
	ReportId        []byte `protobuf:"bytes,16,opt,name=report_id,json=reportId,proto3" json:"report_id,omitempty"`                        // Should be 32 bytes long
	ReportIdMa      []byte `protobuf:"bytes,17,opt,name=report_id_ma,json=reportIdMa,proto3" json:"report_id_ma,omitempty"`                // Should be 32 bytes long
	ReportedTcb     uint64 `protobuf:"varint,18,opt,name=reported_tcb,json=reportedTcb,proto3" json:"reported_tcb,omitempty"`
	ChipId          []byte `protobuf:"bytes,19,opt,name=chip_id,json=chipId,proto3" json:"chip_id,omitempty"` // Should be 64 bytes long
	CommittedTcb    uint64 `protobuf:"varint,20,opt,name=committed_tcb,json=committedTcb,proto3" json:"committed_tcb,omitempty"`
	// Each build, minor, major triple should be packed together in a uint32
	// packed together at 7:0, 15:8, 23:16 respectively
	CurrentBuild   uint32 `protobuf:"varint,21,opt,name=current_build,json=currentBuild,proto3" json:"current_build,omitempty"`
	CurrentMinor   uint32 `protobuf:"varint,22,opt,name=current_minor,json=currentMinor,proto3" json:"current_minor,omitempty"`
	CurrentMajor   uint32 `protobuf:"varint,23,opt,name=current_major,json=currentMajor,proto3" json:"current_major,omitempty"`
	CommittedBuild uint32 `protobuf:"varint,24,opt,name=committed_build,json=committedBuild,proto3" json:"committed_build,omitempty"`
	CommittedMinor uint32 `protobuf:"varint,25,opt,name=committed_minor,json=committedMinor,proto3" json:"committed_minor,omitempty"`
	CommittedMajor uint32 `protobuf:"varint,26,opt,name=committed_major,json=committedMajor,proto3" json:"committed_major,omitempty"`
	LaunchTcb      uint64 `protobuf:"varint,27,opt,name=launch_tcb,json=launchTcb,proto3" json:"launch_tcb,omitempty"`
	Signature      []byte `protobuf:"bytes,28,opt,name=signature,proto3" json:"signature,omitempty"` // Should be 512 bytes long
	// contains filtered or unexported fields
}

Report represents an SEV-SNP ATTESTATION_REPORT, specified in SEV SNP API

documentation https://www.amd.com/system/files/TechDocs/56860.pdf

func (*Report) Descriptor deprecated

func (*Report) Descriptor() ([]byte, []int)

Deprecated: Use Report.ProtoReflect.Descriptor instead.

func (*Report) GetAuthorKeyDigest

func (x *Report) GetAuthorKeyDigest() []byte

func (*Report) GetAuthorKeyEn

func (x *Report) GetAuthorKeyEn() uint32

func (*Report) GetChipId

func (x *Report) GetChipId() []byte

func (*Report) GetCommittedBuild

func (x *Report) GetCommittedBuild() uint32

func (*Report) GetCommittedMajor

func (x *Report) GetCommittedMajor() uint32

func (*Report) GetCommittedMinor

func (x *Report) GetCommittedMinor() uint32

func (*Report) GetCommittedTcb

func (x *Report) GetCommittedTcb() uint64

func (*Report) GetCurrentBuild

func (x *Report) GetCurrentBuild() uint32

func (*Report) GetCurrentMajor

func (x *Report) GetCurrentMajor() uint32

func (*Report) GetCurrentMinor

func (x *Report) GetCurrentMinor() uint32

func (*Report) GetCurrentTcb

func (x *Report) GetCurrentTcb() uint64

func (*Report) GetFamilyId

func (x *Report) GetFamilyId() []byte

func (*Report) GetGuestSvn

func (x *Report) GetGuestSvn() uint32

func (*Report) GetHostData

func (x *Report) GetHostData() []byte

func (*Report) GetIdKeyDigest

func (x *Report) GetIdKeyDigest() []byte

func (*Report) GetImageId

func (x *Report) GetImageId() []byte

func (*Report) GetLaunchTcb

func (x *Report) GetLaunchTcb() uint64

func (*Report) GetMeasurement

func (x *Report) GetMeasurement() []byte

func (*Report) GetPlatformInfo

func (x *Report) GetPlatformInfo() uint64

func (*Report) GetPolicy

func (x *Report) GetPolicy() uint64

func (*Report) GetReportData

func (x *Report) GetReportData() []byte

func (*Report) GetReportId

func (x *Report) GetReportId() []byte

func (*Report) GetReportIdMa

func (x *Report) GetReportIdMa() []byte

func (*Report) GetReportedTcb

func (x *Report) GetReportedTcb() uint64

func (*Report) GetSignature

func (x *Report) GetSignature() []byte

func (*Report) GetSignatureAlgo

func (x *Report) GetSignatureAlgo() uint32

func (*Report) GetVersion

func (x *Report) GetVersion() uint32

func (*Report) GetVmpl

func (x *Report) GetVmpl() uint32

func (*Report) ProtoMessage

func (*Report) ProtoMessage()

func (*Report) ProtoReflect

func (x *Report) ProtoReflect() protoreflect.Message

func (*Report) Reset

func (x *Report) Reset()

func (*Report) String

func (x *Report) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL