Re: [PATCH 4/4] Simple correctness and speed test for CRCT10DIF hash

2013-04-17 Thread Tim Chen
On Wed, 2013-04-17 at 20:58 +0300, Jussi Kivilinna wrote:
> On 16.04.2013 19:20, Tim Chen wrote:
> > These are simple tests to do sanity check of CRC T10 DIF hash.  The
> > correctness of the transform can be checked with the command
> > modprobe tcrypt mode=47
> > The speed of the transform can be evaluated with the command
> > modprobe tcrypt mode=320
> > 
> > Set the cpu frequency to constant and turn turbo off when running the
> > speed test so the frequency governor will not tweak the frequency and
> > affects the measurements.
> > 
> > Signed-off-by: Tim Chen 
> > Tested-by: Keith Busch 
> 
> >  
> > +#define CRCT10DIF_TEST_VECTORS 2
> > +static struct hash_testvec crct10dif_tv_template[] = {
> > +   {
> > +   .plaintext = "abc",
> > +   .psize  = 3,
> > +#ifdef __LITTLE_ENDIAN
> > +   .digest = "\x3b\x44",
> > +#else
> > +   .digest = "\x44\x3b",
> > +#endif
> > +   }, {
> > +   .plaintext =
> > +   "abcd",
> > +   .psize  = 56,
> > +#ifdef __LITTLE_ENDIAN
> > +   .digest = "\xe3\x9c",
> > +#else
> > +   .digest = "\x9c\xe3",
> > +#endif
> > +   .np = 2,
> > +   .tap= { 28, 28 }
> > +   }
> > +};
> > +
> 
> Are these large enough to test all code paths in the PCLMULQDQ implementation?

We have tested the implementation exhaustively for large number of code paths.
The tcrypt tests here are only meant for sanity check, and not for
exhaustive tests.

Tim


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/4] Simple correctness and speed test for CRCT10DIF hash

2013-04-17 Thread Jussi Kivilinna
On 16.04.2013 19:20, Tim Chen wrote:
> These are simple tests to do sanity check of CRC T10 DIF hash.  The
> correctness of the transform can be checked with the command
>   modprobe tcrypt mode=47
> The speed of the transform can be evaluated with the command
>   modprobe tcrypt mode=320
> 
> Set the cpu frequency to constant and turn turbo off when running the
> speed test so the frequency governor will not tweak the frequency and
> affects the measurements.
> 
> Signed-off-by: Tim Chen 
> Tested-by: Keith Busch 

>  
> +#define CRCT10DIF_TEST_VECTORS   2
> +static struct hash_testvec crct10dif_tv_template[] = {
> + {
> + .plaintext = "abc",
> + .psize  = 3,
> +#ifdef __LITTLE_ENDIAN
> + .digest = "\x3b\x44",
> +#else
> + .digest = "\x44\x3b",
> +#endif
> + }, {
> + .plaintext =
> + "abcd",
> + .psize  = 56,
> +#ifdef __LITTLE_ENDIAN
> + .digest = "\xe3\x9c",
> +#else
> + .digest = "\x9c\xe3",
> +#endif
> + .np = 2,
> + .tap= { 28, 28 }
> + }
> +};
> +

Are these large enough to test all code paths in the PCLMULQDQ implementation?

-Jussi

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/4] Simple correctness and speed test for CRCT10DIF hash

2013-04-16 Thread Tim Chen
These are simple tests to do sanity check of CRC T10 DIF hash.  The
correctness of the transform can be checked with the command
modprobe tcrypt mode=47
The speed of the transform can be evaluated with the command
modprobe tcrypt mode=320

Set the cpu frequency to constant and turn turbo off when running the
speed test so the frequency governor will not tweak the frequency and
affects the measurements.

Signed-off-by: Tim Chen 
Tested-by: Keith Busch 
---
 crypto/tcrypt.c  |  8 
 crypto/testmgr.c | 10 ++
 crypto/testmgr.h | 24 
 3 files changed, 42 insertions(+)

diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
index 24ea7df..5e95722 100644
--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -1174,6 +1174,10 @@ static int do_test(int m)
ret += tcrypt_test("ghash");
break;
 
+   case 47:
+   ret += tcrypt_test("crct10dif");
+   break;
+
case 100:
ret += tcrypt_test("hmac(md5)");
break;
@@ -1498,6 +1502,10 @@ static int do_test(int m)
test_hash_speed("crc32c", sec, generic_hash_speed_template);
if (mode > 300 && mode < 400) break;
 
+   case 320:
+   test_hash_speed("crct10dif", sec, generic_hash_speed_template);
+   if (mode > 300 && mode < 400) break;
+
case 399:
break;
 
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 3807084..b165316 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -1944,6 +1944,16 @@ static const struct alg_test_desc alg_test_descs[] = {
}
}
}, {
+   .alg = "crct10dif",
+   .test = alg_test_hash,
+   .fips_allowed = 1,
+   .suite = {
+   .hash = {
+   .vecs = crct10dif_tv_template,
+   .count = CRCT10DIF_TEST_VECTORS
+   }
+   }
+   }, {
.alg = "cryptd(__driver-cbc-aes-aesni)",
.test = alg_test_null,
.fips_allowed = 1,
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index d503660..6262b74 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -450,6 +450,30 @@ static struct hash_testvec rmd320_tv_template[] = {
}
 };
 
+#define CRCT10DIF_TEST_VECTORS 2
+static struct hash_testvec crct10dif_tv_template[] = {
+   {
+   .plaintext = "abc",
+   .psize  = 3,
+#ifdef __LITTLE_ENDIAN
+   .digest = "\x3b\x44",
+#else
+   .digest = "\x44\x3b",
+#endif
+   }, {
+   .plaintext =
+   "abcd",
+   .psize  = 56,
+#ifdef __LITTLE_ENDIAN
+   .digest = "\xe3\x9c",
+#else
+   .digest = "\x9c\xe3",
+#endif
+   .np = 2,
+   .tap= { 28, 28 }
+   }
+};
+
 /*
  * SHA1 test vectors  from from FIPS PUB 180-1
  * Long vector from CAVS 5.0
-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html