dm/tools: compatible with openssl3.0

HMAC_*, MD5_* and SHA256_* are deprecated since openssl3.0, replace them with the corresponding equivalents.

Tracked-On: #6743
Signed-off-by: Tw <wei.tan@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
This commit is contained in:
Tw
2021-11-26 12:36:32 +08:00
committed by acrnsi-robot
parent 249c1757fc
commit d1e3e8d633
6 changed files with 117 additions and 8 deletions

View File

@@ -33,6 +33,9 @@
#include <string.h>
#include <pthread.h>
#include <openssl/md5.h>
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
#include <openssl/evp.h>
#endif
#include "dm.h"
#include "pci_core.h"
@@ -438,7 +441,6 @@ virtio_blk_init(struct vmctx *ctx, struct pci_vdev *dev, char *opts)
bool dummy_bctxt;
char bident[16];
struct blockif_ctxt *bctxt;
MD5_CTX mdctx;
u_char digest[16];
struct virtio_blk *blk;
int i;
@@ -521,9 +523,18 @@ virtio_blk_init(struct vmctx *ctx, struct pci_vdev *dev, char *opts)
* Create an identifier for the backing file. Use parts of the
* md5 sum of the filename
*/
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
EVP_MD_CTX *mdctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(mdctx, EVP_md5(), NULL);
EVP_DigestUpdate(mdctx, opts, strnlen(opts, VIRTIO_BLK_MAX_OPTS_LEN));
EVP_DigestFinal_ex(mdctx, digest, NULL);
EVP_MD_CTX_free(mdctx);
#else
MD5_CTX mdctx;
MD5_Init(&mdctx);
MD5_Update(&mdctx, opts, strnlen(opts, VIRTIO_BLK_MAX_OPTS_LEN));
MD5_Final(digest, &mdctx);
#endif
rc = snprintf(blk->ident, sizeof(blk->ident),
"ACRN--%02X%02X-%02X%02X-%02X%02X", digest[0],
digest[1], digest[2], digest[3], digest[4], digest[5]);

View File

@@ -13,6 +13,9 @@
#include <string.h>
#include <pthread.h>
#include <openssl/md5.h>
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
#include <openssl/evp.h>
#endif
#include <linux/i2c.h>
#include <linux/i2c-dev.h>
#include <sys/ioctl.h>
@@ -725,7 +728,6 @@ virtio_i2c_notify(void *vdev, struct virtio_vq_info *vq)
static int
virtio_i2c_init(struct vmctx *ctx, struct pci_vdev *dev, char *opts)
{
MD5_CTX mdctx;
u_char digest[16];
struct virtio_i2c *vi2c;
pthread_mutexattr_t attr;
@@ -771,9 +773,18 @@ virtio_i2c_init(struct vmctx *ctx, struct pci_vdev *dev, char *opts)
vi2c->vq.qsize = 64;
vi2c->native_adapter_num = 0;
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
EVP_MD_CTX *mdctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(mdctx, EVP_md5(), NULL);
EVP_DigestUpdate(mdctx, "vi2c", strlen("vi2c"));
EVP_DigestFinal_ex(mdctx, digest, NULL);
EVP_MD_CTX_free(mdctx);
#else
MD5_CTX mdctx;
MD5_Init(&mdctx);
MD5_Update(&mdctx, "vi2c", strlen("vi2c"));
MD5_Final(digest, &mdctx);
#endif
rc = snprintf(vi2c->ident, sizeof(vi2c->ident),
"ACRN--%02X%02X-%02X%02X-%02X%02X", digest[0],
digest[1], digest[2], digest[3], digest[4],

View File

@@ -34,6 +34,9 @@
#include <string.h>
#include <unistd.h>
#include <openssl/md5.h>
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
#include <openssl/evp.h>
#endif
#include <pthread.h>
#include <sys/ioctl.h>
#include <sys/errno.h>
@@ -812,7 +815,7 @@ virtio_net_tap_setup(struct virtio_net *net, char *devname)
static int
virtio_net_init(struct vmctx *ctx, struct pci_vdev *dev, char *opts)
{
MD5_CTX mdctx;
unsigned char digest[16];
char nstr[80];
char tname[MAXCOMLEN + 1];
@@ -935,10 +938,18 @@ virtio_net_init(struct vmctx *ctx, struct pci_vdev *dev, char *opts)
if (!mac_provided) {
snprintf(nstr, sizeof(nstr), "%d-%d-%s", dev->slot,
dev->func, mac_seed);
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
EVP_MD_CTX *mdctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(mdctx, EVP_md5(), NULL);
EVP_DigestUpdate(mdctx, nstr, strnlen(nstr, sizeof(nstr)));
EVP_DigestFinal_ex(mdctx, digest, NULL);
EVP_MD_CTX_free(mdctx);
#else
MD5_CTX mdctx;
MD5_Init(&mdctx);
MD5_Update(&mdctx, nstr, strnlen(nstr, sizeof(nstr)));
MD5_Final(digest, &mdctx);
#endif
net->config.mac[0] = 0x00;
net->config.mac[1] = 0x16;