From a13862be61af15a0b06cabd461740c916b744ad4 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Fri, 31 Oct 2008 17:05:40 +0000 Subject: fixed crash in openssl signature verification if sizeof(size_t) != sizeof(int) (64bit) --- src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c') 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; -- cgit v1.2.3