OpenSSL requires a signature length of exactly RSA_size()

This commit is contained in:
Martin Willi
2008-11-04 14:05:42 +00:00
parent d4f08fe324
commit 7854475f42
@@ -90,13 +90,11 @@ static bool verify_emsa_pkcs1_signature(private_openssl_rsa_public_key_t *this,
goto error; goto error;
} }
/* remove any preceding 0-bytes from signature */ /* VerifyFinal expects a signature of exactly RSA size (no leading 0x00) */
while (signature.len && *(signature.ptr) == 0x00) if (signature.len > RSA_size(this->rsa))
{ {
signature.len -= 1; signature = chunk_skip(signature, signature.len - RSA_size(this->rsa));
signature.ptr++;
} }
valid = (EVP_VerifyFinal(ctx, signature.ptr, signature.len, key) == 1); valid = (EVP_VerifyFinal(ctx, signature.ptr, signature.len, key) == 1);
error: error: