@@ -35,7 +35,17 @@ func Test_ClientRequest_VerifyAttestation(t *testing.T) {
3535 kb2 , err := ocr2key .New (corekeys .EVM )
3636 require .NoError (t , err )
3737
38- reportData := commoncap .ResponseToReportData (workflowExecutionID , referenceID , valueBytes , spendUnit , spendValue )
38+ validResp := commoncap.CapabilityResponse {
39+ Metadata : commoncap.ResponseMetadata {
40+ Metering : []commoncap.MeteringNodeDetail {
41+ {SpendUnit : spendUnit , SpendValue : spendValue },
42+ },
43+ },
44+ Payload : & anypb.Any {TypeUrl : "type.googleapis.com/values.v1.Map" , Value : valueBytes },
45+ }
46+
47+ reportData , err := commoncap .ResponseToReportData (workflowExecutionID , referenceID , valueBytes , validResp .Metadata )
48+ require .NoError (t , err )
3949
4050 sig1 , err := kb1 .Sign3 (configDigest , seqNr , reportData [:])
4151 require .NoError (t , err )
@@ -44,6 +54,15 @@ func Test_ClientRequest_VerifyAttestation(t *testing.T) {
4454
4555 signers := [][]byte {kb1 .PublicKey (), kb2 .PublicKey ()}
4656
57+ validResp .OCRAttestation = & commoncap.OCRAttestation {
58+ ConfigDigest : configDigest ,
59+ SequenceNumber : seqNr ,
60+ Sigs : []commoncap.AttributedSignature {
61+ {Signer : 0 , Signature : sig1 },
62+ {Signer : 1 , Signature : sig2 },
63+ },
64+ }
65+
4766 c := & ClientRequest {
4867 lggr : logger .Test (t ),
4968 signers : signers ,
@@ -52,31 +71,14 @@ func Test_ClientRequest_VerifyAttestation(t *testing.T) {
5271 requiredResponseConfirmations : 2 ,
5372 }
5473
55- validResp := commoncap.CapabilityResponse {
56- Metadata : commoncap.ResponseMetadata {
57- Metering : []commoncap.MeteringNodeDetail {
58- {SpendUnit : spendUnit , SpendValue : spendValue },
59- },
60- OCRAttestation : & commoncap.ResponseOCRAttestation {
61- ConfigDigest : configDigest ,
62- SequenceNumber : seqNr ,
63- Sigs : []commoncap.AttributedSignature {
64- {Signer : 0 , Signature : sig1 },
65- {Signer : 1 , Signature : sig2 },
66- },
67- },
68- },
69- Payload : & anypb.Any {TypeUrl : "type.googleapis.com/values.v1.Map" , Value : valueBytes },
70- }
71-
7274 t .Run ("not enough signers returns error" , func (t * testing.T ) {
7375 cBad := & ClientRequest {
7476 workflowExecutionID : workflowExecutionID ,
7577 referenceID : referenceID ,
7678 lggr : logger .Test (t ),
7779 requiredResponseConfirmations : 2 ,
7880 }
79- err := cBad .verifyAttestation (validResp , validResp . Metadata . Metering [ 0 ] )
81+ err := cBad .verifyAttestation (validResp )
8082 require .Error (t , err )
8183 require .Contains (t , err .Error (), "number of configured OCR signers is less than required confirmations: got 0, need at least 2" )
8284 })
@@ -85,15 +87,15 @@ func Test_ClientRequest_VerifyAttestation(t *testing.T) {
8587 respFewSigs := commoncap.CapabilityResponse {
8688 Metadata : commoncap.ResponseMetadata {
8789 Metering : []commoncap.MeteringNodeDetail {{SpendUnit : spendUnit , SpendValue : spendValue }},
88- OCRAttestation : & commoncap.ResponseOCRAttestation {
89- ConfigDigest : configDigest ,
90- SequenceNumber : seqNr ,
91- Sigs : []commoncap.AttributedSignature {{Signer : 0 , Signature : sig1 }},
92- },
9390 },
9491 Payload : & anypb.Any {TypeUrl : "type.googleapis.com/values.v1.Map" , Value : valueBytes },
92+ OCRAttestation : & commoncap.OCRAttestation {
93+ ConfigDigest : configDigest ,
94+ SequenceNumber : seqNr ,
95+ Sigs : []commoncap.AttributedSignature {{Signer : 0 , Signature : sig1 }},
96+ },
9597 }
96- err := c .verifyAttestation (respFewSigs , validResp . Metadata . Metering [ 0 ] )
98+ err := c .verifyAttestation (respFewSigs )
9799 require .Error (t , err )
98100 require .Contains (t , err .Error (), "not enough signatures" )
99101 })
@@ -102,18 +104,18 @@ func Test_ClientRequest_VerifyAttestation(t *testing.T) {
102104 respBadSigner := commoncap.CapabilityResponse {
103105 Metadata : commoncap.ResponseMetadata {
104106 Metering : []commoncap.MeteringNodeDetail {{SpendUnit : spendUnit , SpendValue : spendValue }},
105- OCRAttestation : & commoncap.ResponseOCRAttestation {
106- ConfigDigest : configDigest ,
107- SequenceNumber : seqNr ,
108- Sigs : []commoncap.AttributedSignature {
109- {Signer : 0 , Signature : sig1 },
110- {Signer : 99 , Signature : sig2 },
111- },
112- },
113107 },
114108 Payload : & anypb.Any {TypeUrl : "type.googleapis.com/values.v1.Map" , Value : valueBytes },
109+ OCRAttestation : & commoncap.OCRAttestation {
110+ ConfigDigest : configDigest ,
111+ SequenceNumber : seqNr ,
112+ Sigs : []commoncap.AttributedSignature {
113+ {Signer : 0 , Signature : sig1 },
114+ {Signer : 99 , Signature : sig2 },
115+ },
116+ },
115117 }
116- err := c .verifyAttestation (respBadSigner , validResp . Metadata . Metering [ 0 ] )
118+ err := c .verifyAttestation (respBadSigner )
117119 require .Error (t , err )
118120 require .Contains (t , err .Error (), "invalid signer index" )
119121 })
@@ -122,18 +124,18 @@ func Test_ClientRequest_VerifyAttestation(t *testing.T) {
122124 respDupSig := commoncap.CapabilityResponse {
123125 Metadata : commoncap.ResponseMetadata {
124126 Metering : []commoncap.MeteringNodeDetail {{SpendUnit : spendUnit , SpendValue : spendValue }},
125- OCRAttestation : & commoncap.ResponseOCRAttestation {
126- ConfigDigest : configDigest ,
127- SequenceNumber : seqNr ,
128- Sigs : []commoncap.AttributedSignature {
129- {Signer : 0 , Signature : sig1 },
130- {Signer : 0 , Signature : sig1 },
131- },
132- },
133127 },
134128 Payload : & anypb.Any {TypeUrl : "type.googleapis.com/values.v1.Map" , Value : valueBytes },
129+ OCRAttestation : & commoncap.OCRAttestation {
130+ ConfigDigest : configDigest ,
131+ SequenceNumber : seqNr ,
132+ Sigs : []commoncap.AttributedSignature {
133+ {Signer : 0 , Signature : sig1 },
134+ {Signer : 0 , Signature : sig1 },
135+ },
136+ },
135137 }
136- err := c .verifyAttestation (respDupSig , validResp . Metadata . Metering [ 0 ] )
138+ err := c .verifyAttestation (respDupSig )
137139 require .Error (t , err )
138140 require .Contains (t , err .Error (), "duplicate signature" )
139141 })
@@ -145,18 +147,18 @@ func Test_ClientRequest_VerifyAttestation(t *testing.T) {
145147 respBadSig := commoncap.CapabilityResponse {
146148 Metadata : commoncap.ResponseMetadata {
147149 Metering : []commoncap.MeteringNodeDetail {{SpendUnit : spendUnit , SpendValue : spendValue }},
148- OCRAttestation : & commoncap.ResponseOCRAttestation {
149- ConfigDigest : configDigest ,
150- SequenceNumber : seqNr ,
151- Sigs : []commoncap.AttributedSignature {
152- {Signer : 0 , Signature : sig1 },
153- {Signer : 1 , Signature : badSig },
154- },
155- },
156150 },
157151 Payload : & anypb.Any {TypeUrl : "type.googleapis.com/values.v1.Map" , Value : valueBytes },
152+ OCRAttestation : & commoncap.OCRAttestation {
153+ ConfigDigest : configDigest ,
154+ SequenceNumber : seqNr ,
155+ Sigs : []commoncap.AttributedSignature {
156+ {Signer : 0 , Signature : sig1 },
157+ {Signer : 1 , Signature : badSig },
158+ },
159+ },
158160 }
159- err = c .verifyAttestation (respBadSig , validResp . Metadata . Metering [ 0 ] )
161+ err = c .verifyAttestation (respBadSig )
160162 require .Error (t , err )
161163 require .Contains (t , err .Error (), "invalid signature" )
162164 })
@@ -166,24 +168,24 @@ func Test_ClientRequest_VerifyAttestation(t *testing.T) {
166168 respWrongPayload := commoncap.CapabilityResponse {
167169 Metadata : commoncap.ResponseMetadata {
168170 Metering : []commoncap.MeteringNodeDetail {{SpendUnit : spendUnit , SpendValue : spendValue }},
169- OCRAttestation : & commoncap.ResponseOCRAttestation {
170- ConfigDigest : configDigest ,
171- SequenceNumber : seqNr ,
172- Sigs : []commoncap.AttributedSignature {
173- {Signer : 0 , Signature : sig1 },
174- {Signer : 1 , Signature : sig2 },
175- },
176- },
177171 },
178172 Payload : & anypb.Any {TypeUrl : "x" , Value : wrongBytes },
173+ OCRAttestation : & commoncap.OCRAttestation {
174+ ConfigDigest : configDigest ,
175+ SequenceNumber : seqNr ,
176+ Sigs : []commoncap.AttributedSignature {
177+ {Signer : 0 , Signature : sig1 },
178+ {Signer : 1 , Signature : sig2 },
179+ },
180+ },
179181 }
180- err := c .verifyAttestation (respWrongPayload , validResp . Metadata . Metering [ 0 ] )
182+ err := c .verifyAttestation (respWrongPayload )
181183 require .Error (t , err )
182184 require .Contains (t , err .Error (), "invalid signature" )
183185 })
184186
185187 t .Run ("valid attestation succeeds" , func (t * testing.T ) {
186- err := c .verifyAttestation (validResp , validResp . Metadata . Metering [ 0 ] )
188+ err := c .verifyAttestation (validResp )
187189 require .NoError (t , err )
188190 })
189191}
0 commit comments