@@ -376,7 +376,23 @@ contract ECDSACertificateVerifierUnitTests_verifyCertificate is ECDSACertificate
376376 sig: "" // Empty signatures
377377 });
378378
379- vm.expectRevert (InvalidSignatureLength.selector );
379+ vm.expectRevert (IECDSACertificateVerifierTypes.InvalidSignatureLength.selector );
380+ verifier.verifyCertificate (defaultOperatorSet, cert);
381+ }
382+
383+ function test_revert_invalidSignatureLength () public {
384+ uint32 referenceTimestamp = _initializeOperatorTableBase ();
385+
386+ // Create certificate with wrong signature length (not a multiple of 65)
387+ bytes memory invalidLengthSig = new bytes (64 ); // Should be 65 bytes for ECDSA
388+
389+ IECDSACertificateVerifierTypes.ECDSACertificate memory cert = IECDSACertificateVerifierTypes.ECDSACertificate ({
390+ referenceTimestamp: referenceTimestamp,
391+ messageHash: defaultMsgHash,
392+ sig: invalidLengthSig
393+ });
394+
395+ vm.expectRevert (IECDSACertificateVerifierTypes.InvalidSignatureLength.selector );
380396 verifier.verifyCertificate (defaultOperatorSet, cert);
381397 }
382398
@@ -423,8 +439,9 @@ contract ECDSACertificateVerifierUnitTests_verifyCertificate is ECDSACertificate
423439 // Modify the certificate to use a different message hash
424440 cert.messageHash = keccak256 ("different message " );
425441
426- // Verification should fail
427- vm.expectRevert (VerificationFailed.selector );
442+ // Verification should fail - expect SignersNotOrdered because signature recovery
443+ // with wrong message hash produces different addresses that break ordering
444+ vm.expectRevert (IECDSACertificateVerifierTypes.SignersNotOrdered.selector );
428445 verifier.verifyCertificate (defaultOperatorSet, cert);
429446 }
430447
@@ -678,7 +695,7 @@ contract ECDSACertificateVerifierUnitTests_verifyCertificate is ECDSACertificate
678695 });
679696
680697 // Should revert because signatures are not ordered by address
681- vm.expectRevert (VerificationFailed .selector );
698+ vm.expectRevert (IECDSACertificateVerifierTypes.SignersNotOrdered .selector );
682699 verifier.verifyCertificate (defaultOperatorSet, cert);
683700 }
684701
@@ -713,7 +730,7 @@ contract ECDSACertificateVerifierUnitTests_verifyCertificate is ECDSACertificate
713730 });
714731
715732 // Should revert because signature recovery returns an error
716- vm.expectRevert (VerificationFailed .selector );
733+ vm.expectRevert (ISignatureUtilsMixinErrors.InvalidSignature .selector );
717734 verifier.verifyCertificate (defaultOperatorSet, cert);
718735 }
719736
@@ -748,7 +765,7 @@ contract ECDSACertificateVerifierUnitTests_verifyCertificate is ECDSACertificate
748765 sig: zeroRecoverySignature
749766 });
750767
751- // Should revert because recovered address is zero
768+ // Should revert because recovered address is zero - now throws VerificationFailed
752769 vm.expectRevert (VerificationFailed.selector );
753770 verifier.verifyCertificate (defaultOperatorSet, cert);
754771 }
0 commit comments