From e8b8ecd2f761430dd2e2c74505974b429fe6b40f Mon Sep 17 00:00:00 2001 From: Carlos Santos Date: Wed, 14 Nov 2018 23:31:25 -0200 Subject: [PATCH] ESYS: Fix build with LibreSSL RAND_bytes() is declared in rand.h. Also, LibreSSL does not provide OAEP macros EVP_PKEY_CTX_set0_rsa_oaep_label and EVP_PKEY_CTX_set_rsa_oaep_md so use them conditionally. Signed-off-by: Carlos Santos --- src/tss2-esys/esys_crypto_ossl.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/tss2-esys/esys_crypto_ossl.c b/src/tss2-esys/esys_crypto_ossl.c index 43088f4a..6c0c76fe 100644 --- a/src/tss2-esys/esys_crypto_ossl.c +++ b/src/tss2-esys/esys_crypto_ossl.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include "tss2_esys.h" @@ -660,6 +661,8 @@ iesys_cryptossl_pk_encrypt(TPM2B_PUBLIC * pub_tpm_key, "Could not set RSA passing.", cleanup); } +/* LibreSSL does not provide these OAEP functions */ +#ifdef EVP_PKEY_CTX_set0_rsa_oaep_label if (1 != EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, label, strlen(label)+1)) { goto_error(r, TSS2_ESYS_RC_GENERAL_FAILURE, "Could not set RSA label.", cleanup); @@ -669,6 +672,9 @@ iesys_cryptossl_pk_encrypt(TPM2B_PUBLIC * pub_tpm_key, goto_error(r, TSS2_ESYS_RC_GENERAL_FAILURE, "Could not set hash algorithm.", cleanup); } +#else + (void) label; +#endif /* Determine out size */ if (1 != EVP_PKEY_encrypt(ctx, NULL, out_size, in_buffer, in_size)) { -- 2.19.1