Documentation ¶
Overview ¶
Package SNP provides types shared by SNP-based attestation implementations. It ensures all issuers provide the same types to the verify command.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetExtendedReport ¶
GetExtendedReport retrieves the extended SNP report from the CVM.
func Product ¶
func Product() *spb.SevProduct
Product returns the SEV product info currently supported by Constellation's SNP attestation.
Types ¶
type AzureInstanceInfo ¶
type AzureInstanceInfo struct { // RuntimeData is the Azure runtime data from the vTPM (NVRAM) of the CVM. RuntimeData []byte // MAAToken is the token of the MAA for the attestation report, used as a fallback // if the IDKeyDigest cannot be verified. MAAToken string }
AzureInstanceInfo contains Azure specific information related to SNP attestation.
type CertificateChain ¶
type CertificateChain struct {
// contains filtered or unexported fields
}
CertificateChain stores an AMD signing key (ASK) and AMD root key (ARK) certificate.
func NewCertificateChain ¶
func NewCertificateChain(ask, ark *x509.Certificate) CertificateChain
NewCertificateChain returns a new CertificateChain with the given ASK and ARK certificates.
type InstanceInfo ¶
type InstanceInfo struct { // ReportSigner is the PEM-encoded certificate used to validate the attestation report's signature. ReportSigner []byte // CertChain is the PEM-encoded certificate chain for the attestation report (ASK+ARK). // Intermediate key that validates the ReportSigner and root key. CertChain []byte // AttestationReport is the attestation report from the vTPM (NVRAM) of the CVM. AttestationReport []byte Azure *AzureInstanceInfo GCP *attest.GCEInstanceInfo }
InstanceInfo contains the necessary information to establish trust in a SNP CVM.
func (*InstanceInfo) AttestationWithCerts ¶
func (a *InstanceInfo) AttestationWithCerts(getter trust.HTTPSGetter, fallbackCerts CertificateChain, logger attestation.Logger, ) (*spb.Attestation, error)
AttestationWithCerts returns a formatted version of the attestation report and its certificates from the instanceInfo. Certificates are retrieved in the following precedence: 1. ASK from issuer. On Azure: THIM. One AWS: not prefilled. (Go to option 2) On GCP: prefilled. 2. ASK or ARK from fallbackCerts. 3. ASK or ARK from AMD KDS.
func (*InstanceInfo) ParseCertChain ¶
func (a *InstanceInfo) ParseCertChain() (ask, ark *x509.Certificate, retErr error)
ParseCertChain parses the certificate chain from the instanceInfo into x509-formatted ASK and ARK certificates. If less than 2 certificates are present, only the present certificate is returned. If more than 2 certificates are present, an error is returned.
func (*InstanceInfo) ParseReportSigner ¶
func (a *InstanceInfo) ParseReportSigner() (*x509.Certificate, error)
ParseReportSigner parses the VCEK/VLEK certificate from the instanceInfo into an x509-formatted certificate. If no certificate is present, nil is returned.