changeset 20224:b5f3dc5f5fb2

lib-dcrypt: Fix strict type-punning warning
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Mon, 30 May 2016 22:33:29 +0300
parents 55f039c7ce82
children d7f5154677c2
files src/lib-dcrypt/dcrypt-openssl.c
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-dcrypt/dcrypt-openssl.c	Mon May 30 22:30:31 2016 +0300
+++ b/src/lib-dcrypt/dcrypt-openssl.c	Mon May 30 22:33:29 2016 +0300
@@ -697,8 +697,10 @@
 static
 bool dcrypt_openssl_generate_keypair(struct dcrypt_keypair *pair_r, enum dcrypt_key_type kind, unsigned int bits, const char *curve, const char **error_r)
 {
+	EVP_PKEY *pkey = NULL;
 	if (kind == DCRYPT_KEY_RSA) {
-		if (dcrypt_openssl_generate_rsa_key(bits, (EVP_PKEY**)&(pair_r->priv), error_r) == 0) {
+		if (dcrypt_openssl_generate_rsa_key(bits, &pkey, error_r) == 0) {
+			pair_r->priv = (struct dcrypt_private_key*)pkey;
 			return dcrypt_openssl_private_to_public_key(pair_r->priv, &(pair_r->pub), error_r);
 		} else return dcrypt_openssl_error(error_r);
 	} else if (kind == DCRYPT_KEY_EC) {
@@ -708,7 +710,8 @@
 				*error_r = t_strdup_printf("Unknown EC curve %s", curve);
 			return FALSE;
 		}
-		if (dcrypt_openssl_generate_ec_key(nid, (EVP_PKEY**)&(pair_r->priv), error_r) == 0) {
+		if (dcrypt_openssl_generate_ec_key(nid, &pkey, error_r) == 0) {
+			pair_r->priv = (struct dcrypt_private_key*)pkey;
 			return dcrypt_openssl_private_to_public_key(pair_r->priv, &(pair_r->pub), error_r);
 		} else return dcrypt_openssl_error(error_r);
 	}