11package provisioner
22
33import (
4- "context"
54 "fmt"
65
7- "github.com/oasisprotocol/oasis-core/go/common"
8- "github.com/oasisprotocol/oasis-core/go/common/cbor"
96 "github.com/oasisprotocol/oasis-core/go/common/identity"
10- "github.com/oasisprotocol/oasis-core/go/common/node"
117 "github.com/oasisprotocol/oasis-core/go/common/persistent"
128 "github.com/oasisprotocol/oasis-core/go/common/sgx/pcs"
13- sgxQuote "github.com/oasisprotocol/oasis-core/go/common/sgx/quote"
149 "github.com/oasisprotocol/oasis-core/go/common/version"
1510 "github.com/oasisprotocol/oasis-core/go/config"
16- consensus "github.com/oasisprotocol/oasis-core/go/consensus/api"
1711 genesisAPI "github.com/oasisprotocol/oasis-core/go/genesis/api"
1812 cmdFlags "github.com/oasisprotocol/oasis-core/go/oasis-node/cmd/common/flags"
19- registry "github.com/oasisprotocol/oasis-core/go/registry/api"
2013 "github.com/oasisprotocol/oasis-core/go/runtime/bundle/component"
2114 rtConfig "github.com/oasisprotocol/oasis-core/go/runtime/config"
2215 runtimeHost "github.com/oasisprotocol/oasis-core/go/runtime/host"
@@ -26,7 +19,6 @@ import (
2619 hostProtocol "github.com/oasisprotocol/oasis-core/go/runtime/host/protocol"
2720 hostSandbox "github.com/oasisprotocol/oasis-core/go/runtime/host/sandbox"
2821 hostSgx "github.com/oasisprotocol/oasis-core/go/runtime/host/sgx"
29- sgxCommon "github.com/oasisprotocol/oasis-core/go/runtime/host/sgx/common"
3022 hostTdx "github.com/oasisprotocol/oasis-core/go/runtime/host/tdx"
3123)
3224
@@ -39,8 +31,8 @@ func New(
3931 dataDir string ,
4032 commonStore * persistent.CommonStore ,
4133 identity * identity.Identity ,
42- consensus consensus.Service ,
4334 genesisDoc * genesisAPI.Document ,
35+ policyProvider runtimeHost.QuotePolicyProvider ,
4436) (runtimeHost.Provisioner , error ) {
4537 // Configure host environment information.
4638 hostInfo , err := createHostInfo (genesisDoc )
@@ -54,8 +46,6 @@ func New(
5446 return nil , err
5547 }
5648
57- policyProvider := & quotePolicyProvider {consensus }
58-
5949 // Create runtime provisioner.
6050 return createProvisioner (dataDir , commonStore , identity , hostInfo , qs , policyProvider )
6151}
@@ -87,7 +77,7 @@ func createProvisioner(
8777 identity * identity.Identity ,
8878 hostInfo * hostProtocol.HostInfo ,
8979 qs pcs.QuoteService ,
90- policyProvider sgxCommon .QuotePolicyProvider ,
80+ policyProvider runtimeHost .QuotePolicyProvider ,
9181) (runtimeHost.Provisioner , error ) {
9282 var err error
9383 var insecureNoSandbox bool
@@ -202,26 +192,3 @@ func createProvisioner(
202192
203193 return provisioner , nil
204194}
205-
206- type quotePolicyProvider struct {
207- cs consensus.Service
208- }
209-
210- func (p * quotePolicyProvider ) Get (ctx context.Context , runtimeID common.Namespace , version version.Version ) (* sgxQuote.Policy , error ) {
211- rt , err := p .cs .Registry ().GetRuntime (ctx , & registry.GetRuntimeQuery {
212- Height : consensus .HeightLatest ,
213- ID : runtimeID ,
214- IncludeSuspended : true ,
215- })
216- if err != nil {
217- return nil , fmt .Errorf ("failed to query runtime descriptor: %w" , err )
218- }
219- if d := rt .DeploymentForVersion (version ); d != nil {
220- var sc node.SGXConstraints
221- if err = cbor .Unmarshal (d .TEE , & sc ); err != nil {
222- return nil , fmt .Errorf ("malformed runtime SGX constraints: %w" , err )
223- }
224- return sc .Policy , nil
225- }
226- return nil , nil
227- }
0 commit comments