remote_attestation

package
v1.5.0-beta.5 Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2022 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidLengthTypes        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowTypes          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupTypes = fmt.Errorf("proto: unexpected end of group")
)

Functions

func UNSAFE_VerifyRaCert

func UNSAFE_VerifyRaCert(rawCert []byte) ([]byte, error)

UNSAFE_VerifyRaCert This function is a variant that should be used in the CLI - since parsing certificates is different in software or hardware modes, this function tries the HW route and goes with Software otherwise. Since there's no verification in SW mode it will return the 32 bytes of the public key it finds. TODO: a more elegant fix for this issue would be to return whether we are in HW or SW when querying for the tx key (although this could fail in offline modes, so maybe not)

func VerifyRaCert

func VerifyRaCert(rawCert []byte) ([]byte, error)
 Verifies the remote attestation certificate, which is comprised of a the attestation report, intel signature, and enclave signature

 We verify that:
	- the report is valid, that no outstanding issues exist (todo: match enclave hash or something?)
	- Intel's certificate signed the report
	- The public key of the enclave/node exists, so we can use that to encrypt the seed

 In software mode this will just return the raw netscape comment, as it is the public key of the signer

Types

type Certificate

type Certificate []byte

type EndorsedAttestationReport

type EndorsedAttestationReport struct {
	Report      []byte `protobuf:"bytes,1,opt,name=report,proto3" json:"report,omitempty"`
	Signature   []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
	SigningCert []byte `protobuf:"bytes,3,opt,name=signing_cert,json=signingCert,proto3" json:"signing_cert,omitempty"`
}

func (*EndorsedAttestationReport) Descriptor

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

func (*EndorsedAttestationReport) Equal

func (this *EndorsedAttestationReport) Equal(that interface{}) bool

func (*EndorsedAttestationReport) Marshal

func (m *EndorsedAttestationReport) Marshal() (dAtA []byte, err error)

func (*EndorsedAttestationReport) MarshalTo

func (m *EndorsedAttestationReport) MarshalTo(dAtA []byte) (int, error)

func (*EndorsedAttestationReport) MarshalToSizedBuffer

func (m *EndorsedAttestationReport) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*EndorsedAttestationReport) ProtoMessage

func (*EndorsedAttestationReport) ProtoMessage()

func (*EndorsedAttestationReport) Reset

func (m *EndorsedAttestationReport) Reset()

func (*EndorsedAttestationReport) Size

func (m *EndorsedAttestationReport) Size() (n int)

func (*EndorsedAttestationReport) String

func (m *EndorsedAttestationReport) String() string

func (*EndorsedAttestationReport) Unmarshal

func (m *EndorsedAttestationReport) Unmarshal(dAtA []byte) error

func (*EndorsedAttestationReport) XXX_DiscardUnknown

func (m *EndorsedAttestationReport) XXX_DiscardUnknown()

func (*EndorsedAttestationReport) XXX_Marshal

func (m *EndorsedAttestationReport) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*EndorsedAttestationReport) XXX_Merge

func (m *EndorsedAttestationReport) XXX_Merge(src proto.Message)

func (*EndorsedAttestationReport) XXX_Size

func (m *EndorsedAttestationReport) XXX_Size() int

func (*EndorsedAttestationReport) XXX_Unmarshal

func (m *EndorsedAttestationReport) XXX_Unmarshal(b []byte) error

type PlatformInfoBlob

type PlatformInfoBlob struct {
	SgxEpidGroupFlags       uint32             `protobuf:"varint,1,opt,name=sgx_epid_group_flags,json=sgxEpidGroupFlags,proto3" json:"sgx_epid_group_flags,omitempty"`
	SgxTcbEvaluationFlags   uint32             `` /* 129-byte string literal not displayed */
	PseEvaluationFlags      uint32             `protobuf:"varint,3,opt,name=pse_evaluation_flags,json=pseEvaluationFlags,proto3" json:"pse_evaluation_flags,omitempty"`
	LatestEquivalentTcbPsvn string             `` /* 134-byte string literal not displayed */
	LatestPseIsvsvn         string             `protobuf:"bytes,5,opt,name=latest_pse_isvsvn,json=latestPseIsvsvn,proto3" json:"latest_pse_isvsvn,omitempty"`
	LatestPsdaSvn           string             `protobuf:"bytes,6,opt,name=latest_psda_svn,json=latestPsdaSvn,proto3" json:"latest_psda_svn,omitempty"`
	Xeid                    uint32             `protobuf:"varint,7,opt,name=xeid,proto3" json:"xeid,omitempty"`
	Gid                     uint32             `protobuf:"varint,8,opt,name=gid,proto3" json:"gid,omitempty"`
	SgxEc256SignatureT      *SGXEC256Signature `protobuf:"bytes,9,opt,name=sgx_ec256_signature_t,json=sgxEc256SignatureT,proto3" json:"sgx_ec256_signature_t,omitempty"`
}

