mirror of
https://github.com/ultravioletrs/cocos.git
synced 2026-06-23 04:10:25 +00:00
67f939fc66
* manager, cli and agent vtpm support * rebase and changed atls for vtpm * deleted unused code * changed chekproto.yaml script so it find the manager proto file correctly * fixe manager proto version * fix agent tests * fix server agent test * fix attestation test * fix attestation test gofumpt * created dummy RWC for TPM * fix comment * add default PCR values * rebase main * fix rust ci and missing header * changed embedded attestation to VMPL 2 * fix unused impot * fix pkg test * address attestation type * fix agent attestation test * add prc15 check * fix comments * fix cli tests * add doc * add mock for LeveledQuoteProvider when SEV-SNP device is not found Signed-off-by: Sammy Oina <sammyoina@gmail.com> * fix manager reading attestation policy * refactor PCR value checks and update attestation policy values Signed-off-by: Sammy Oina <sammyoina@gmail.com> * fix tests for sev and grpc --------- Signed-off-by: Sammy Oina <sammyoina@gmail.com> Co-authored-by: Sammy Oina <sammyoina@gmail.com>
58 lines
1.3 KiB
Go
58 lines
1.3 KiB
Go
// Copyright (c) Ultraviolet
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
package grpc
|
|
|
|
import (
|
|
"errors"
|
|
|
|
config "github.com/ultravioletrs/cocos/pkg/attestation"
|
|
"github.com/ultravioletrs/cocos/pkg/attestation/quoteprovider"
|
|
"github.com/ultravioletrs/cocos/pkg/attestation/vtpm"
|
|
)
|
|
|
|
type algoReq struct {
|
|
Algorithm []byte `protobuf:"bytes,1,opt,name=algorithm,proto3" json:"algorithm,omitempty"`
|
|
Requirements []byte
|
|
}
|
|
|
|
func (req algoReq) validate() error {
|
|
if len(req.Algorithm) == 0 {
|
|
return errors.New("algorithm binary is required")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type dataReq struct {
|
|
Dataset []byte `protobuf:"bytes,1,opt,name=dataset,proto3" json:"dataset,omitempty"`
|
|
Filename string
|
|
}
|
|
|
|
func (req dataReq) validate() error {
|
|
if len(req.Dataset) == 0 {
|
|
return errors.New("dataset CSV file is required")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type resultReq struct{}
|
|
|
|
func (req resultReq) validate() error {
|
|
// No request parameters to validate, so no validation logic needed
|
|
return nil
|
|
}
|
|
|
|
type attestationReq struct {
|
|
TeeNonce [quoteprovider.Nonce]byte
|
|
VtpmNonce [vtpm.Nonce]byte
|
|
AttType config.AttestationType
|
|
}
|
|
|
|
func (req attestationReq) validate() error {
|
|
switch req.AttType {
|
|
case config.SNP, config.VTPM, config.SNPvTPM:
|
|
return nil
|
|
default:
|
|
return errors.New("invalid attestation type in attestation request")
|
|
}
|
|
}
|