| @@ -1,22 +1,30 @@ | | | @@ -1,22 +1,30 @@ |
1 | $NetBSD: patch-ab,v 1.3 2008/11/28 13:47:51 adam Exp $ | | 1 | $NetBSD: patch-ab,v 1.4 2009/07/10 19:21:28 hasso Exp $ |
2 | | | 2 | |
3 | --- src/lib/crypto.c.orig 2008-11-28 13:50:13.000000000 +0100 | | 3 | --- ./src/lib/crypto.c.orig 2008-11-06 21:10:08 +0200 |
4 | +++ src/lib/crypto.c | | 4 | +++ ./src/lib/crypto.c 2009-07-10 13:27:39 +0300 |
5 | @@ -1099,7 +1099,7 @@ CRYPTO_SESSION *crypto_session_new (cryp | | 5 | @@ -1099,7 +1099,11 @@ CRYPTO_SESSION *crypto_session_new (cryp |
6 | /* Encrypt the session key */ | | 6 | /* Encrypt the session key */ |
7 | ekey = (unsigned char *)malloc(EVP_PKEY_size(keypair->pubkey)); | | 7 | ekey = (unsigned char *)malloc(EVP_PKEY_size(keypair->pubkey)); |
8 | | | 8 | |
9 | - if ((ekey_len = EVP_PKEY_encrypt(ekey, cs->session_key, cs->session_key_len, keypair->pubkey)) <= 0) { | | 9 | +#if OPENSSL_VERSION_NUMBER >= 0x00909000L |
10 | + if ((ekey_len = EVP_PKEY_encrypt_old(ekey, cs->session_key, cs->session_key_len, keypair->pubkey)) <= 0) { | | 10 | + if ((ekey_len = EVP_PKEY_encrypt_old(ekey, cs->session_key, cs->session_key_len, keypair->pubkey)) <= 0) { |
| | | 11 | +#else |
| | | 12 | if ((ekey_len = EVP_PKEY_encrypt(ekey, cs->session_key, cs->session_key_len, keypair->pubkey)) <= 0) { |
| | | 13 | +#endif |
11 | /* OpenSSL failure */ | | 14 | /* OpenSSL failure */ |
12 | RecipientInfo_free(ri); | | 15 | RecipientInfo_free(ri); |
13 | crypto_session_free(cs); | | 16 | crypto_session_free(cs); |
14 | @@ -1222,7 +1222,7 @@ crypto_error_t crypto_session_decode(con | | 17 | @@ -1222,8 +1226,13 @@ crypto_error_t crypto_session_decode(con |
15 | /* Decrypt the session key */ | | 18 | /* Decrypt the session key */ |
16 | /* Allocate sufficient space for the largest possible decrypted data */ | | 19 | /* Allocate sufficient space for the largest possible decrypted data */ |
17 | cs->session_key = (unsigned char *)malloc(EVP_PKEY_size(keypair->privkey)); | | 20 | cs->session_key = (unsigned char *)malloc(EVP_PKEY_size(keypair->privkey)); |
18 | - cs->session_key_len = EVP_PKEY_decrypt(cs->session_key, M_ASN1_STRING_data(ri->encryptedKey), | | 21 | +#if OPENSSL_VERSION_NUMBER >= 0x00909000L |
19 | + cs->session_key_len = EVP_PKEY_decrypt_old(cs->session_key, M_ASN1_STRING_data(ri->encryptedKey), | | 22 | + cs->session_key_len = EVP_PKEY_decrypt_old(cs->session_key, M_ASN1_STRING_data(ri->encryptedKey), |
| | | 23 | + M_ASN1_STRING_length(ri->encryptedKey), keypair->privkey); |
| | | 24 | +#else |
| | | 25 | cs->session_key_len = EVP_PKEY_decrypt(cs->session_key, M_ASN1_STRING_data(ri->encryptedKey), |
20 | M_ASN1_STRING_length(ri->encryptedKey), keypair->privkey); | | 26 | M_ASN1_STRING_length(ri->encryptedKey), keypair->privkey); |
| | | 27 | +#endif |
21 | | | 28 | |
22 | if (cs->session_key_len <= 0) { | | 29 | if (cs->session_key_len <= 0) { |
| | | 30 | openssl_post_errors(M_ERROR, _("Failure decrypting the session key")); |