func (*PlatformInfoBlob) Descriptor

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

func (*PlatformInfoBlob) Equal

func (this *PlatformInfoBlob) Equal(that interface{}) bool

func (*PlatformInfoBlob) Marshal

func (m *PlatformInfoBlob) Marshal() (dAtA []byte, err error)

func (*PlatformInfoBlob) MarshalTo

func (m *PlatformInfoBlob) MarshalTo(dAtA []byte) (int, error)

func (*PlatformInfoBlob) MarshalToSizedBuffer

func (m *PlatformInfoBlob) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PlatformInfoBlob) ProtoMessage

func (*PlatformInfoBlob) ProtoMessage()

func (*PlatformInfoBlob) Reset

func (m *PlatformInfoBlob) Reset()

func (*PlatformInfoBlob) Size

func (m *PlatformInfoBlob) Size() (n int)

func (*PlatformInfoBlob) String

func (m *PlatformInfoBlob) String() string

func (*PlatformInfoBlob) Unmarshal

func (m *PlatformInfoBlob) Unmarshal(dAtA []byte) error

func (*PlatformInfoBlob) XXX_DiscardUnknown

func (m *PlatformInfoBlob) XXX_DiscardUnknown()

func (*PlatformInfoBlob) XXX_Marshal

func (m *PlatformInfoBlob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PlatformInfoBlob) XXX_Merge

func (m *PlatformInfoBlob) XXX_Merge(src proto.Message)

func (*PlatformInfoBlob) XXX_Size

func (m *PlatformInfoBlob) XXX_Size() int

func (*PlatformInfoBlob) XXX_Unmarshal

func (m *PlatformInfoBlob) XXX_Unmarshal(b []byte) error

type QuoteReport

type QuoteReport struct {
	ID                    string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Timestamp             string   `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Version               uint64   `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"`
	IsvEnclaveQuoteStatus string   `protobuf:"bytes,4,opt,name=isv_enclave_quote_status,json=isvEnclaveQuoteStatus,proto3" json:"isvEnclaveQuoteStatus"`
	PlatformInfoBlob      string   `protobuf:"bytes,5,opt,name=platform_info_blob,json=platformInfoBlob,proto3" json:"platformInfoBlob"`
	IsvEnclaveQuoteBody   string   `protobuf:"bytes,6,opt,name=isv_enclave_quote_body,json=isvEnclaveQuoteBody,proto3" json:"isvEnclaveQuoteBody"`
	AdvisoryIDs           []string `protobuf:"bytes,7,rep,name=advisory_ids,json=advisoryIds,proto3" json:"advisoryIDs"`
}

func (*QuoteReport) Descriptor

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

func (*QuoteReport) Equal

func (this *QuoteReport) Equal(that interface{}) bool

func (*QuoteReport) Marshal

func (m *QuoteReport) Marshal() (dAtA []byte, err error)

func (*QuoteReport) MarshalTo

func (m *QuoteReport) MarshalTo(dAtA []byte) (int, error)

func (*QuoteReport) MarshalToSizedBuffer

func (m *QuoteReport) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QuoteReport) ProtoMessage

func (*QuoteReport) ProtoMessage()

func (*QuoteReport) Reset

func (m *QuoteReport) Reset()

func (*QuoteReport) Size

func (m *QuoteReport) Size() (n int)

func (*QuoteReport) String

func (m *QuoteReport) String() string

func (*QuoteReport) Unmarshal

func (m *QuoteReport) Unmarshal(dAtA []byte) error

func (*QuoteReport) XXX_DiscardUnknown

func (m *QuoteReport) XXX_DiscardUnknown()

func (*QuoteReport) XXX_Marshal

func (m *QuoteReport) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QuoteReport) XXX_Merge

func (m *QuoteReport) XXX_Merge(src proto.Message)

func (*QuoteReport) XXX_Size

func (m *QuoteReport) XXX_Size() int

func (*QuoteReport) XXX_Unmarshal

func (m *QuoteReport) XXX_Unmarshal(b []byte) error

type QuoteReportBody

type QuoteReportBody struct {
	MrEnclave  string `protobuf:"bytes,1,opt,name=mr_enclave,json=mrEnclave,proto3" json:"mr_enclave,omitempty"`
	MrSigner   string `protobuf:"bytes,2,opt,name=mr_signer,json=mrSigner,proto3" json:"mr_signer,omitempty"`
	ReportData string `protobuf:"bytes,3,opt,name=report_data,json=reportData,proto3" json:"report_data,omitempty"`
}

func (*QuoteReportBody) Descriptor

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

func (*QuoteReportBody) Equal

func (this *QuoteReportBody) Equal(that interface{}) bool

func (*QuoteReportBody) Marshal

func (m *QuoteReportBody) Marshal() (dAtA []byte, err error)

func (*QuoteReportBody) MarshalTo

func (m *QuoteReportBody) MarshalTo(dAtA []byte) (int, error)

