diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c index bf8e7bc9..b8e02cac 100644 --- a/src/tools/pkcs11-tool.c +++ b/src/tools/pkcs11-tool.c @@ -2065,7 +2065,7 @@ static void verify_signature(CK_SLOT_ID slot, CK_SESSION_HANDLE session, rv = p11->C_Verify(session, in_buffer, r, sig_buffer, sig_len); } - if (rv != CKR_OK) { + if (rv != CKR_OK && rv != CKR_SIGNATURE_INVALID) { rv = p11->C_VerifyInit(session, &mech, key); if (rv != CKR_OK) p11_fatal("C_VerifyInit", rv); @@ -2080,7 +2080,7 @@ static void verify_signature(CK_SLOT_ID slot, CK_SESSION_HANDLE session, sig_len = r2; rv = p11->C_VerifyFinal(session, sig_buffer, sig_len); - if (rv != CKR_OK) + if (rv != CKR_OK && rv != CKR_SIGNATURE_INVALID) p11_fatal("C_VerifyFinal", rv); }