@@ -263,17 +263,17 @@ func (s *reputationServer) makeResponseMetaHeader(st *protostatus.Status) *proto
263263 }
264264}
265265
266- func (s * reputationServer ) makeLocalResponse (err error ) (* protoreputation.AnnounceLocalTrustResponse , error ) {
266+ func (s * reputationServer ) makeLocalResponse (err error , req * protoreputation. AnnounceLocalTrustRequest ) (* protoreputation.AnnounceLocalTrustResponse , error ) {
267267 resp := & protoreputation.AnnounceLocalTrustResponse {
268268 MetaHeader : s .makeResponseMetaHeader (util .ToStatus (err )),
269269 }
270- resp .VerifyHeader = util .SignResponse (& s .key .PrivateKey , resp )
270+ resp .VerifyHeader = util .SignResponseIfNeeded (& s .key .PrivateKey , resp , req )
271271 return resp , nil
272272}
273273
274274func (s * reputationServer ) AnnounceLocalTrust (ctx context.Context , req * protoreputation.AnnounceLocalTrustRequest ) (* protoreputation.AnnounceLocalTrustResponse , error ) {
275275 if err := icrypto .VerifyRequestSignatures (req ); err != nil {
276- return s .makeLocalResponse (err )
276+ return s .makeLocalResponse (err , req )
277277 }
278278
279279 passedRoute := reverseRoute (req .GetVerifyHeader ())
@@ -288,30 +288,30 @@ func (s *reputationServer) AnnounceLocalTrust(ctx context.Context, req *protorep
288288
289289 w , err := s .localRouter .InitWriter (reputationrouter .NewRouteContext (eCtx , passedRoute ))
290290 if err != nil {
291- return s .makeLocalResponse (fmt .Errorf ("could not initialize local trust writer: %w" , err ))
291+ return s .makeLocalResponse (fmt .Errorf ("could not initialize local trust writer: %w" , err ), req )
292292 }
293293
294294 for _ , trust := range body .GetTrusts () {
295295 err = s .processLocalTrust (body .GetEpoch (), apiToLocalTrust (trust , passedRoute [0 ].PublicKey ()), passedRoute , w )
296296 if err != nil {
297- return s .makeLocalResponse (fmt .Errorf ("could not write one of local trusts: %w" , err ))
297+ return s .makeLocalResponse (fmt .Errorf ("could not write one of local trusts: %w" , err ), req )
298298 }
299299 }
300300
301- return s .makeLocalResponse (util .StatusOKErr )
301+ return s .makeLocalResponse (util .StatusOKErr , req )
302302}
303303
304- func (s * reputationServer ) makeIntermediateResponse (err error ) (* protoreputation.AnnounceIntermediateResultResponse , error ) {
304+ func (s * reputationServer ) makeIntermediateResponse (err error , req * protoreputation. AnnounceIntermediateResultRequest ) (* protoreputation.AnnounceIntermediateResultResponse , error ) {
305305 resp := & protoreputation.AnnounceIntermediateResultResponse {
306306 MetaHeader : s .makeResponseMetaHeader (util .ToStatus (err )),
307307 }
308- resp .VerifyHeader = util .SignResponse (& s .key .PrivateKey , resp )
308+ resp .VerifyHeader = util .SignResponseIfNeeded (& s .key .PrivateKey , resp , req )
309309 return resp , nil
310310}
311311
312312func (s * reputationServer ) AnnounceIntermediateResult (ctx context.Context , req * protoreputation.AnnounceIntermediateResultRequest ) (* protoreputation.AnnounceIntermediateResultResponse , error ) {
313313 if err := icrypto .VerifyRequestSignatures (req ); err != nil {
314- return s .makeIntermediateResponse (err )
314+ return s .makeIntermediateResponse (err , req )
315315 }
316316
317317 passedRoute := reverseRoute (req .GetVerifyHeader ())
@@ -323,7 +323,7 @@ func (s *reputationServer) AnnounceIntermediateResult(ctx context.Context, req *
323323
324324 w , err := s .intermediateRouter .InitWriter (reputationrouter .NewRouteContext (eiCtx , passedRoute ))
325325 if err != nil {
326- return s .makeIntermediateResponse (fmt .Errorf ("could not initialize trust writer: %w" , err ))
326+ return s .makeIntermediateResponse (fmt .Errorf ("could not initialize trust writer: %w" , err ), req )
327327 }
328328
329329 v2Trust := body .GetTrust ()
@@ -332,10 +332,10 @@ func (s *reputationServer) AnnounceIntermediateResult(ctx context.Context, req *
332332
333333 err = w .Write (trust )
334334 if err != nil {
335- return s .makeIntermediateResponse (fmt .Errorf ("could not write trust: %w" , err ))
335+ return s .makeIntermediateResponse (fmt .Errorf ("could not write trust: %w" , err ), req )
336336 }
337337
338- return s .makeIntermediateResponse (util .StatusOKErr )
338+ return s .makeIntermediateResponse (util .StatusOKErr , req )
339339}
340340
341341func (s * reputationServer ) processLocalTrust (epoch uint64 , t reputation.Trust ,
0 commit comments