Commit 7ac8e6c9 authored by Jacek Kalwas's avatar Jacek Kalwas Committed by Tomasz Zawadzki
Browse files

accel: move aes cbc validation from accel modules to generic layer



This allows to leverage these checks on different accel modules and
not duplicate the code.

Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@intel.com>
Change-Id: I0096df0df1385c11ae1d92259fdc08ae39108c5d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18198


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
parent 47f8f398
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2234,6 +2234,14 @@ spdk_accel_crypto_key_create(const struct spdk_accel_crypto_key_create_param *pa
		}
	}

	if (key->cipher == SPDK_ACCEL_CIPHER_AES_CBC) {
		if (key->key2_size) {
			SPDK_ERRLOG("%s doesn't use key2\n", g_ciphers[key->cipher]);
			rc = -EINVAL;
			goto error;
		}
	}

	key->module_if = module;

	spdk_spin_lock(&g_keyring_spin);
+0 −29
Original line number Diff line number Diff line
@@ -1370,31 +1370,6 @@ accel_dpdk_cryptodev_key_handle_configure(struct spdk_accel_crypto_key *key,
	return 0;
}

static int
accel_dpdk_cryptodev_validate_parameters(enum accel_dpdk_cryptodev_driver_type driver,
		struct spdk_accel_crypto_key *key)
{
	/* Check that all required parameters exist */
	switch (key->cipher) {
	case SPDK_ACCEL_CIPHER_AES_CBC:
		if (!key->key || !key->key_size) {
			SPDK_ERRLOG("ACCEL_DPDK_CRYPTODEV_AES_CBC requires a key\n");
			return -1;
		}
		if (key->key2 || key->key2_size) {
			SPDK_ERRLOG("ACCEL_DPDK_CRYPTODEV_AES_CBC doesn't use key2\n");
			return -1;
		}
		break;
	case SPDK_ACCEL_CIPHER_AES_XTS:
		break;
	default:
		return -1;
	}

	return 0;
}

static void
accel_dpdk_cryptodev_key_deinit(struct spdk_accel_crypto_key *key)
{
@@ -1453,10 +1428,6 @@ accel_dpdk_cryptodev_key_init(struct spdk_accel_crypto_key *key)

	driver = g_dpdk_cryptodev_driver;

	if (accel_dpdk_cryptodev_validate_parameters(driver, key)) {
		return -EINVAL;
	}

	priv = calloc(1, sizeof(*priv));
	if (!priv) {
		SPDK_ERRLOG("Memory allocation failed\n");