aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2008-10-31 17:05:40 +0000
committerMartin Willi <martin@strongswan.org>2008-10-31 17:05:40 +0000
commita13862be61af15a0b06cabd461740c916b744ad4 (patch)
tree00c641b9c15cca435ddeb2d8be3989a4ed26704d /src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c
parentb74bc4384c2b34970808d02bf4e1720ce2cb9b3e (diff)
downloadstrongswan-a13862be61af15a0b06cabd461740c916b744ad4.tar.bz2
strongswan-a13862be61af15a0b06cabd461740c916b744ad4.tar.xz
fixed crash in openssl signature verification if sizeof(size_t) != sizeof(int) (64bit)
Diffstat (limited to 'src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c')
-rw-r--r--src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c b/src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c
index fd10ab9c1..205220a3f 100644
--- a/src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c
+++ b/src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c
@@ -77,6 +77,7 @@ static bool build_emsa_pkcs1_signature(private_openssl_rsa_private_key_t *this,
int type, chunk_t data, chunk_t *signature)
{
bool success = FALSE;
+ u_int len;
const EVP_MD *hasher = EVP_get_digestbynid(type);
if (!hasher)
{
@@ -107,10 +108,11 @@ static bool build_emsa_pkcs1_signature(private_openssl_rsa_private_key_t *this,
*signature = chunk_alloc(RSA_size(this->rsa));
- if (!EVP_SignFinal(ctx, signature->ptr, &signature->len, key))
+ if (!EVP_SignFinal(ctx, signature->ptr, &len, key))
{
goto error;
}
+ signature->len = len;
success = TRUE;