diff options
| author | Kaleb S. KEITHLEY <kkeithle@redhat.com> | 2016-10-25 13:34:54 -0400 | 
|---|---|---|
| committer | Jeff Darcy <jdarcy@redhat.com> | 2016-10-27 11:46:12 -0700 | 
| commit | c6a8a4739f45a4f877c561f72dd936d8f5741ae8 (patch) | |
| tree | 9c0bf370382140b13cf30583c2ed0a32f67bbc6d | |
| parent | c3955f1ef6e01c04c2462f5ddb46800af2aee317 (diff) | |
crypt: changes needed for openssl-1.1 (coming in Fedora 26)
Fedora has updated openssl-1.1.0b in/for Fedora 26
HMAC_CTX is now an opaque type and instances of it must be
created and released by calling HMAC_CTX_new() and
HMAC_CTX_free().
Change-Id: I3a09751d7b0d9fc25fe18aac6527e5431e9ab19a
BUG: 1388579
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
Reviewed-on: http://review.gluster.org/15726
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
| -rw-r--r-- | xlators/encryption/crypt/src/keys.c | 21 | 
1 files changed, 17 insertions, 4 deletions
diff --git a/xlators/encryption/crypt/src/keys.c b/xlators/encryption/crypt/src/keys.c index 0b243d3e827..e9da55960c8 100644 --- a/xlators/encryption/crypt/src/keys.c +++ b/xlators/encryption/crypt/src/keys.c @@ -113,29 +113,42 @@ static int32_t kderive_init(struct kderive_context *ctx,  static void kderive_update(struct kderive_context *ctx)  {  	uint32_t i; +#if (OPENSSL_VERSION_NUMBER < 0x1010002f)  	HMAC_CTX hctx; +#endif +        HMAC_CTX *phctx = NULL;  	unsigned char *pos = ctx->out;  	uint32_t *p_iter = (uint32_t *)ctx->fid;  	uint32_t num_iters = ctx->out_len / PRF_OUTPUT_SIZE;  	check_prf_iters(num_iters); +#if (OPENSSL_VERSION_NUMBER < 0x1010002f)  	HMAC_CTX_init(&hctx); +        phctx = &hctx; +#else +        phctx = HMAC_CTX_new(); +        /* I guess we presume it was successful? */ +#endif  	for (i = 0; i < num_iters; i++) {  		/*  		 * update the iteration number in the fid  		 */  		*p_iter = htobe32(i); -		HMAC_Init_ex(&hctx, +		HMAC_Init_ex(phctx,  			     ctx->pkey, ctx->pkey_len >> 3,  			     EVP_sha256(),  			     NULL); -		HMAC_Update(&hctx, ctx->fid, ctx->fid_len); -		HMAC_Final(&hctx, pos, NULL); +		HMAC_Update(phctx, ctx->fid, ctx->fid_len); +		HMAC_Final(phctx, pos, NULL);  		pos += PRF_OUTPUT_SIZE;  	} -	HMAC_CTX_cleanup(&hctx); +#if (OPENSSL_VERSION_NUMBER < 0x1010002f) +	HMAC_CTX_cleanup(phctx); +#else +        HMAC_CTX_free(phctx); +#endif  }  static void kderive_final(struct kderive_context *ctx, unsigned char *child)  | 
