diff --git a/README.md b/README.md index b9b7f1e..fbdfb65 100644 --- a/README.md +++ b/README.md @@ -47,13 +47,18 @@ By default, ratsd core listens on port 8895. Use `POST /ratsd/chares` to retriev $ curl -X POST http://localhost:8895/ratsd/chares -H "Content-type: application/vnd.veraison.chares+json" -d '{"nonce": "TUlEQk5IMjhpaW9pc2pQeXh4eHh4eHh4eHh4eHh4eHhNSURCTkgyOGlpb2lzalB5eHh4eHh4eHh4eHh4eHh4eA"}' {"cmw":"eyJfX2Ntd2NfdCI6InRhZzpnaXRodWIuY29tLDIwMjU6dmVyYWlzb24vcmF0c2QvY213IiwibW9jay10c20iOlsiYXBwbGljYXRpb24vdm5kLnZlcmFpc29uLmNvbmZpZ2ZzLXRzbStqc29uIiwiZXlKaGRYaGliRzlpSWpvaVdWaFdORmx0ZUhaWlp5SXNJbTkxZEdKc2IySWlPaUpqU0Vwd1pHMTRiR1J0Vm5OUGFVRjNRMjFzZFZsdGVIWlphbTluVGtkUk1FOVVVVEJPUkVrd1dsUlJORTE2U1hwUFJGazFUbXByTWxwcVdUVk9lazB5V1ZSVmQwNTZhek5QUkdNMFRucG5NMDlFWXpST2VtY3pUMFJqTkU1Nlp6TlBSR00wVG5wbk0wOUVZelJPZW1jelQwUlNhMDVFYXpCT1JGRjVUa2RWTUU5RVRYbE5lbWN5VDFSWk5VNXRXVEpQVkdONlRtMUZNVTFFWXpWT2VtY3pUMFJqTkU1Nlp6TlBSR00wVG5wbk0wOUVZelJPZW1jelQwUmpORTU2WnpOUFJHTTBUbnBuSWl3aWNISnZkbWxrWlhJaU9pSm1ZV3RsWEc0aWZRIl19","eat_nonce":"TUlEQk5IMjhpaW9pc2pQeXh4eHh4eHh4eHh4eHh4eHhNSURCTkgyOGlpb2lzalB5eHh4eHh4eHh4eHh4eHh4eA","eat_profile":"tag:github.com,2024:veraison/ratsd"} ``` +## Get available attesters +Use endpoint `GET /ratsd/subattesters` to query all available leaf attesters and their available options. The usage can be found in the following +```console +$ curl http://localhost:8895/ratsd/subattesters +[{"name":"mock-tsm","options":[{"data-type":"string","name":"privilege_level"}]},{"name":"tsm-report","options":[{"data-type":"string","name":"privilege_level"}]}] +``` ## Complex queries Ratsd currently supports the Trusted Secure Module `tsm` attester. You can specify the `privilege_level` for configfs-TSM in the query. ```bash curl -X POST http://localhost:8895/ratsd/chares -H "Content-type: application/vnd.veraison.chares+json" -d '{"nonce": "TUlEQk5IMjhpaW9pc2pQeXh4eHh4eHh4eHh4eHh4eHhNSURCTkgyOGlpb2lzalB5eHh4eHh4eHh4eHh4eHh4eA", tsm-report:{"privilege_level": "$level"}}' # Replace $level with a number from 0 to 3 ``` - ## Get evidence from the selected attester only If more than one leaf attesters present, ratsd adds the evidence generated by all attesters to the response of `/ratsd/chares`. To limit the output to the selected attester, add `list-options: selected` to config.yaml, diff --git a/api/api.gen.go b/api/api.gen.go index 226032d..a6a5589 100644 --- a/api/api.gen.go +++ b/api/api.gen.go @@ -50,6 +50,16 @@ const ( TagGithubCom2024Veraisonratsd EATEatProfile = "tag:github.com,2024:veraison/ratsd" ) +// Defines values for OptionDataType. +const ( + Array OptionDataType = "array" + Boolean OptionDataType = "boolean" + Integer OptionDataType = "integer" + Number OptionDataType = "number" + Object OptionDataType = "object" + String OptionDataType = "string" +) + // Defines values for UnauthorizedErrorStatus. const ( N401 UnauthorizedErrorStatus = 401 @@ -107,6 +117,21 @@ type EAT struct { // EATEatProfile defines model for EAT.EatProfile. type EATEatProfile string +// Option defines model for Option. +type Option struct { + DataType OptionDataType `json:"data-type"` + Name string `json:"name"` +} + +// OptionDataType defines model for Option.DataType. +type OptionDataType string + +// SubAttester defines model for SubAttester. +type SubAttester struct { + Name string `json:"name"` + Options *[]Option `json:"options,omitempty"` +} + // UnauthorizedError defines model for UnauthorizedError. type UnauthorizedError struct { Detail *string `json:"detail,omitempty"` @@ -141,6 +166,9 @@ type ServerInterface interface { // (POST /ratsd/chares) RatsdChares(w http.ResponseWriter, r *http.Request, params RatsdCharesParams) + + // (GET /ratsd/subattesters) + RatsdSubattesters(w http.ResponseWriter, r *http.Request) } // ServerInterfaceWrapper converts contexts to parameters. @@ -198,6 +226,20 @@ func (siw *ServerInterfaceWrapper) RatsdChares(w http.ResponseWriter, r *http.Re handler.ServeHTTP(w, r) } +// RatsdSubattesters operation middleware +func (siw *ServerInterfaceWrapper) RatsdSubattesters(w http.ResponseWriter, r *http.Request) { + + handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + siw.Handler.RatsdSubattesters(w, r) + })) + + for _, middleware := range siw.HandlerMiddlewares { + handler = middleware(handler) + } + + handler.ServeHTTP(w, r) +} + type UnescapedCookieParamError struct { ParamName string Err error @@ -319,6 +361,7 @@ func HandlerWithOptions(si ServerInterface, options StdHTTPServerOptions) http.H } m.HandleFunc("POST "+options.BaseURL+"/ratsd/chares", wrapper.RatsdChares) + m.HandleFunc("GET "+options.BaseURL+"/ratsd/subattesters", wrapper.RatsdSubattesters) return m } @@ -326,20 +369,23 @@ func HandlerWithOptions(si ServerInterface, options StdHTTPServerOptions) http.H // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", + "btnjJfiqHo5//wUAAP//B2zyTacMAAA=", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/api/server.go b/api/server.go index 2caf9e0..21b4c7c 100644 --- a/api/server.go +++ b/api/server.go @@ -19,6 +19,7 @@ import ( // Defines missing consts in the API Spec const ( ApplicationvndVeraisonCharesJson string = "application/vnd.veraison.chares+json" + JsonType string = "application/json" ) type Server struct { @@ -211,3 +212,31 @@ func (s *Server) RatsdChares(w http.ResponseWriter, r *http.Request, param Ratsd w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(eat) } + +func (s *Server) RatsdSubattesters(w http.ResponseWriter, r *http.Request) { + resp := []SubAttester{} + + pl := s.manager.GetPluginList() + for _, pn := range pl { + options := new([]Option) + attester, err := s.manager.LookupByName(pn) + if err != nil { + errMsg := fmt.Sprintf( + "failed to get handle from %s: %s", pn, err.Error()) + p := problems.NewDetailedProblem(http.StatusInternalServerError, errMsg) + s.reportProblem(w, p) + return + } + + for _, o := range attester.GetOptions().Options { + option := Option{Name: o.Name, DataType: OptionDataType(o.Type)} + *options = append(*options, option) + } + entry := SubAttester{Name: pn, Options: options,} + resp = append(resp, entry) + } + + w.Header().Set("Content-Type", JsonType) + w.WriteHeader(http.StatusOK) + json.NewEncoder(w).Encode(resp) +} diff --git a/api/server_test.go b/api/server_test.go index 4f56d01..14eded2 100644 --- a/api/server_test.go +++ b/api/server_test.go @@ -19,6 +19,7 @@ import ( mock_deps "github.com/veraison/ratsd/api/mocks" "github.com/veraison/ratsd/attesters/mocktsm" "github.com/veraison/ratsd/tokens" + "github.com/veraison/ratsd/attesters/tsm" "github.com/veraison/services/log" ) @@ -27,6 +28,54 @@ const ( validNonce = "TUlEQk5IMjhpaW9pc2pQeXh4eHh4eHh4eHh4eHh4eHhNSURCTkgyOGlpb2lzalB5eHh4eHh4eHh4eHh4eHh4eA" ) +func TestRatsdSubattesters_valid_requests(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + dm := mock_deps.NewMockIManager(ctrl) + dm.EXPECT().GetPluginList().Return([]string{}).Times(1) + dm.EXPECT().GetPluginList().Return([]string{"mock-tsm"}).Times(1) + dm.EXPECT().GetPluginList().Return([]string{"mock-tsm","tsm-report"}).Times(1) + dm.EXPECT().LookupByName("mock-tsm").Return(mocktsm.GetPlugin(), nil).AnyTimes() + dm.EXPECT().LookupByName("tsm-report").Return(&tsm.TSMPlugin{}, nil).AnyTimes() + logger := log.Named("test") + s := NewServer(logger, dm, "all") + tests := []struct { + name, response string + }{ + { + "no attester", + "[]\n", + }, + { + "with only mocktsm attester", + "[{\"name\":\"mock-tsm\",\"options\":[{\"data-type\":\"string\",\"name\":\"privilege_level\"}]}]\n", + }, + { + "with tsm and mocktsm attester", + "[{\"name\":\"mock-tsm\",\"options\":[{\"data-type\":\"string\",\"name\":\"privilege_level\"}]},{\"name\":\"tsm-report\",\"options\":[{\"data-type\":\"string\",\"name\":\"privilege_level\"}]}]\n", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + w := httptest.NewRecorder() + rb := strings.NewReader(tt.response) + r, _ := http.NewRequest(http.MethodGet, "/ratsd/subattesters", rb) + s.RatsdSubattesters(w, r) + + expectedCode := http.StatusOK + expectedType := jsonType + expectedBody := tt.response + + assert.Equal(t, expectedCode, w.Code) + assert.Equal(t, expectedType, w.Result().Header.Get("Content-Type")) + assert.Equal(t, expectedBody, w.Body.String()) + }) + } + +} + func TestRatsdChares_wrong_content_type(t *testing.T) { expectedCode := http.StatusBadRequest expectedType := problems.ProblemMediaType diff --git a/attesters/mocktsm/mocktsm.go b/attesters/mocktsm/mocktsm.go index 5730668..58a658e 100644 --- a/attesters/mocktsm/mocktsm.go +++ b/attesters/mocktsm/mocktsm.go @@ -47,6 +47,18 @@ func getEvidenceError(e error) *compositor.EvidenceOut { } } +func (m *MockPlugin) GetOptions() *compositor.OptionsOut { + options := []*compositor.Option{ + &compositor.Option{Name: "privilege_level", Type: "string"}, + } + + return &compositor.OptionsOut{ + Options: options, + Status: statusSucceeded, + } + +} + func (m *MockPlugin) GetSubAttesterID() *compositor.SubAttesterIDOut { return &compositor.SubAttesterIDOut{ SubAttesterID: sid, diff --git a/attesters/mocktsm/mocktsm_test.go b/attesters/mocktsm/mocktsm_test.go index 7a4ac4d..59a43d5 100644 --- a/attesters/mocktsm/mocktsm_test.go +++ b/attesters/mocktsm/mocktsm_test.go @@ -20,6 +20,19 @@ var ( p = GetPlugin() ) +func Test_GetOptions(t *testing.T) { + options := []*compositor.Option{ + &compositor.Option{Name: "privilege_level", Type: "string"}, + } + + expected := &compositor.OptionsOut{ + Options: options, + Status: statusSucceeded, + } + + assert.Equal(t, expected, p.GetOptions()) +} + func Test_GetSubAttesterID(t *testing.T) { expected := &compositor.SubAttesterIDOut{ SubAttesterID: sid, diff --git a/attesters/tsm/tsm.go b/attesters/tsm/tsm.go index 96a65a0..65f6d1e 100644 --- a/attesters/tsm/tsm.go +++ b/attesters/tsm/tsm.go @@ -49,6 +49,17 @@ func getEvidenceError(e error) *compositor.EvidenceOut { } } +func (t *TSMPlugin) GetOptions() *compositor.OptionsOut { + options := []*compositor.Option{ + &compositor.Option{Name: "privilege_level", Type: "string"}, + } + + return &compositor.OptionsOut{ + Options: options, + Status: statusSucceeded, + } +} + func (t *TSMPlugin) GetSubAttesterID() *compositor.SubAttesterIDOut { return &compositor.SubAttesterIDOut{ SubAttesterID: sid, diff --git a/attesters/tsm/tsm_test.go b/attesters/tsm/tsm_test.go index 12ceece..98efe79 100644 --- a/attesters/tsm/tsm_test.go +++ b/attesters/tsm/tsm_test.go @@ -31,6 +31,19 @@ func Test_getEvidenceError(t *testing.T) { assert.Equal(t, expected, getEvidenceError(e)) } +func Test_GetOptions(t *testing.T) { + options := []*compositor.Option{ + &compositor.Option{Name: "privilege_level", Type: "string"}, + } + + expected := &compositor.OptionsOut{ + Options: options, + Status: statusSucceeded, + } + + assert.Equal(t, expected, p.GetOptions()) +} + func Test_GetSubAttesterID(t *testing.T) { expected := &compositor.SubAttesterIDOut{ SubAttesterID: sid, diff --git a/docs/api/ratsd.yaml b/docs/api/ratsd.yaml index df9f1c7..24ef932 100644 --- a/docs/api/ratsd.yaml +++ b/docs/api/ratsd.yaml @@ -37,6 +37,19 @@ paths: $ref: '#/components/schemas/ChaResRequest' security: - BearerAuth: [] + /ratsd/subattesters: + get: + description: Get a list of the sub-attesters available on this machine. + operationId: Ratsd_subattesters + responses: + '200': + description: The request has succeeded. + content: + application/vnd.veraison.attesters+json: + schema: + type: array + items: + $ref: '#/components/schemas/SubAttester' components: parameters: ChaResRequestParameters.accept: @@ -107,6 +120,23 @@ components: - tag:github.com,2024:veraison/ratsd nested-token: $ref: '#/components/schemas/CMW' + Option: + type: object + required: + - name + - data-type + properties: + name: + type: string + data-type: + type: string + enum: + - string + - number + - integer + - boolean + - array + - object ProblemDetails: type: object properties: @@ -120,6 +150,17 @@ components: type: string instance: type: string + SubAttester: + type: object + required: + - name + properties: + name: + type: string + options: + type: array + items: + $ref: '#/components/schemas/Option' UnauthorizedError: type: object required: diff --git a/plugin/goplugin_rpc.go b/plugin/goplugin_rpc.go index 3a14798..a3f96ed 100644 --- a/plugin/goplugin_rpc.go +++ b/plugin/goplugin_rpc.go @@ -28,6 +28,10 @@ func (s *GRPCServer) GetEvidence(ctx context.Context, in *compositor.EvidenceIn) return s.Impl.GetEvidence(in), nil } +func (s *GRPCServer) GetOptions(ctx context.Context, e *emptypb.Empty) (*compositor.OptionsOut, error) { + return s.Impl.GetOptions(), nil +} + type GRPCClient struct { client compositor.CompositorClient } @@ -65,6 +69,17 @@ func (c *GRPCClient) GetEvidence(in *compositor.EvidenceIn) *compositor.Evidence return resp } +func (c *GRPCClient) GetOptions() *compositor.OptionsOut { + resp, err := c.client.GetOptions(context.Background(), &emptypb.Empty{}) + if err != nil { + return &compositor.OptionsOut{ + Status: &compositor.Status{Result: false, Error: err.Error()}, + } + } + + return resp +} + var logger *zap.SugaredLogger func init() { diff --git a/plugin/ipluggable.go b/plugin/ipluggable.go index c6f4253..9eea037 100644 --- a/plugin/ipluggable.go +++ b/plugin/ipluggable.go @@ -15,6 +15,9 @@ type IPluggable interface { // the output. GetEvidence(in *compositor.EvidenceIn) *compositor.EvidenceOut + // GetOptions returns a list of attester-specific options user may specify in /chares + GetOptions() *compositor.OptionsOut + // GetSubAttesterID returns a *compositor.SubAttesterIDOut that contains // the name and the version of the subattesters in field SubAttesterID GetSubAttesterID() *compositor.SubAttesterIDOut diff --git a/proto/compositor.proto b/proto/compositor.proto index 4a1315c..5fdd576 100644 --- a/proto/compositor.proto +++ b/proto/compositor.proto @@ -10,11 +10,22 @@ package compositor; option go_package = "github.com/veraison/ratsd/proto/compositor"; service Compositor { + rpc GetOptions(google.protobuf.Empty) returns (OptionsOut); rpc GetSubAttesterID(google.protobuf.Empty) returns (SubAttesterIDOut); rpc GetSupportedFormats(google.protobuf.Empty) returns (SupportedFormatsOut); rpc GetEvidence(EvidenceIn) returns (EvidenceOut); } +message Option { + string name = 1; + string type = 2; +} + +message OptionsOut { + Status status = 1; + repeated Option options = 2; +} + // Status.result = true on sucess, status.result = false on failure. message Status { bool result = 1; diff --git a/proto/compositor/compositor.pb.go b/proto/compositor/compositor.pb.go index 6864987..4e7ee2e 100644 --- a/proto/compositor/compositor.pb.go +++ b/proto/compositor/compositor.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v5.29.3 +// protoc v3.14.0 // source: compositor.proto package compositor @@ -24,6 +24,116 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type Option struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` +} + +func (x *Option) Reset() { + *x = Option{} + if protoimpl.UnsafeEnabled { + mi := &file_compositor_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Option) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Option) ProtoMessage() {} + +func (x *Option) ProtoReflect() protoreflect.Message { + mi := &file_compositor_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Option.ProtoReflect.Descriptor instead. +func (*Option) Descriptor() ([]byte, []int) { + return file_compositor_proto_rawDescGZIP(), []int{0} +} + +func (x *Option) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Option) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +type OptionsOut struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Options []*Option `protobuf:"bytes,2,rep,name=options,proto3" json:"options,omitempty"` +} + +func (x *OptionsOut) Reset() { + *x = OptionsOut{} + if protoimpl.UnsafeEnabled { + mi := &file_compositor_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OptionsOut) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OptionsOut) ProtoMessage() {} + +func (x *OptionsOut) ProtoReflect() protoreflect.Message { + mi := &file_compositor_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OptionsOut.ProtoReflect.Descriptor instead. +func (*OptionsOut) Descriptor() ([]byte, []int) { + return file_compositor_proto_rawDescGZIP(), []int{1} +} + +func (x *OptionsOut) GetStatus() *Status { + if x != nil { + return x.Status + } + return nil +} + +func (x *OptionsOut) GetOptions() []*Option { + if x != nil { + return x.Options + } + return nil +} + // Status.result = true on sucess, status.result = false on failure. type Status struct { state protoimpl.MessageState @@ -37,7 +147,7 @@ type Status struct { func (x *Status) Reset() { *x = Status{} if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[0] + mi := &file_compositor_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50,7 +160,7 @@ func (x *Status) String() string { func (*Status) ProtoMessage() {} func (x *Status) ProtoReflect() protoreflect.Message { - mi := &file_compositor_proto_msgTypes[0] + mi := &file_compositor_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63,7 +173,7 @@ func (x *Status) ProtoReflect() protoreflect.Message { // Deprecated: Use Status.ProtoReflect.Descriptor instead. func (*Status) Descriptor() ([]byte, []int) { - return file_compositor_proto_rawDescGZIP(), []int{0} + return file_compositor_proto_rawDescGZIP(), []int{2} } func (x *Status) GetResult() bool { @@ -92,7 +202,7 @@ type SubAttesterID struct { func (x *SubAttesterID) Reset() { *x = SubAttesterID{} if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[1] + mi := &file_compositor_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -105,7 +215,7 @@ func (x *SubAttesterID) String() string { func (*SubAttesterID) ProtoMessage() {} func (x *SubAttesterID) ProtoReflect() protoreflect.Message { - mi := &file_compositor_proto_msgTypes[1] + mi := &file_compositor_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118,7 +228,7 @@ func (x *SubAttesterID) ProtoReflect() protoreflect.Message { // Deprecated: Use SubAttesterID.ProtoReflect.Descriptor instead. func (*SubAttesterID) Descriptor() ([]byte, []int) { - return file_compositor_proto_rawDescGZIP(), []int{1} + return file_compositor_proto_rawDescGZIP(), []int{3} } func (x *SubAttesterID) GetName() string { @@ -147,7 +257,7 @@ type SubAttesterIDOut struct { func (x *SubAttesterIDOut) Reset() { *x = SubAttesterIDOut{} if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[2] + mi := &file_compositor_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -160,7 +270,7 @@ func (x *SubAttesterIDOut) String() string { func (*SubAttesterIDOut) ProtoMessage() {} func (x *SubAttesterIDOut) ProtoReflect() protoreflect.Message { - mi := &file_compositor_proto_msgTypes[2] + mi := &file_compositor_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -173,7 +283,7 @@ func (x *SubAttesterIDOut) ProtoReflect() protoreflect.Message { // Deprecated: Use SubAttesterIDOut.ProtoReflect.Descriptor instead. func (*SubAttesterIDOut) Descriptor() ([]byte, []int) { - return file_compositor_proto_rawDescGZIP(), []int{2} + return file_compositor_proto_rawDescGZIP(), []int{4} } func (x *SubAttesterIDOut) GetStatus() *Status { @@ -202,7 +312,7 @@ type Format struct { func (x *Format) Reset() { *x = Format{} if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[3] + mi := &file_compositor_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -215,7 +325,7 @@ func (x *Format) String() string { func (*Format) ProtoMessage() {} func (x *Format) ProtoReflect() protoreflect.Message { - mi := &file_compositor_proto_msgTypes[3] + mi := &file_compositor_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -228,7 +338,7 @@ func (x *Format) ProtoReflect() protoreflect.Message { // Deprecated: Use Format.ProtoReflect.Descriptor instead. func (*Format) Descriptor() ([]byte, []int) { - return file_compositor_proto_rawDescGZIP(), []int{3} + return file_compositor_proto_rawDescGZIP(), []int{5} } func (x *Format) GetContentType() string { @@ -257,7 +367,7 @@ type SupportedFormatsOut struct { func (x *SupportedFormatsOut) Reset() { *x = SupportedFormatsOut{} if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[4] + mi := &file_compositor_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -270,7 +380,7 @@ func (x *SupportedFormatsOut) String() string { func (*SupportedFormatsOut) ProtoMessage() {} func (x *SupportedFormatsOut) ProtoReflect() protoreflect.Message { - mi := &file_compositor_proto_msgTypes[4] + mi := &file_compositor_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -283,7 +393,7 @@ func (x *SupportedFormatsOut) ProtoReflect() protoreflect.Message { // Deprecated: Use SupportedFormatsOut.ProtoReflect.Descriptor instead. func (*SupportedFormatsOut) Descriptor() ([]byte, []int) { - return file_compositor_proto_rawDescGZIP(), []int{4} + return file_compositor_proto_rawDescGZIP(), []int{6} } func (x *SupportedFormatsOut) GetStatus() *Status { @@ -313,7 +423,7 @@ type EvidenceIn struct { func (x *EvidenceIn) Reset() { *x = EvidenceIn{} if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[5] + mi := &file_compositor_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -326,7 +436,7 @@ func (x *EvidenceIn) String() string { func (*EvidenceIn) ProtoMessage() {} func (x *EvidenceIn) ProtoReflect() protoreflect.Message { - mi := &file_compositor_proto_msgTypes[5] + mi := &file_compositor_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -339,7 +449,7 @@ func (x *EvidenceIn) ProtoReflect() protoreflect.Message { // Deprecated: Use EvidenceIn.ProtoReflect.Descriptor instead. func (*EvidenceIn) Descriptor() ([]byte, []int) { - return file_compositor_proto_rawDescGZIP(), []int{5} + return file_compositor_proto_rawDescGZIP(), []int{7} } func (x *EvidenceIn) GetContentType() string { @@ -375,7 +485,7 @@ type EvidenceOut struct { func (x *EvidenceOut) Reset() { *x = EvidenceOut{} if protoimpl.UnsafeEnabled { - mi := &file_compositor_proto_msgTypes[6] + mi := &file_compositor_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -388,7 +498,7 @@ func (x *EvidenceOut) String() string { func (*EvidenceOut) ProtoMessage() {} func (x *EvidenceOut) ProtoReflect() protoreflect.Message { - mi := &file_compositor_proto_msgTypes[6] + mi := &file_compositor_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -401,7 +511,7 @@ func (x *EvidenceOut) ProtoReflect() protoreflect.Message { // Deprecated: Use EvidenceOut.ProtoReflect.Descriptor instead. func (*EvidenceOut) Descriptor() ([]byte, []int) { - return file_compositor_proto_rawDescGZIP(), []int{6} + return file_compositor_proto_rawDescGZIP(), []int{8} } func (x *EvidenceOut) GetStatus() *Status { @@ -424,64 +534,77 @@ var file_compositor_proto_rawDesc = []byte{ 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x36, 0x0a, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x22, 0x3d, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x7f, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x49, 0x44, 0x4f, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x49, 0x44, 0x22, 0x48, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x20, 0x0a, - 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x09, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x6f, 0x0a, - 0x13, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x73, 0x4f, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x2c, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x46, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x22, 0x5e, - 0x0a, 0x0a, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6e, - 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x55, - 0x0a, 0x0b, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x12, 0x2a, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x76, 0x69, - 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x76, 0x69, - 0x64, 0x65, 0x6e, 0x63, 0x65, 0x32, 0xe6, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x12, 0x48, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x75, - 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x4f, 0x75, 0x74, 0x12, 0x4e, - 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x4f, 0x75, 0x74, 0x12, 0x3e, - 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x30, 0x0a, 0x06, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x66, 0x0a, + 0x0a, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x36, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x3d, 0x0a, + 0x0d, 0x53, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x7f, 0x0a, 0x10, + 0x53, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x4f, 0x75, 0x74, + 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x2e, 0x53, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0d, + 0x73, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x22, 0x48, 0x0a, + 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x6e, + 0x63, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6e, 0x6f, + 0x6e, 0x63, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x6f, 0x0a, 0x13, 0x53, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x4f, 0x75, 0x74, 0x12, 0x2a, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, + 0x07, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x22, 0x5e, 0x0a, 0x0a, 0x45, 0x76, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x55, 0x0a, 0x0b, 0x45, 0x76, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x32, + 0xa4, 0x02, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x3c, + 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x12, 0x48, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x4f, 0x75, 0x74, 0x12, 0x4e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x4f, 0x75, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x45, 0x76, 0x69, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x2e, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x1a, 0x17, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x76, 0x69, 0x64, 0x65, - 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x1a, 0x17, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x2e, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x42, 0x2c, - 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x65, 0x72, - 0x61, 0x69, 0x73, 0x6f, 0x6e, 0x2f, 0x72, 0x61, 0x74, 0x73, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x65, 0x72, 0x61, 0x69, 0x73, 0x6f, 0x6e, 0x2f, 0x72, 0x61, + 0x74, 0x73, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -496,34 +619,40 @@ func file_compositor_proto_rawDescGZIP() []byte { return file_compositor_proto_rawDescData } -var file_compositor_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_compositor_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_compositor_proto_goTypes = []interface{}{ - (*Status)(nil), // 0: compositor.Status - (*SubAttesterID)(nil), // 1: compositor.SubAttesterID - (*SubAttesterIDOut)(nil), // 2: compositor.SubAttesterIDOut - (*Format)(nil), // 3: compositor.Format - (*SupportedFormatsOut)(nil), // 4: compositor.SupportedFormatsOut - (*EvidenceIn)(nil), // 5: compositor.EvidenceIn - (*EvidenceOut)(nil), // 6: compositor.EvidenceOut - (*emptypb.Empty)(nil), // 7: google.protobuf.Empty + (*Option)(nil), // 0: compositor.Option + (*OptionsOut)(nil), // 1: compositor.OptionsOut + (*Status)(nil), // 2: compositor.Status + (*SubAttesterID)(nil), // 3: compositor.SubAttesterID + (*SubAttesterIDOut)(nil), // 4: compositor.SubAttesterIDOut + (*Format)(nil), // 5: compositor.Format + (*SupportedFormatsOut)(nil), // 6: compositor.SupportedFormatsOut + (*EvidenceIn)(nil), // 7: compositor.EvidenceIn + (*EvidenceOut)(nil), // 8: compositor.EvidenceOut + (*emptypb.Empty)(nil), // 9: google.protobuf.Empty } var file_compositor_proto_depIdxs = []int32{ - 0, // 0: compositor.SubAttesterIDOut.status:type_name -> compositor.Status - 1, // 1: compositor.SubAttesterIDOut.subAttesterID:type_name -> compositor.SubAttesterID - 0, // 2: compositor.SupportedFormatsOut.status:type_name -> compositor.Status - 3, // 3: compositor.SupportedFormatsOut.formats:type_name -> compositor.Format - 0, // 4: compositor.EvidenceOut.status:type_name -> compositor.Status - 7, // 5: compositor.Compositor.GetSubAttesterID:input_type -> google.protobuf.Empty - 7, // 6: compositor.Compositor.GetSupportedFormats:input_type -> google.protobuf.Empty - 5, // 7: compositor.Compositor.GetEvidence:input_type -> compositor.EvidenceIn - 2, // 8: compositor.Compositor.GetSubAttesterID:output_type -> compositor.SubAttesterIDOut - 4, // 9: compositor.Compositor.GetSupportedFormats:output_type -> compositor.SupportedFormatsOut - 6, // 10: compositor.Compositor.GetEvidence:output_type -> compositor.EvidenceOut - 8, // [8:11] is the sub-list for method output_type - 5, // [5:8] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name + 2, // 0: compositor.OptionsOut.status:type_name -> compositor.Status + 0, // 1: compositor.OptionsOut.options:type_name -> compositor.Option + 2, // 2: compositor.SubAttesterIDOut.status:type_name -> compositor.Status + 3, // 3: compositor.SubAttesterIDOut.subAttesterID:type_name -> compositor.SubAttesterID + 2, // 4: compositor.SupportedFormatsOut.status:type_name -> compositor.Status + 5, // 5: compositor.SupportedFormatsOut.formats:type_name -> compositor.Format + 2, // 6: compositor.EvidenceOut.status:type_name -> compositor.Status + 9, // 7: compositor.Compositor.GetOptions:input_type -> google.protobuf.Empty + 9, // 8: compositor.Compositor.GetSubAttesterID:input_type -> google.protobuf.Empty + 9, // 9: compositor.Compositor.GetSupportedFormats:input_type -> google.protobuf.Empty + 7, // 10: compositor.Compositor.GetEvidence:input_type -> compositor.EvidenceIn + 1, // 11: compositor.Compositor.GetOptions:output_type -> compositor.OptionsOut + 4, // 12: compositor.Compositor.GetSubAttesterID:output_type -> compositor.SubAttesterIDOut + 6, // 13: compositor.Compositor.GetSupportedFormats:output_type -> compositor.SupportedFormatsOut + 8, // 14: compositor.Compositor.GetEvidence:output_type -> compositor.EvidenceOut + 11, // [11:15] is the sub-list for method output_type + 7, // [7:11] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_compositor_proto_init() } @@ -533,7 +662,7 @@ func file_compositor_proto_init() { } if !protoimpl.UnsafeEnabled { file_compositor_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Status); i { + switch v := v.(*Option); i { case 0: return &v.state case 1: @@ -545,7 +674,7 @@ func file_compositor_proto_init() { } } file_compositor_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubAttesterID); i { + switch v := v.(*OptionsOut); i { case 0: return &v.state case 1: @@ -557,7 +686,7 @@ func file_compositor_proto_init() { } } file_compositor_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubAttesterIDOut); i { + switch v := v.(*Status); i { case 0: return &v.state case 1: @@ -569,7 +698,7 @@ func file_compositor_proto_init() { } } file_compositor_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Format); i { + switch v := v.(*SubAttesterID); i { case 0: return &v.state case 1: @@ -581,7 +710,7 @@ func file_compositor_proto_init() { } } file_compositor_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SupportedFormatsOut); i { + switch v := v.(*SubAttesterIDOut); i { case 0: return &v.state case 1: @@ -593,7 +722,7 @@ func file_compositor_proto_init() { } } file_compositor_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EvidenceIn); i { + switch v := v.(*Format); i { case 0: return &v.state case 1: @@ -605,6 +734,30 @@ func file_compositor_proto_init() { } } file_compositor_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SupportedFormatsOut); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_compositor_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvidenceIn); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_compositor_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EvidenceOut); i { case 0: return &v.state @@ -623,7 +776,7 @@ func file_compositor_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_compositor_proto_rawDesc, NumEnums: 0, - NumMessages: 7, + NumMessages: 9, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/compositor/compositor_grpc.pb.go b/proto/compositor/compositor_grpc.pb.go index 341ef0c..e6a9f5b 100644 --- a/proto/compositor/compositor_grpc.pb.go +++ b/proto/compositor/compositor_grpc.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v5.29.3 +// - protoc v3.14.0 // source: compositor.proto package compositor @@ -23,6 +23,7 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( + Compositor_GetOptions_FullMethodName = "/compositor.Compositor/GetOptions" Compositor_GetSubAttesterID_FullMethodName = "/compositor.Compositor/GetSubAttesterID" Compositor_GetSupportedFormats_FullMethodName = "/compositor.Compositor/GetSupportedFormats" Compositor_GetEvidence_FullMethodName = "/compositor.Compositor/GetEvidence" @@ -32,6 +33,7 @@ const ( // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type CompositorClient interface { + GetOptions(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*OptionsOut, error) GetSubAttesterID(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*SubAttesterIDOut, error) GetSupportedFormats(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*SupportedFormatsOut, error) GetEvidence(ctx context.Context, in *EvidenceIn, opts ...grpc.CallOption) (*EvidenceOut, error) @@ -45,6 +47,16 @@ func NewCompositorClient(cc grpc.ClientConnInterface) CompositorClient { return &compositorClient{cc} } +func (c *compositorClient) GetOptions(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*OptionsOut, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(OptionsOut) + err := c.cc.Invoke(ctx, Compositor_GetOptions_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *compositorClient) GetSubAttesterID(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*SubAttesterIDOut, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(SubAttesterIDOut) @@ -79,6 +91,7 @@ func (c *compositorClient) GetEvidence(ctx context.Context, in *EvidenceIn, opts // All implementations must embed UnimplementedCompositorServer // for forward compatibility. type CompositorServer interface { + GetOptions(context.Context, *emptypb.Empty) (*OptionsOut, error) GetSubAttesterID(context.Context, *emptypb.Empty) (*SubAttesterIDOut, error) GetSupportedFormats(context.Context, *emptypb.Empty) (*SupportedFormatsOut, error) GetEvidence(context.Context, *EvidenceIn) (*EvidenceOut, error) @@ -92,6 +105,9 @@ type CompositorServer interface { // pointer dereference when methods are called. type UnimplementedCompositorServer struct{} +func (UnimplementedCompositorServer) GetOptions(context.Context, *emptypb.Empty) (*OptionsOut, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetOptions not implemented") +} func (UnimplementedCompositorServer) GetSubAttesterID(context.Context, *emptypb.Empty) (*SubAttesterIDOut, error) { return nil, status.Errorf(codes.Unimplemented, "method GetSubAttesterID not implemented") } @@ -122,6 +138,24 @@ func RegisterCompositorServer(s grpc.ServiceRegistrar, srv CompositorServer) { s.RegisterService(&Compositor_ServiceDesc, srv) } +func _Compositor_GetOptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CompositorServer).GetOptions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Compositor_GetOptions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CompositorServer).GetOptions(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + func _Compositor_GetSubAttesterID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(emptypb.Empty) if err := dec(in); err != nil { @@ -183,6 +217,10 @@ var Compositor_ServiceDesc = grpc.ServiceDesc{ ServiceName: "compositor.Compositor", HandlerType: (*CompositorServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "GetOptions", + Handler: _Compositor_GetOptions_Handler, + }, { MethodName: "GetSubAttesterID", Handler: _Compositor_GetSubAttesterID_Handler,