From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 0DE618E69 for ; Sat, 17 Sep 2016 01:04:21 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP; 16 Sep 2016 16:04:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.30,347,1470726000"; d="scan'208";a="1031901001" Received: from irsmsx109.ger.corp.intel.com ([163.33.3.23]) by orsmga001.jf.intel.com with ESMTP; 16 Sep 2016 16:04:18 -0700 Received: from irsmsx108.ger.corp.intel.com ([169.254.11.167]) by IRSMSX109.ger.corp.intel.com ([169.254.13.12]) with mapi id 14.03.0248.002; Sat, 17 Sep 2016 00:04:17 +0100 From: "De Lara Guarch, Pablo" To: "Jain, Deepak K" , "dev@dpdk.org" CC: "Jain, Deepak K" Thread-Topic: [dpdk-dev] [PATCH v3 3/3] app/test: add Kasumi tests in QAT test suite Thread-Index: AQHSDzjDOXB9XRVXvEesMAS7EFgtBKB8sDWQ Date: Fri, 16 Sep 2016 23:04:16 +0000 Message-ID: References: <1472131419-89617-1-git-send-email-deepak.k.jain@intel.com> <1473933932-185890-1-git-send-email-deepak.k.jain@intel.com> In-Reply-To: <1473933932-185890-1-git-send-email-deepak.k.jain@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZThjYTMyYTctYjFiNS00ZmYyLWI5OWMtM2YwMWNiZjc2MjFjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IkNVclVDRTkzendsYUZJOTNhQ2dcL0lFZ0dETUpzbWhGUk95c3E5eE5uRG1ZPSJ9 x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v3 3/3] app/test: add Kasumi tests in QAT test suite X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2016 23:04:22 -0000 Hi Deepak, > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Deepak Kumar Jain > Sent: Thursday, September 15, 2016 3:06 AM > To: dev@dpdk.org > Cc: Jain, Deepak K > Subject: [dpdk-dev] [PATCH v3 3/3] app/test: add Kasumi tests in QAT test > suite >=20 > This patch adds Kausmi tests in the QAT tesuite. This patch implements tests for authenticated encryption and encrypted auth= entication, and adds them in the testsuite for KASUMI SW PMD (thanks for that!). Could you include this info in the commit message. >=20 > Signed-off-by: Deepak Kumar Jain > --- > app/test/test_cryptodev.c | 244 +++++++++++++++= ++++-- > app/test/test_cryptodev_kasumi_hash_test_vectors.h | 76 +++++++ > app/test/test_cryptodev_kasumi_test_vectors.h | 103 ++++++++- > 3 files changed, 401 insertions(+), 22 deletions(-) >=20 > diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c > index 89d627f..4751467 100644 > --- a/app/test/test_cryptodev.c > +++ b/app/test/test_cryptodev.c ... > static int > +test_kasumi_auth_cipher(const struct kasumi_test_data *tdata) > +{ ... > + > + /* Validate obuf */ > + TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT( > + ciphertext, > + tdata->ciphertext.data, > + tdata->validCipherLenInBits.len, > + "Snow3G/Kasumi Ciphertext data not as expected"); This is in a kasumi test, so you can change the message to "Kasumi Cipherte= xt..." > + ut_params->digest =3D rte_pktmbuf_mtod(ut_params->obuf, uint8_t > *) > + + plaintext_pad_len + tdata->aad.len + tdata->iv.len; > + > + /* Validate obuf */ > + TEST_ASSERT_BUFFERS_ARE_EQUAL( > + ut_params->digest, > + tdata->digest.data, > + DIGEST_BYTE_LENGTH_KASUMI_F9, > + "Snow3G/KASUMI Generated auth tag not as > expected"); Same here > + return 0; > +} > + ... > /* ***** AES-GCM Tests ***** */ >=20 > static int > @@ -4139,6 +4323,21 @@ static struct unit_test_suite > cryptodev_qat_testsuite =3D { > TEST_CASE_ST(ut_setup, ut_teardown, > test_null_auth_cipher_operation), >=20 If you include a comment down here for KASUMI encryption only, you should include one for authentication only here, and maybe comments for the other two cases (auth_cipher/cipher_auth). You can also group all o= f them into "KASUMI tests", easier :) > + TEST_CASE_ST(ut_setup, ut_teardown, > + test_kasumi_hash_generate_test_case_6), > + > + /** KASUMI encrypt only (F8) */ > + TEST_CASE_ST(ut_setup, ut_teardown, > + test_kasumi_encryption_test_case_1), > + > + /** KASUMI encrypt only (F8) */ > + TEST_CASE_ST(ut_setup, ut_teardown, > + test_kasumi_encryption_test_case_3), You can combine both tests above, and have just one comment (or go for a si= ngle comment overall). > + TEST_CASE_ST(ut_setup, ut_teardown, > + test_kasumi_auth_cipher_test_case_1), > + TEST_CASE_ST(ut_setup, ut_teardown, > + test_kasumi_cipher_auth_test_case_1), > + > TEST_CASES_END() /**< NULL terminate unit test array */ > } > }; ... > diff --git a/app/test/test_cryptodev_kasumi_hash_test_vectors.h > b/app/test/test_cryptodev_kasumi_hash_test_vectors.h > index c080b9f..a4b0205 100644 > --- a/app/test/test_cryptodev_kasumi_hash_test_vectors.h > +++ b/app/test/test_cryptodev_kasumi_hash_test_vectors.h > @@ -257,4 +257,80 @@ struct kasumi_hash_test_data > kasumi_hash_test_case_5 =3D { > .len =3D 4 > } > }; Add blank line here. > +struct kasumi_hash_test_data kasumi_hash_test_case_6 =3D { > + .key =3D { > + .data =3D { > + 0x83, 0xFD, 0x23, 0xA2, 0x44, 0xA7, 0x4C, 0xF3, > + 0x58, 0xDA, 0x30, 0x19, 0xF1, 0x72, 0x26, 0x35 > + }, > + .len =3D 16 > + }, > + .aad =3D { > + .data =3D { > + 0x36, 0xAF, 0x61, 0x44, 0x4F, 0x30, 0x2A, 0xD2 > + }, > + .len =3D 8 > + }, > + .plaintext =3D { > + .data =3D { > + 0x35, 0xC6, 0x87, 0x16, 0x63, 0x3C, 0x66, 0xFB, > + 0x75, 0x0C, 0x26, 0x68, 0x65, 0xD5, 0x3C, 0x11, > + 0xEA, 0x05, 0xB1, 0xE9, 0xFA, 0x49, 0xC8, 0x39, > + 0x8D, 0x48, 0xE1, 0xEF, 0xA5, 0x90, 0x9D, 0x39, > + 0x47, 0x90, 0x28, 0x37, 0xF5, 0xAE, 0x96, 0xD5, > + 0xA0, 0x5B, 0xC8, 0xD6, 0x1C, 0xA8, 0xDB, 0xEF, > + 0x1B, 0x13, 0xA4, 0xB4, 0xAB, 0xFE, 0x4F, 0xB1, > + 0x00, 0x60, 0x45, 0xB6, 0x74, 0xBB, 0x54, 0x72, > + 0x93, 0x04, 0xC3, 0x82, 0xBE, 0x53, 0xA5, 0xAF, > + 0x05, 0x55, 0x61, 0x76, 0xF6, 0xEA, 0xA2, 0xEF, > + 0x1D, 0x05, 0xE4, 0xB0, 0x83, 0x18, 0x1E, 0xE6, > + 0x74, 0xCD, 0xA5, 0xA4, 0x85, 0xF7, 0x4D, 0x7A, > + 0xC0 > + }, Remove one extra tab before the brace. > + .len =3D 776 > + }, > + .validAuthLenInBits =3D { > + .len =3D 768 > + }, > + .validAuthOffsetLenInBits =3D { > + .len =3D 64 > + }, > + .digest =3D { > + .data =3D {0x95, 0xAE, 0x41, 0xBA}, > + .len =3D 4 > + } > +}; > + > +struct kasumi_hash_test_data kasumi_hash_test_case_7 =3D { > + .key =3D { > + .data =3D { > + 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20, > + 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52 > + }, > + .len =3D 16 > + }, > + .aad =3D { > + .data =3D { > + 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49, > + }, > + .len =3D 8 > + }, > + .plaintext =3D { > + .data =3D { > + 0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, > 0xC4, > + 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8, > 0xC0 Remove extra tab here. > + }, > + .len =3D 128 > + }, > + .validAuthLenInBits =3D { > + .len =3D 120 > + }, > + .validAuthOffsetLenInBits =3D { > + .len =3D 64 > + }, > + .digest =3D { > + .data =3D {0x87, 0x5F, 0xE4, 0x89}, > + .len =3D 4 > + } > +}; > #endif /* TEST_CRYPTODEV_KASUMI_HASH_TEST_VECTORS_H_ */ > diff --git a/app/test/test_cryptodev_kasumi_test_vectors.h > b/app/test/test_cryptodev_kasumi_test_vectors.h > index 9163d7c..016af54 100644 > --- a/app/test/test_cryptodev_kasumi_test_vectors.h > +++ b/app/test/test_cryptodev_kasumi_test_vectors.h ... > struct kasumi_test_data kasumi_test_case_1 =3D { > @@ -183,12 +208,18 @@ struct kasumi_test_data kasumi_test_case_3 =3D { > }, > .len =3D 8 > }, > + .aad =3D { > + .data =3D { > + 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49 > + }, > + .len =3D 8 > + }, > .plaintext =3D { > .data =3D { > 0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4, > - 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8 > + 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8, 0xC0 Might be a good idea to include in the declaration of the structure "kasumi= _test_data" that plaintext may include the direction bit, so it explains the extra byte= here (like in the hash vectors), as you are using this for authentication too. > }, > - .len =3D 120 > + .len =3D 128 > }, > .ciphertext =3D { > .data =3D { > @@ -197,11 +228,24 @@ struct kasumi_test_data kasumi_test_case_3 =3D { > }, > .len =3D 120 > }, > + .validDataLenInBits =3D { > + .len =3D 128 > + }, > .validCipherLenInBits =3D { > .len =3D 120 > }, > .validCipherOffsetLenInBits =3D { > .len =3D 64 > + }, > + .validAuthLenInBits =3D { > + .len =3D 120 > + }, > + .validAuthOffsetLenInBits =3D { > + .len =3D 64 > + }, > + .digest =3D { > + .data =3D {0x87, 0x5F, 0xE4, 0x89}, > + .len =3D 4 > } > };