Index: emulators/virtualbox-ose/files/patch-src_VBox_Main_webservice_vboxweb.cpp =================================================================== --- /dev/null +++ emulators/virtualbox-ose/files/patch-src_VBox_Main_webservice_vboxweb.cpp @@ -0,0 +1,38 @@ +--- src/VBox/Main/webservice/vboxweb.cpp.orig 2022-10-18 13:03:55 UTC ++++ src/VBox/Main/webservice/vboxweb.cpp +@@ -760,7 +760,7 @@ static const char * decodeAuthResult(AuthResult result + } + } + +-#if defined(WITH_OPENSSL) && (OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)) ++#if defined(WITH_OPENSSL) && OPENSSL_VERSION_NUMBER < 0x10100000 + /**************************************************************************** + * + * OpenSSL convenience functions for multithread support. +@@ -866,7 +866,7 @@ static void CRYPTO_thread_cleanup() + RTMemFree(g_pSSLMutexes); + g_pSSLMutexes = NULL; + } +-#endif /* WITH_OPENSSL && (OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)) */ ++#endif /* WITH_OPENSSL && OPENSSL_VERSION_NUMBER < 0x10100000 + + /**************************************************************************** + * +@@ -876,7 +876,7 @@ static void CRYPTO_thread_cleanup() + + static void doQueuesLoop() + { +-#if defined(WITH_OPENSSL) && (OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)) ++#if defined(WITH_OPENSSL) && OPENSSL_VERSION_NUMBER < 0x10100000 + if (g_fSSL && CRYPTO_thread_setup()) + { + LogRel(("Failed to set up OpenSSL thread mutex!")); +@@ -983,7 +983,7 @@ static void doQueuesLoop() + } + soap_done(&soap); // close master socket and detach environment + +-#if defined(WITH_OPENSSL) && (OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)) ++#if defined(WITH_OPENSSL) && OPENSSL_VERSION_NUMBER < 0x10100000 + if (g_fSSL) + CRYPTO_thread_cleanup(); + #endif Index: emulators/virtualbox-ose/files/patch-src_VBox_RDP_client-1.8.4_ssl.c =================================================================== --- /dev/null +++ emulators/virtualbox-ose/files/patch-src_VBox_RDP_client-1.8.4_ssl.c @@ -0,0 +1,80 @@ +--- src/VBox/RDP/client-1.8.4/ssl.c.orig 2022-10-18 13:52:36 UTC ++++ src/VBox/RDP/client-1.8.4/ssl.c +@@ -97,7 +97,7 @@ void + rdssl_rsa_encrypt(uint8 * out, uint8 * in, int len, uint32 modulus_size, uint8 * modulus, + uint8 * exponent) + { +-#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000 + BN_CTX *ctx; + BIGNUM *mod, *exp, *x, *y; + uint8 inr[SEC_MAX_MODULUS_SIZE]; +@@ -128,7 +128,7 @@ rdssl_rsa_encrypt(uint8 * out, uint8 * in, int len, ui + BN_free(exp); + BN_free(mod); + BN_CTX_free(ctx); +-#else /* OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER) */ ++#else /* OPENSSL_VERSION_NUMBER < 0x10100000 */ + BN_CTX *ctx; + BIGNUM mod, exp, x, y; + uint8 inr[SEC_MAX_MODULUS_SIZE]; +@@ -159,7 +159,7 @@ rdssl_rsa_encrypt(uint8 * out, uint8 * in, int len, ui + BN_free(&exp); + BN_free(&mod); + BN_CTX_free(ctx); +-#endif /* OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER) */ ++#endif /* OPENSSL_VERSION_NUMBER < 0x10100000 */ + } + + /* returns newly allocated RDSSL_CERT or NULL */ +@@ -183,7 +183,7 @@ rdssl_cert_to_rkey(RDSSL_CERT * cert, uint32 * key_len + EVP_PKEY *epk = NULL; + RDSSL_RKEY *lkey; + int nid; +-#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000 + int ret; + + /* By some reason, Microsoft sets the OID of the Public RSA key to +@@ -217,7 +217,7 @@ rdssl_cert_to_rkey(RDSSL_CERT * cert, uint32 * key_len + X509_PUBKEY_set0_param(key, OBJ_nid2obj(NID_rsaEncryption), + 0, NULL, NULL, 0); + } +-#else /* OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER) */ ++#else /* OPENSSL_VERSION_NUMBER < 0x10100000 */ + nid = OBJ_obj2nid(cert->cert_info->key->algor->algorithm); + if ((nid == NID_md5WithRSAEncryption) || (nid == NID_shaWithRSAEncryption)) + { +@@ -225,7 +225,7 @@ rdssl_cert_to_rkey(RDSSL_CERT * cert, uint32 * key_len + ASN1_OBJECT_free(cert->cert_info->key->algor->algorithm); + cert->cert_info->key->algor->algorithm = OBJ_nid2obj(NID_rsaEncryption); + } +-#endif /* OPENSSL_VERSION_NUMBER < 0x10100000 || && defined(LIBRESSL_VERSION_NUMBER) */ ++#endif /* OPENSSL_VERSION_NUMBER < 0x10100000 */ + epk = X509_get_pubkey(cert); + if (NULL == epk) + { +@@ -274,7 +274,7 @@ rdssl_rkey_get_exp_mod(RDSSL_RKEY * rkey, uint8 * expo + { + int len; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000 + const BIGNUM *e, *n; + RSA_get0_key(rkey, &n, &e, NULL); + if ((BN_num_bytes(e) > (int) max_exp_len) || +@@ -316,12 +316,12 @@ void + rdssl_hmac_md5(const void *key, int key_len, const unsigned char *msg, int msg_len, + unsigned char *md) + { +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + HMAC_CTX ctx; + HMAC_CTX_init(&ctx); + #endif + HMAC(EVP_md5(), key, key_len, msg, msg_len, md, NULL); +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + HMAC_CTX_cleanup(&ctx); + #endif + } Index: emulators/virtualbox-ose/files/patch-src_VBox_Runtime_VBox_VBoxRTDeps.cpp =================================================================== --- /dev/null +++ emulators/virtualbox-ose/files/patch-src_VBox_Runtime_VBox_VBoxRTDeps.cpp @@ -0,0 +1,39 @@ +--- src/VBox/Runtime/VBox/VBoxRTDeps.cpp.orig 2022-10-18 13:05:13 UTC ++++ src/VBox/Runtime/VBox/VBoxRTDeps.cpp +@@ -76,16 +76,16 @@ PFNRT g_VBoxRTDeps[] = + (PFNRT)i2d_X509, + (PFNRT)i2d_X509, + (PFNRT)i2d_PublicKey, +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER) || defined(OPENSSL_MANGLER) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(OPENSSL_MANGLER) + (PFNRT)RSA_generate_key, /* gsoap */ + #endif + (PFNRT)RSA_generate_key_ex, +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER) || defined(OPENSSL_MANGLER) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(OPENSSL_MANGLER) + (PFNRT)DH_generate_parameters, /* gsoap */ + #endif + (PFNRT)DH_generate_parameters_ex, + (PFNRT)RAND_load_file, +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + (PFNRT)CRYPTO_set_dynlock_create_callback, + (PFNRT)CRYPTO_set_dynlock_lock_callback, + (PFNRT)CRYPTO_set_dynlock_destroy_callback, +@@ -96,14 +96,14 @@ PFNRT g_VBoxRTDeps[] = + (PFNRT)ASMBitFirstSet, + (PFNRT)RTBldCfgRevision, + (PFNRT)SSL_free, +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + (PFNRT)SSL_library_init, + (PFNRT)SSL_load_error_strings, + #endif + (PFNRT)SSL_CTX_free, + (PFNRT)SSL_CTX_use_certificate_file, + (PFNRT)SSLv23_method, +-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER) ++#if OPENSSL_VERSION_NUMBER < 0x10100000 + (PFNRT)TLSv1_server_method, + #endif + NULL Index: emulators/virtualbox-ose/files/patch-src_VBox_Runtime_common_crypto_cipher-openssl.cpp =================================================================== --- /dev/null +++ emulators/virtualbox-ose/files/patch-src_VBox_Runtime_common_crypto_cipher-openssl.cpp @@ -0,0 +1,38 @@ +--- src/VBox/Runtime/common/crypto/cipher-openssl.cpp.orig 2022-07-19 20:59:10 UTC ++++ src/VBox/Runtime/common/crypto/cipher-openssl.cpp +@@ -211,7 +211,7 @@ RTDECL(int) RTCrCipherEncrypt(RTCRCIPHER hCipher, void + * Allocate and initialize the cipher context. + */ + int rc = VERR_NO_MEMORY; +-# if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10100000 + EVP_CIPHER_CTX *pCipherCtx = EVP_CIPHER_CTX_new(); + if (pCipherCtx) + # else +@@ -251,7 +251,7 @@ RTDECL(int) RTCrCipherEncrypt(RTCRCIPHER hCipher, void + else + rc = VERR_CR_CIPHER_OSSL_ENCRYPT_INIT_FAILED; + +-# if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10100000 + EVP_CIPHER_CTX_free(pCipherCtx); + # else + EVP_CIPHER_CTX_cleanup(&CipherCtx); +@@ -295,7 +295,7 @@ RTDECL(int) RTCrCipherDecrypt(RTCRCIPHER hCipher, void + * Allocate and initialize the cipher context. + */ + int rc = VERR_NO_MEMORY; +-# if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10100000 + EVP_CIPHER_CTX *pCipherCtx = EVP_CIPHER_CTX_new(); + if (pCipherCtx) + # else +@@ -335,7 +335,7 @@ RTDECL(int) RTCrCipherDecrypt(RTCRCIPHER hCipher, void + else + rc = VERR_CR_CIPHER_OSSL_DECRYPT_INIT_FAILED; + +-# if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10100000 + EVP_CIPHER_CTX_free(pCipherCtx); + # else + EVP_CIPHER_CTX_cleanup(&CipherCtx); Index: emulators/virtualbox-ose/files/patch-src_VBox_Runtime_common_crypto_digest-builtin.cpp =================================================================== --- /dev/null +++ emulators/virtualbox-ose/files/patch-src_VBox_Runtime_common_crypto_digest-builtin.cpp @@ -0,0 +1,63 @@ +--- src/VBox/Runtime/common/crypto/digest-builtin.cpp.orig 2022-10-18 12:33:15 UTC ++++ src/VBox/Runtime/common/crypto/digest-builtin.cpp +@@ -919,7 +919,7 @@ static PCRTCRDIGESTDESC const g_apDigestOps[] = + * OpenSSL EVP. + */ + +-# if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10100000 + /** @impl_interface_method{RTCRDIGESTDESC::pfnNew} */ + static DECLCALLBACK(void*) rtCrDigestOsslEvp_New(void) + { +@@ -955,7 +955,7 @@ static DECLCALLBACK(int) rtCrDigestOsslEvp_Init(void * + if (fReInit) + { + pEvpType = EVP_MD_CTX_md(pThis); +-# if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10100000 + EVP_MD_CTX_reset(pThis); + # else + EVP_MD_CTX_cleanup(pThis); +@@ -963,7 +963,7 @@ static DECLCALLBACK(int) rtCrDigestOsslEvp_Init(void * + } + + AssertPtrReturn(pEvpType, VERR_INVALID_PARAMETER); +-# if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10100000 + Assert(EVP_MD_block_size(pEvpType)); + # else + Assert(pEvpType->md_size); +@@ -978,7 +978,7 @@ static DECLCALLBACK(int) rtCrDigestOsslEvp_Init(void * + static DECLCALLBACK(void) rtCrDigestOsslEvp_Delete(void *pvState) + { + EVP_MD_CTX *pThis = (EVP_MD_CTX *)pvState; +-# if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10100000 + EVP_MD_CTX_reset(pThis); + # else + EVP_MD_CTX_cleanup(pThis); +@@ -1023,13 +1023,13 @@ static RTCRDIGESTDESC const g_rtCrDigestOpenSslDesc = + NULL, + RTDIGESTTYPE_UNKNOWN, + EVP_MAX_MD_SIZE, +-# if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10100000 + 0, + # else + sizeof(EVP_MD_CTX), + # endif + 0, +-# if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10100000 + rtCrDigestOsslEvp_New, + rtCrDigestOsslEvp_Free, + # else +@@ -1091,7 +1091,7 @@ RTDECL(PCRTCRDIGESTDESC) RTCrDigestFindByObjIdString(c + /* + * Return the OpenSSL provider descriptor and the EVP_MD address. + */ +-# if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10100000 + Assert(EVP_MD_block_size(pEvpMdType)); + # else + Assert(pEvpMdType->md_size); Index: emulators/virtualbox-ose/files/patch-src_VBox_Runtime_common_crypto_key-openssl.cpp =================================================================== --- /dev/null +++ emulators/virtualbox-ose/files/patch-src_VBox_Runtime_common_crypto_key-openssl.cpp @@ -0,0 +1,29 @@ +--- src/VBox/Runtime/common/crypto/key-openssl.cpp.orig 2022-10-18 13:06:26 UTC ++++ src/VBox/Runtime/common/crypto/key-openssl.cpp +@@ -139,7 +139,7 @@ DECLHIDDEN(int) rtCrKeyToOpenSslKeyEx(RTCRKEY hKey, bo + "Unknown public key algorithm [OpenSSL]: %s", pszAlgoObjId); + const char *pszAlgoSn = OBJ_nid2sn(iAlgoNid); + +-# if OPENSSL_VERSION_NUMBER >= 0x10001000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10001000 + int idAlgoPkey = 0; + int idAlgoMd = 0; + if (!OBJ_find_sigid_algs(iAlgoNid, &idAlgoMd, &idAlgoPkey)) +@@ -170,7 +170,7 @@ DECLHIDDEN(int) rtCrKeyToOpenSslKeyEx(RTCRKEY hKey, bo + return RTErrInfoSetF(pErrInfo, VERR_NO_MEMORY, "EVP_PKEY_new(%d) failed", iAlgoNid); + + int rc; +-# if OPENSSL_VERSION_NUMBER >= 0x10001000 && !defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER >= 0x10001000 + if (EVP_PKEY_set_type(pEvpNewKey, idAlgoPkey)) + { + int idKeyType = EVP_PKEY_base_id(pEvpNewKey); +@@ -197,7 +197,7 @@ DECLHIDDEN(int) rtCrKeyToOpenSslKeyEx(RTCRKEY hKey, bo + fNeedPublic ? "d2i_PublicKey failed" : "d2i_PrivateKey failed"); + } + else +-# if OPENSSL_VERSION_NUMBER < 0x10001000 || defined(LIBRESSL_VERSION_NUMBER) ++# if OPENSSL_VERSION_NUMBER < 0x10001000 + rc = RTErrInfoSetF(pErrInfo, VERR_CR_PKIX_OSSL_EVP_PKEY_TYPE_ERROR, "EVP_PKEY_type() failed"); + # else + rc = RTErrInfoSetF(pErrInfo, VERR_CR_PKIX_OSSL_EVP_PKEY_TYPE_ERROR, "EVP_PKEY_base_id() failed");