components/trousers/patches/trspi_crypto_openssl_hash.c.patch
author Niveditha Rau <Niveditha.Rau@Oracle.COM>
Tue, 11 Oct 2016 11:08:35 -0700
changeset 7086 bad5d0bc7457
parent 777 e2e604cdbd6a
permissions -rw-r--r--
24829846 libxklavier upgrade broke keyboard gnome-keyboard-properties

--- src/trspi/crypto/openssl/hash.c.old	2011-05-09 06:20:09.505021734 -0700
+++ src/trspi/crypto/openssl/hash.c	2011-05-09 06:19:04.603252090 -0700
@@ -56,45 +56,21 @@
 TSS_RESULT
 Trspi_Hash(UINT32 HashType, UINT32 BufSize, BYTE* Buf, BYTE* Digest)
 {
-	EVP_MD_CTX md_ctx;
-	unsigned int result_size;
-	int rv;
+	Trspi_HashCtx ctx;
+	TSS_RESULT rv;
 
-	switch (HashType) {
-		case TSS_HASH_SHA1:
-			rv = EVP_DigestInit(&md_ctx, EVP_sha1());
-			break;
-		default:
-			rv = TSPERR(TSS_E_BAD_PARAMETER);
-			goto out;
-			break;
-	}
+	rv = Trspi_HashInit(&ctx, HashType);
+	if (rv != TSS_SUCCESS)
+		return rv;
 
-	if (rv != EVP_SUCCESS) {
-		rv = TSPERR(TSS_E_INTERNAL_ERROR);
-		goto err;
-	}
-
-	rv = EVP_DigestUpdate(&md_ctx, Buf, BufSize);
-	if (rv != EVP_SUCCESS) {
-		rv = TSPERR(TSS_E_INTERNAL_ERROR);
-		goto err;
+	rv = Trspi_HashUpdate(&ctx, BufSize, Buf);
+	if (rv != TSS_SUCCESS) {
+		EVP_MD_CTX_destroy(ctx.ctx);
+		return rv;
 	}
+	rv = Trspi_HashFinal(&ctx, Digest);
 
-	result_size = EVP_MD_CTX_size(&md_ctx);
-	rv = EVP_DigestFinal(&md_ctx, Digest, &result_size);
-	if (rv != EVP_SUCCESS) {
-		rv = TSPERR(TSS_E_INTERNAL_ERROR);
-		goto err;
-	} else
-		rv = TSS_SUCCESS;
-
-	goto out;
-
-err:
-	DEBUG_print_openssl_errors();
-out:
-        return rv;
+	return (rv);
 }
 
 TSS_RESULT
@@ -112,7 +88,8 @@
 			break;
 	}
 
-	if ((ctx->ctx = malloc(sizeof(EVP_MD_CTX))) == NULL)
+	ctx->ctx = EVP_MD_CTX_create();
+	if (ctx->ctx == NULL)
 		return TSPERR(TSS_E_OUTOFMEMORY);
 
 	rv = EVP_DigestInit((EVP_MD_CTX *)ctx->ctx, (const EVP_MD *)md);
@@ -142,7 +119,7 @@
 	rv = EVP_DigestUpdate(ctx->ctx, data, size);
 	if (rv != EVP_SUCCESS) {
 		DEBUG_print_openssl_errors();
-		free(ctx->ctx);
+		EVP_MD_CTX_destroy(ctx->ctx);
 		ctx->ctx = NULL;
 		return TSPERR(TSS_E_INTERNAL_ERROR);
 	}
@@ -164,7 +141,7 @@
 	if (rv != EVP_SUCCESS)
 		return TSPERR(TSS_E_INTERNAL_ERROR);
 
-	free(ctx->ctx);
+	EVP_MD_CTX_destroy(ctx->ctx);
 	ctx->ctx = NULL;
 
 	return TSS_SUCCESS;