[v1,09/10] examples/fips_validation: fix AES XTS to read seq number
Checks
Commit Message
Fix AES XTS test to read sequence number correctly.
Fixes: f8e431ed8f6 ("examples/fips_validation: add parsing for AES-XTS")
Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
---
examples/fips_validation/fips_validation_xts.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
Comments
> -----Original Message-----
> From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
> Sent: Monday 6 February 2023 14:46
> To: dev@dpdk.org
> Cc: Anoob Joseph <anoobj@marvell.com>; jerinj@marvell.com; Akhil Goyal
> <gakhil@marvell.com>; Dooley, Brian <brian.dooley@intel.com>;
> Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
> Subject: [v1, 09/10] examples/fips_validation: fix AES XTS to read seq
> number
>
> Fix AES XTS test to read sequence number correctly.
>
> Fixes: f8e431ed8f6 ("examples/fips_validation: add parsing for AES-XTS")
>
> Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
> ---
> examples/fips_validation/fips_validation_xts.c | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/examples/fips_validation/fips_validation_xts.c
> b/examples/fips_validation/fips_validation_xts.c
> index 531e3c688e..530df78ab4 100644
> --- a/examples/fips_validation/fips_validation_xts.c
> +++ b/examples/fips_validation/fips_validation_xts.c
> @@ -34,6 +34,7 @@
> #define DATAUNITLEN_JSON_STR "dataUnitLen"
> #define PAYLOADLEN_JSON_STR "payloadLen"
> #define TWEAKVALUE_JSON_STR "tweakValue"
> +#define SEQNUMBER_JSON_STR "sequenceNumber"
> #define PT_JSON_STR "pt"
> #define CT_JSON_STR "ct"
>
> @@ -95,14 +96,17 @@ parser_xts_read_keylen(const char *key, char *src,
> struct fips_val *val) static int parser_xts_read_tweakval(const char *key,
> char *src, struct fips_val *val) {
> + char num_str[4] = {0};
> int ret;
>
> - if (info.interim_info.xts_data.tweak_mode ==
> XTS_TWEAK_MODE_HEX)
> + if (info.interim_info.xts_data.tweak_mode ==
> XTS_TWEAK_MODE_HEX) {
> ret = parse_uint8_hex_str(key, src, val);
> - else if (info.interim_info.xts_data.tweak_mode ==
> XTS_TWEAK_MODE_NUMBER)
> - ret = parser_read_uint32_bit_val(key, src, val);
> - else
> + } else if (info.interim_info.xts_data.tweak_mode ==
> XTS_TWEAK_MODE_NUMBER) {
> + snprintf(num_str, RTE_DIM(num_str), "%x", atoi(src));
> + ret = parse_uint8_hex_str(key, num_str, val);
> + } else {
> ret = -1;
> + }
>
> return ret;
> }
> @@ -122,6 +126,7 @@ struct fips_test_callback xts_interim_json_vectors[] =
> { struct fips_test_callback xts_enc_json_vectors[] = {
> {KEY_JSON_STR, parse_uint8_known_len_hex_str,
> &vec.cipher_auth.key},
> {TWEAKVALUE_JSON_STR, parser_xts_read_tweakval,
> &vec.iv},
> + {SEQNUMBER_JSON_STR, parser_xts_read_tweakval,
> &vec.iv},
> {PT_JSON_STR, parse_uint8_hex_str, &vec.pt},
> {NULL, NULL, NULL} /**< end pointer */ };
> --
> 2.25.1
Acked-by: Brian Dooley <brian.dooley@intel.com>
@@ -34,6 +34,7 @@
#define DATAUNITLEN_JSON_STR "dataUnitLen"
#define PAYLOADLEN_JSON_STR "payloadLen"
#define TWEAKVALUE_JSON_STR "tweakValue"
+#define SEQNUMBER_JSON_STR "sequenceNumber"
#define PT_JSON_STR "pt"
#define CT_JSON_STR "ct"
@@ -95,14 +96,17 @@ parser_xts_read_keylen(const char *key, char *src, struct fips_val *val)
static int
parser_xts_read_tweakval(const char *key, char *src, struct fips_val *val)
{
+ char num_str[4] = {0};
int ret;
- if (info.interim_info.xts_data.tweak_mode == XTS_TWEAK_MODE_HEX)
+ if (info.interim_info.xts_data.tweak_mode == XTS_TWEAK_MODE_HEX) {
ret = parse_uint8_hex_str(key, src, val);
- else if (info.interim_info.xts_data.tweak_mode == XTS_TWEAK_MODE_NUMBER)
- ret = parser_read_uint32_bit_val(key, src, val);
- else
+ } else if (info.interim_info.xts_data.tweak_mode == XTS_TWEAK_MODE_NUMBER) {
+ snprintf(num_str, RTE_DIM(num_str), "%x", atoi(src));
+ ret = parse_uint8_hex_str(key, num_str, val);
+ } else {
ret = -1;
+ }
return ret;
}
@@ -122,6 +126,7 @@ struct fips_test_callback xts_interim_json_vectors[] = {
struct fips_test_callback xts_enc_json_vectors[] = {
{KEY_JSON_STR, parse_uint8_known_len_hex_str, &vec.cipher_auth.key},
{TWEAKVALUE_JSON_STR, parser_xts_read_tweakval, &vec.iv},
+ {SEQNUMBER_JSON_STR, parser_xts_read_tweakval, &vec.iv},
{PT_JSON_STR, parse_uint8_hex_str, &vec.pt},
{NULL, NULL, NULL} /**< end pointer */
};