@@ -258,6 +258,46 @@ func TestInclusion(t *testing.T) {
258258 },
259259 wantErr : true ,
260260 },
261+ {
262+ name : "invalid inclusion - negative log index" ,
263+ e : models.LogEntryAnon {
264+ Body : "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoicmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlY2RjNTUzNmY3M2JkYWU4ODE2ZjBlYTQwNzI2ZWY1ZTliODEwZDkxNDQ5MzA3NTkwM2JiOTA2MjNkOTdiMWQ4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUQvUGRQUW1LV0MxKzBCTkVkNWdLdlFHcjF4eGwzaWVVZmZ2M2prMXp6Skt3SWhBTEJqM3hmQXlXeGx6NGpwb0lFSVYxVWZLOXZua1VVT1NvZVp4QlpQSEtQQyIsImZvcm1hdCI6Ing1MDkiLCJwdWJsaWNLZXkiOnsiY29udGVudCI6IkxTMHRMUzFDUlVkSlRpQlFWVUpNU1VNZ1MwVlpMUzB0TFMwS1RVWnJkMFYzV1VoTGIxcEplbW93UTBGUldVbExiMXBKZW1vd1JFRlJZMFJSWjBGRlRVOWpWR1pTUWxNNWFtbFlUVGd4UmxvNFoyMHZNU3R2YldWTmR3cHRiaTh6TkRjdk5UVTJaeTlzY21sVE56SjFUV2haT1V4alZDczFWVW8yWmtkQ1oyeHlOVm80VERCS1RsTjFZWE41WldRNVQzUmhVblozUFQwS0xTMHRMUzFGVGtRZ1VGVkNURWxESUV0RldTMHRMUzB0Q2c9PSJ9fX19" ,
265+ IntegratedTime : & time ,
266+ LogID : & logID ,
267+ LogIndex : conv .Pointer (int64 (- 1 )), // <- invalid
268+ Verification : & models.LogEntryAnonVerification {
269+ InclusionProof : & models.InclusionProof {
270+ TreeSize : conv .Pointer (int64 (2 )),
271+ RootHash : conv .Pointer ("5be1758dd2228acfaf2546b4b6ce8aa40c82a3748f3dcb550e0d67ba34f02a45" ),
272+ LogIndex : conv .Pointer (int64 (- 1 )), // <- invalid
273+ Hashes : []string {
274+ "59a575f157274702c38de3ab1e1784226f391fb79500ebf9f02b4439fb77574c" ,
275+ },
276+ },
277+ },
278+ },
279+ wantErr : true ,
280+ },
281+ {
282+ name : "invalid inclusion - negative tree size" ,
283+ e : models.LogEntryAnon {
284+ Body : "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoicmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlY2RjNTUzNmY3M2JkYWU4ODE2ZjBlYTQwNzI2ZWY1ZTliODEwZDkxNDQ5MzA3NTkwM2JiOTA2MjNkOTdiMWQ4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUQvUGRQUW1LV0MxKzBCTkVkNWdLdlFHcjF4eGwzaWVVZmZ2M2prMXp6Skt3SWhBTEJqM3hmQXlXeGx6NGpwb0lFSVYxVWZLOXZua1VVT1NvZVp4QlpQSEtQQyIsImZvcm1hdCI6Ing1MDkiLCJwdWJsaWNLZXkiOnsiY29udGVudCI6IkxTMHRMUzFDUlVkSlRpQlFWVUpNU1VNZ1MwVlpMUzB0TFMwS1RVWnJkMFYzV1VoTGIxcEplbW93UTBGUldVbExiMXBKZW1vd1JFRlJZMFJSWjBGRlRVOWpWR1pTUWxNNWFtbFlUVGd4UmxvNFoyMHZNU3R2YldWTmR3cHRiaTh6TkRjdk5UVTJaeTlzY21sVE56SjFUV2haT1V4alZDczFWVW8yWmtkQ1oyeHlOVm80VERCS1RsTjFZWE41WldRNVQzUmhVblozUFQwS0xTMHRMUzFGVGtRZ1VGVkNURWxESUV0RldTMHRMUzB0Q2c9PSJ9fX19" ,
285+ IntegratedTime : & time ,
286+ LogID : & logID ,
287+ LogIndex : conv .Pointer (int64 (1 )),
288+ Verification : & models.LogEntryAnonVerification {
289+ InclusionProof : & models.InclusionProof {
290+ TreeSize : conv .Pointer (int64 (- 10 )), // <- invalid
291+ RootHash : conv .Pointer ("5be1758dd2228acfaf2546b4b6ce8aa40c82a3748f3dcb550e0d67ba34f02a45" ),
292+ LogIndex : conv .Pointer (int64 (1 )),
293+ Hashes : []string {
294+ "59a575f157274702c38de3ab1e1784226f391fb79500ebf9f02b4439fb77574c" ,
295+ },
296+ },
297+ },
298+ },
299+ wantErr : true ,
300+ },
261301 } {
262302 t .Run (string (test .name ), func (t * testing.T ) {
263303 ctx := context .Background ()
0 commit comments