func (*QuoteReportBody) MarshalToSizedBuffer

func (m *QuoteReportBody) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QuoteReportBody) ProtoMessage

func (*QuoteReportBody) ProtoMessage()

func (*QuoteReportBody) Reset

func (m *QuoteReportBody) Reset()

func (*QuoteReportBody) Size

func (m *QuoteReportBody) Size() (n int)

func (*QuoteReportBody) String

func (m *QuoteReportBody) String() string

func (*QuoteReportBody) Unmarshal

func (m *QuoteReportBody) Unmarshal(dAtA []byte) error

func (*QuoteReportBody) XXX_DiscardUnknown

func (m *QuoteReportBody) XXX_DiscardUnknown()

func (*QuoteReportBody) XXX_Marshal

func (m *QuoteReportBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QuoteReportBody) XXX_Merge

func (m *QuoteReportBody) XXX_Merge(src proto.Message)

func (*QuoteReportBody) XXX_Size

func (m *QuoteReportBody) XXX_Size() int

func (*QuoteReportBody) XXX_Unmarshal

func (m *QuoteReportBody) XXX_Unmarshal(b []byte) error

type QuoteReportData

type QuoteReportData struct {
	Version    uint64           `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
	SignType   uint64           `protobuf:"varint,2,opt,name=sign_type,json=signType,proto3" json:"sign_type,omitempty"`
	ReportBody *QuoteReportBody `protobuf:"bytes,3,opt,name=report_body,json=reportBody,proto3" json:"report_body,omitempty"`
}

func (*QuoteReportData) Descriptor

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

func (*QuoteReportData) Equal

func (this *QuoteReportData) Equal(that interface{}) bool

func (*QuoteReportData) Marshal

func (m *QuoteReportData) Marshal() (dAtA []byte, err error)

func (*QuoteReportData) MarshalTo

func (m *QuoteReportData) MarshalTo(dAtA []byte) (int, error)

func (*QuoteReportData) MarshalToSizedBuffer

func (m *QuoteReportData) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QuoteReportData) ProtoMessage

func (*QuoteReportData) ProtoMessage()

func (*QuoteReportData) Reset

func (m *QuoteReportData) Reset()

func (*QuoteReportData) Size

func (m *QuoteReportData) Size() (n int)

func (*QuoteReportData) String

func (m *QuoteReportData) String() string

func (*QuoteReportData) Unmarshal

func (m *QuoteReportData) Unmarshal(dAtA []byte) error

func (*QuoteReportData) XXX_DiscardUnknown

func (m *QuoteReportData) XXX_DiscardUnknown()

func (*QuoteReportData) XXX_Marshal

func (m *QuoteReportData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QuoteReportData) XXX_Merge

func (m *QuoteReportData) XXX_Merge(src proto.Message)

func (*QuoteReportData) XXX_Size

func (m *QuoteReportData) XXX_Size() int

func (*QuoteReportData) XXX_Unmarshal

func (m *QuoteReportData) XXX_Unmarshal(b []byte) error

type SGXEC256Signature

type SGXEC256Signature struct {
	Gx string `protobuf:"bytes,1,opt,name=gx,proto3" json:"gx,omitempty"`
	Gy string `protobuf:"bytes,2,opt,name=gy,proto3" json:"gy,omitempty"`
}

func (*SGXEC256Signature) Descriptor

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

func (*SGXEC256Signature) Equal

func (this *SGXEC256Signature) Equal(that interface{}) bool

func (*SGXEC256Signature) Marshal

func (m *SGXEC256Signature) Marshal() (dAtA []byte, err error)

func (*SGXEC256Signature) MarshalTo

func (m *SGXEC256Signature) MarshalTo(dAtA []byte) (int, error)

func (*SGXEC256Signature) MarshalToSizedBuffer

func (m *SGXEC256Signature) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*SGXEC256Signature) ProtoMessage

func (*SGXEC256Signature) ProtoMessage()

func (*SGXEC256Signature) Reset

func (m *SGXEC256Signature) Reset()

func (*SGXEC256Signature) Size

func (m *SGXEC256Signature) Size() (n int)

func (*SGXEC256Signature) String

func (m *SGXEC256Signature) String() string

func (*SGXEC256Signature) Unmarshal

func (m *SGXEC256Signature) Unmarshal(dAtA []byte) error

func (*SGXEC256Signature) XXX_DiscardUnknown

func (m *SGXEC256Signature) XXX_DiscardUnknown()

func (*SGXEC256Signature) XXX_Marshal

func (m *SGXEC256Signature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SGXEC256Signature) XXX_Merge

func (m *SGXEC256Signature) XXX_Merge(src proto.Message)

func (*SGXEC256Signature) XXX_Size

func (m *SGXEC256Signature) XXX_Size() int

func (*SGXEC256Signature) XXX_Unmarshal

func (m *SGXEC256Signature) XXX_Unmarshal(b []byte) error

Jump to

Keyboard shortcuts

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