diff options
author | Martin Willi <martin@strongswan.org> | 2008-10-31 17:05:40 +0000 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2008-10-31 17:05:40 +0000 |
commit | a13862be61af15a0b06cabd461740c916b744ad4 (patch) | |
tree | 00c641b9c15cca435ddeb2d8be3989a4ed26704d /src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c | |
parent | b74bc4384c2b34970808d02bf4e1720ce2cb9b3e (diff) | |
download | strongswan-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.c | 4 |
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; |