test/crypto-perf: allow auth generate followed by encryption
Checks
Commit Message
Allowing auth generation followed by encryption mode.
--optype auth-then-cipher can take cipher-op as encrypt
and auth-op as generate now.
Signed-off-by: Tejasree Kondoj <ktejasree@marvell.com>
---
app/test-crypto-perf/cperf_ops.c | 4 +++
app/test-crypto-perf/cperf_options_parsing.c | 30 ++++++++++++++------
2 files changed, 26 insertions(+), 8 deletions(-)
Comments
> Allowing auth generation followed by encryption mode.
> --optype auth-then-cipher can take cipher-op as encrypt
> and auth-op as generate now.
>
> Signed-off-by: Tejasree Kondoj <ktejasree@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
> > Allowing auth generation followed by encryption mode.
> > --optype auth-then-cipher can take cipher-op as encrypt
> > and auth-op as generate now.
> >
> > Signed-off-by: Tejasree Kondoj <ktejasree@marvell.com>
> Acked-by: Akhil Goyal <gakhil@marvell.com>
Applied to dpdk-next-crypto
Thanks.
@@ -458,6 +458,10 @@ cperf_set_ops_cipher_auth(struct rte_crypto_op **ops,
} else
sym_op->cipher.data.length = options->test_buffer_size;
+ if ((options->auth_op == RTE_CRYPTO_AUTH_OP_GENERATE) &&
+ (options->op_type == CPERF_AUTH_THEN_CIPHER))
+ sym_op->cipher.data.length += options->digest_sz;
+
if (options->cipher_algo == RTE_CRYPTO_CIPHER_SNOW3G_UEA2 ||
options->cipher_algo == RTE_CRYPTO_CIPHER_KASUMI_F8 ||
options->cipher_algo == RTE_CRYPTO_CIPHER_ZUC_EEA3)
@@ -1130,6 +1130,20 @@ check_docsis_buffer_length(struct cperf_options *options)
}
#endif
+static bool
+is_valid_chained_op(struct cperf_options *options)
+{
+ if (options->cipher_op == RTE_CRYPTO_CIPHER_OP_ENCRYPT &&
+ options->auth_op == RTE_CRYPTO_AUTH_OP_GENERATE)
+ return true;
+
+ if (options->cipher_op == RTE_CRYPTO_CIPHER_OP_DECRYPT &&
+ options->auth_op == RTE_CRYPTO_AUTH_OP_VERIFY)
+ return true;
+
+ return false;
+}
+
int
cperf_options_check(struct cperf_options *options)
{
@@ -1236,6 +1250,14 @@ cperf_options_check(struct cperf_options *options)
return -EINVAL;
}
+ if (options->op_type == CPERF_CIPHER_THEN_AUTH ||
+ options->op_type == CPERF_AUTH_THEN_CIPHER) {
+ if (!is_valid_chained_op(options)) {
+ RTE_LOG(ERR, USER1, "Invalid chained operation.\n");
+ return -EINVAL;
+ }
+ }
+
if (options->op_type == CPERF_CIPHER_THEN_AUTH) {
if (options->cipher_op != RTE_CRYPTO_CIPHER_OP_ENCRYPT &&
options->auth_op !=
@@ -1244,14 +1266,6 @@ cperf_options_check(struct cperf_options *options)
" options: encrypt and generate.\n");
return -EINVAL;
}
- } else if (options->op_type == CPERF_AUTH_THEN_CIPHER) {
- if (options->cipher_op != RTE_CRYPTO_CIPHER_OP_DECRYPT &&
- options->auth_op !=
- RTE_CRYPTO_AUTH_OP_VERIFY) {
- RTE_LOG(ERR, USER1, "Option auth then cipher must use"
- " options: decrypt and verify.\n");
- return -EINVAL;
- }
}
if (options->op_type == CPERF_CIPHER_ONLY ||