diff options
author | raveendra padasalagi <raveendra.padasalagi@broadcom.com> | 2016-07-01 01:46:54 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2016-07-01 11:45:24 -0400 |
commit | 98eca72fa04a9bbf28dba95efaec5aa95588fe23 (patch) | |
tree | 5fe13eec06fb23810b2d3869e33c368e0e5876d8 /crypto | |
parent | eb3547859d73629c888825d6b928f2d0dba5af41 (diff) |
crypto: sha3 - Add HMAC-SHA3 test modes and test vectors
This patch adds HMAC-SHA3 test modes in tcrypt module
and related test vectors.
Signed-off-by: Raveendra Padasalagi <raveendra.padasalagi@broadcom.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/tcrypt.c | 16 | ||||
-rw-r--r-- | crypto/testmgr.c | 40 | ||||
-rw-r--r-- | crypto/testmgr.h | 388 |
3 files changed, 444 insertions, 0 deletions
diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c index 202cfa10076c..ae22f05d5936 100644 --- a/crypto/tcrypt.c +++ b/crypto/tcrypt.c | |||
@@ -1313,6 +1313,22 @@ static int do_test(const char *alg, u32 type, u32 mask, int m) | |||
1313 | ret += tcrypt_test("hmac(crc32)"); | 1313 | ret += tcrypt_test("hmac(crc32)"); |
1314 | break; | 1314 | break; |
1315 | 1315 | ||
1316 | case 111: | ||
1317 | ret += tcrypt_test("hmac(sha3-224)"); | ||
1318 | break; | ||
1319 | |||
1320 | case 112: | ||
1321 | ret += tcrypt_test("hmac(sha3-256)"); | ||
1322 | break; | ||
1323 | |||
1324 | case 113: | ||
1325 | ret += tcrypt_test("hmac(sha3-384)"); | ||
1326 | break; | ||
1327 | |||
1328 | case 114: | ||
1329 | ret += tcrypt_test("hmac(sha3-512)"); | ||
1330 | break; | ||
1331 | |||
1316 | case 150: | 1332 | case 150: |
1317 | ret += tcrypt_test("ansi_cprng"); | 1333 | ret += tcrypt_test("ansi_cprng"); |
1318 | break; | 1334 | break; |
diff --git a/crypto/testmgr.c b/crypto/testmgr.c index 38e23be315a0..8ea0d3fcb580 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c | |||
@@ -3400,6 +3400,46 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
3400 | } | 3400 | } |
3401 | } | 3401 | } |
3402 | }, { | 3402 | }, { |
3403 | .alg = "hmac(sha3-224)", | ||
3404 | .test = alg_test_hash, | ||
3405 | .fips_allowed = 1, | ||
3406 | .suite = { | ||
3407 | .hash = { | ||
3408 | .vecs = hmac_sha3_224_tv_template, | ||
3409 | .count = HMAC_SHA3_224_TEST_VECTORS | ||
3410 | } | ||
3411 | } | ||
3412 | }, { | ||
3413 | .alg = "hmac(sha3-256)", | ||
3414 | .test = alg_test_hash, | ||
3415 | .fips_allowed = 1, | ||
3416 | .suite = { | ||
3417 | .hash = { | ||
3418 | .vecs = hmac_sha3_256_tv_template, | ||
3419 | .count = HMAC_SHA3_256_TEST_VECTORS | ||
3420 | } | ||
3421 | } | ||
3422 | }, { | ||
3423 | .alg = "hmac(sha3-384)", | ||
3424 | .test = alg_test_hash, | ||
3425 | .fips_allowed = 1, | ||
3426 | .suite = { | ||
3427 | .hash = { | ||
3428 | .vecs = hmac_sha3_384_tv_template, | ||
3429 | .count = HMAC_SHA3_384_TEST_VECTORS | ||
3430 | } | ||
3431 | } | ||
3432 | }, { | ||
3433 | .alg = "hmac(sha3-512)", | ||
3434 | .test = alg_test_hash, | ||
3435 | .fips_allowed = 1, | ||
3436 | .suite = { | ||
3437 | .hash = { | ||
3438 | .vecs = hmac_sha3_512_tv_template, | ||
3439 | .count = HMAC_SHA3_512_TEST_VECTORS | ||
3440 | } | ||
3441 | } | ||
3442 | }, { | ||
3403 | .alg = "hmac(sha384)", | 3443 | .alg = "hmac(sha384)", |
3404 | .test = alg_test_hash, | 3444 | .test = alg_test_hash, |
3405 | .fips_allowed = 1, | 3445 | .fips_allowed = 1, |
diff --git a/crypto/testmgr.h b/crypto/testmgr.h index 7358931b3082..4ce2d866919d 100644 --- a/crypto/testmgr.h +++ b/crypto/testmgr.h | |||
@@ -3694,6 +3694,394 @@ static struct hash_testvec hmac_sha512_tv_template[] = { | |||
3694 | }, | 3694 | }, |
3695 | }; | 3695 | }; |
3696 | 3696 | ||
3697 | #define HMAC_SHA3_224_TEST_VECTORS 4 | ||
3698 | |||
3699 | static struct hash_testvec hmac_sha3_224_tv_template[] = { | ||
3700 | { | ||
3701 | .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" | ||
3702 | "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" | ||
3703 | "\x0b\x0b\x0b\x0b", | ||
3704 | .ksize = 20, | ||
3705 | .plaintext = "Hi There", | ||
3706 | .psize = 8, | ||
3707 | .digest = "\x3b\x16\x54\x6b\xbc\x7b\xe2\x70" | ||
3708 | "\x6a\x03\x1d\xca\xfd\x56\x37\x3d" | ||
3709 | "\x98\x84\x36\x76\x41\xd8\xc5\x9a" | ||
3710 | "\xf3\xc8\x60\xf7", | ||
3711 | }, { | ||
3712 | .key = "Jefe", | ||
3713 | .ksize = 4, | ||
3714 | .plaintext = "what do ya want for nothing?", | ||
3715 | .psize = 28, | ||
3716 | .digest = "\x7f\xdb\x8d\xd8\x8b\xd2\xf6\x0d" | ||
3717 | "\x1b\x79\x86\x34\xad\x38\x68\x11" | ||
3718 | "\xc2\xcf\xc8\x5b\xfa\xf5\xd5\x2b" | ||
3719 | "\xba\xce\x5e\x66", | ||
3720 | .np = 4, | ||
3721 | .tap = { 7, 7, 7, 7 } | ||
3722 | }, { | ||
3723 | .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3724 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3725 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3726 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3727 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3728 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3729 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3730 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3731 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3732 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3733 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3734 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3735 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3736 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3737 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3738 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3739 | "\xaa\xaa\xaa", | ||
3740 | .ksize = 131, | ||
3741 | .plaintext = "Test Using Large" | ||
3742 | "r Than Block-Siz" | ||
3743 | "e Key - Hash Key" | ||
3744 | " First", | ||
3745 | .psize = 54, | ||
3746 | .digest = "\xb4\xa1\xf0\x4c\x00\x28\x7a\x9b" | ||
3747 | "\x7f\x60\x75\xb3\x13\xd2\x79\xb8" | ||
3748 | "\x33\xbc\x8f\x75\x12\x43\x52\xd0" | ||
3749 | "\x5f\xb9\x99\x5f", | ||
3750 | }, { | ||
3751 | .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3752 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3753 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3754 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3755 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3756 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3757 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3758 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3759 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3760 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3761 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3762 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3763 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3764 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3765 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3766 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3767 | "\xaa\xaa\xaa", | ||
3768 | .ksize = 131, | ||
3769 | .plaintext = | ||
3770 | "This is a test u" | ||
3771 | "sing a larger th" | ||
3772 | "an block-size ke" | ||
3773 | "y and a larger t" | ||
3774 | "han block-size d" | ||
3775 | "ata. The key nee" | ||
3776 | "ds to be hashed " | ||
3777 | "before being use" | ||
3778 | "d by the HMAC al" | ||
3779 | "gorithm.", | ||
3780 | .psize = 152, | ||
3781 | .digest = "\x05\xd8\xcd\x6d\x00\xfa\xea\x8d" | ||
3782 | "\x1e\xb6\x8a\xde\x28\x73\x0b\xbd" | ||
3783 | "\x3c\xba\xb6\x92\x9f\x0a\x08\x6b" | ||
3784 | "\x29\xcd\x62\xa0", | ||
3785 | }, | ||
3786 | }; | ||
3787 | |||
3788 | #define HMAC_SHA3_256_TEST_VECTORS 4 | ||
3789 | |||
3790 | static struct hash_testvec hmac_sha3_256_tv_template[] = { | ||
3791 | { | ||
3792 | .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" | ||
3793 | "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" | ||
3794 | "\x0b\x0b\x0b\x0b", | ||
3795 | .ksize = 20, | ||
3796 | .plaintext = "Hi There", | ||
3797 | .psize = 8, | ||
3798 | .digest = "\xba\x85\x19\x23\x10\xdf\xfa\x96" | ||
3799 | "\xe2\xa3\xa4\x0e\x69\x77\x43\x51" | ||
3800 | "\x14\x0b\xb7\x18\x5e\x12\x02\xcd" | ||
3801 | "\xcc\x91\x75\x89\xf9\x5e\x16\xbb", | ||
3802 | }, { | ||
3803 | .key = "Jefe", | ||
3804 | .ksize = 4, | ||
3805 | .plaintext = "what do ya want for nothing?", | ||
3806 | .psize = 28, | ||
3807 | .digest = "\xc7\xd4\x07\x2e\x78\x88\x77\xae" | ||
3808 | "\x35\x96\xbb\xb0\xda\x73\xb8\x87" | ||
3809 | "\xc9\x17\x1f\x93\x09\x5b\x29\x4a" | ||
3810 | "\xe8\x57\xfb\xe2\x64\x5e\x1b\xa5", | ||
3811 | .np = 4, | ||
3812 | .tap = { 7, 7, 7, 7 } | ||
3813 | }, { | ||
3814 | .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3815 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3816 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3817 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3818 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3819 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3820 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3821 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3822 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3823 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3824 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3825 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3826 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3827 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3828 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3829 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3830 | "\xaa\xaa\xaa", | ||
3831 | .ksize = 131, | ||
3832 | .plaintext = "Test Using Large" | ||
3833 | "r Than Block-Siz" | ||
3834 | "e Key - Hash Key" | ||
3835 | " First", | ||
3836 | .psize = 54, | ||
3837 | .digest = "\xed\x73\xa3\x74\xb9\x6c\x00\x52" | ||
3838 | "\x35\xf9\x48\x03\x2f\x09\x67\x4a" | ||
3839 | "\x58\xc0\xce\x55\x5c\xfc\x1f\x22" | ||
3840 | "\x3b\x02\x35\x65\x60\x31\x2c\x3b", | ||
3841 | }, { | ||
3842 | .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3843 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3844 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3845 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3846 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3847 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3848 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3849 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3850 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3851 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3852 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3853 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3854 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3855 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3856 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3857 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3858 | "\xaa\xaa\xaa", | ||
3859 | .ksize = 131, | ||
3860 | .plaintext = | ||
3861 | "This is a test u" | ||
3862 | "sing a larger th" | ||
3863 | "an block-size ke" | ||
3864 | "y and a larger t" | ||
3865 | "han block-size d" | ||
3866 | "ata. The key nee" | ||
3867 | "ds to be hashed " | ||
3868 | "before being use" | ||
3869 | "d by the HMAC al" | ||
3870 | "gorithm.", | ||
3871 | .psize = 152, | ||
3872 | .digest = "\x65\xc5\xb0\x6d\x4c\x3d\xe3\x2a" | ||
3873 | "\x7a\xef\x87\x63\x26\x1e\x49\xad" | ||
3874 | "\xb6\xe2\x29\x3e\xc8\xe7\xc6\x1e" | ||
3875 | "\x8d\xe6\x17\x01\xfc\x63\xe1\x23", | ||
3876 | }, | ||
3877 | }; | ||
3878 | |||
3879 | #define HMAC_SHA3_384_TEST_VECTORS 4 | ||
3880 | |||
3881 | static struct hash_testvec hmac_sha3_384_tv_template[] = { | ||
3882 | { | ||
3883 | .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" | ||
3884 | "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" | ||
3885 | "\x0b\x0b\x0b\x0b", | ||
3886 | .ksize = 20, | ||
3887 | .plaintext = "Hi There", | ||
3888 | .psize = 8, | ||
3889 | .digest = "\x68\xd2\xdc\xf7\xfd\x4d\xdd\x0a" | ||
3890 | "\x22\x40\xc8\xa4\x37\x30\x5f\x61" | ||
3891 | "\xfb\x73\x34\xcf\xb5\xd0\x22\x6e" | ||
3892 | "\x1b\xc2\x7d\xc1\x0a\x2e\x72\x3a" | ||
3893 | "\x20\xd3\x70\xb4\x77\x43\x13\x0e" | ||
3894 | "\x26\xac\x7e\x3d\x53\x28\x86\xbd", | ||
3895 | }, { | ||
3896 | .key = "Jefe", | ||
3897 | .ksize = 4, | ||
3898 | .plaintext = "what do ya want for nothing?", | ||
3899 | .psize = 28, | ||
3900 | .digest = "\xf1\x10\x1f\x8c\xbf\x97\x66\xfd" | ||
3901 | "\x67\x64\xd2\xed\x61\x90\x3f\x21" | ||
3902 | "\xca\x9b\x18\xf5\x7c\xf3\xe1\xa2" | ||
3903 | "\x3c\xa1\x35\x08\xa9\x32\x43\xce" | ||
3904 | "\x48\xc0\x45\xdc\x00\x7f\x26\xa2" | ||
3905 | "\x1b\x3f\x5e\x0e\x9d\xf4\xc2\x0a", | ||
3906 | .np = 4, | ||
3907 | .tap = { 7, 7, 7, 7 } | ||
3908 | }, { | ||
3909 | .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3910 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3911 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3912 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3913 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3914 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3915 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3916 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3917 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3918 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3919 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3920 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3921 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3922 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3923 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3924 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3925 | "\xaa\xaa\xaa", | ||
3926 | .ksize = 131, | ||
3927 | .plaintext = "Test Using Large" | ||
3928 | "r Than Block-Siz" | ||
3929 | "e Key - Hash Key" | ||
3930 | " First", | ||
3931 | .psize = 54, | ||
3932 | .digest = "\x0f\xc1\x95\x13\xbf\x6b\xd8\x78" | ||
3933 | "\x03\x70\x16\x70\x6a\x0e\x57\xbc" | ||
3934 | "\x52\x81\x39\x83\x6b\x9a\x42\xc3" | ||
3935 | "\xd4\x19\xe4\x98\xe0\xe1\xfb\x96" | ||
3936 | "\x16\xfd\x66\x91\x38\xd3\x3a\x11" | ||
3937 | "\x05\xe0\x7c\x72\xb6\x95\x3b\xcc", | ||
3938 | }, { | ||
3939 | .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3940 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3941 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3942 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3943 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3944 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3945 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3946 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3947 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3948 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3949 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3950 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3951 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3952 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3953 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3954 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
3955 | "\xaa\xaa\xaa", | ||
3956 | .ksize = 131, | ||
3957 | .plaintext = | ||
3958 | "This is a test u" | ||
3959 | "sing a larger th" | ||
3960 | "an block-size ke" | ||
3961 | "y and a larger t" | ||
3962 | "han block-size d" | ||
3963 | "ata. The key nee" | ||
3964 | "ds to be hashed " | ||
3965 | "before being use" | ||
3966 | "d by the HMAC al" | ||
3967 | "gorithm.", | ||
3968 | .psize = 152, | ||
3969 | .digest = "\x02\x6f\xdf\x6b\x50\x74\x1e\x37" | ||
3970 | "\x38\x99\xc9\xf7\xd5\x40\x6d\x4e" | ||
3971 | "\xb0\x9f\xc6\x66\x56\x36\xfc\x1a" | ||
3972 | "\x53\x00\x29\xdd\xf5\xcf\x3c\xa5" | ||
3973 | "\xa9\x00\xed\xce\x01\xf5\xf6\x1e" | ||
3974 | "\x2f\x40\x8c\xdf\x2f\xd3\xe7\xe8", | ||
3975 | }, | ||
3976 | }; | ||
3977 | |||
3978 | #define HMAC_SHA3_512_TEST_VECTORS 4 | ||
3979 | |||
3980 | static struct hash_testvec hmac_sha3_512_tv_template[] = { | ||
3981 | { | ||
3982 | .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" | ||
3983 | "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" | ||
3984 | "\x0b\x0b\x0b\x0b", | ||
3985 | .ksize = 20, | ||
3986 | .plaintext = "Hi There", | ||
3987 | .psize = 8, | ||
3988 | .digest = "\xeb\x3f\xbd\x4b\x2e\xaa\xb8\xf5" | ||
3989 | "\xc5\x04\xbd\x3a\x41\x46\x5a\xac" | ||
3990 | "\xec\x15\x77\x0a\x7c\xab\xac\x53" | ||
3991 | "\x1e\x48\x2f\x86\x0b\x5e\xc7\xba" | ||
3992 | "\x47\xcc\xb2\xc6\xf2\xaf\xce\x8f" | ||
3993 | "\x88\xd2\x2b\x6d\xc6\x13\x80\xf2" | ||
3994 | "\x3a\x66\x8f\xd3\x88\x8b\xb8\x05" | ||
3995 | "\x37\xc0\xa0\xb8\x64\x07\x68\x9e", | ||
3996 | }, { | ||
3997 | .key = "Jefe", | ||
3998 | .ksize = 4, | ||
3999 | .plaintext = "what do ya want for nothing?", | ||
4000 | .psize = 28, | ||
4001 | .digest = "\x5a\x4b\xfe\xab\x61\x66\x42\x7c" | ||
4002 | "\x7a\x36\x47\xb7\x47\x29\x2b\x83" | ||
4003 | "\x84\x53\x7c\xdb\x89\xaf\xb3\xbf" | ||
4004 | "\x56\x65\xe4\xc5\xe7\x09\x35\x0b" | ||
4005 | "\x28\x7b\xae\xc9\x21\xfd\x7c\xa0" | ||
4006 | "\xee\x7a\x0c\x31\xd0\x22\xa9\x5e" | ||
4007 | "\x1f\xc9\x2b\xa9\xd7\x7d\xf8\x83" | ||
4008 | "\x96\x02\x75\xbe\xb4\xe6\x20\x24", | ||
4009 | .np = 4, | ||
4010 | .tap = { 7, 7, 7, 7 } | ||
4011 | }, { | ||
4012 | .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4013 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4014 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4015 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4016 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4017 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4018 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4019 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4020 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4021 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4022 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4023 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4024 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4025 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4026 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4027 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4028 | "\xaa\xaa\xaa", | ||
4029 | .ksize = 131, | ||
4030 | .plaintext = "Test Using Large" | ||
4031 | "r Than Block-Siz" | ||
4032 | "e Key - Hash Key" | ||
4033 | " First", | ||
4034 | .psize = 54, | ||
4035 | .digest = "\x00\xf7\x51\xa9\xe5\x06\x95\xb0" | ||
4036 | "\x90\xed\x69\x11\xa4\xb6\x55\x24" | ||
4037 | "\x95\x1c\xdc\x15\xa7\x3a\x5d\x58" | ||
4038 | "\xbb\x55\x21\x5e\xa2\xcd\x83\x9a" | ||
4039 | "\xc7\x9d\x2b\x44\xa3\x9b\xaf\xab" | ||
4040 | "\x27\xe8\x3f\xde\x9e\x11\xf6\x34" | ||
4041 | "\x0b\x11\xd9\x91\xb1\xb9\x1b\xf2" | ||
4042 | "\xee\xe7\xfc\x87\x24\x26\xc3\xa4", | ||
4043 | }, { | ||
4044 | .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4045 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4046 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4047 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4048 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4049 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4050 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4051 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4052 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4053 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4054 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4055 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4056 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4057 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4058 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4059 | "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" | ||
4060 | "\xaa\xaa\xaa", | ||
4061 | .ksize = 131, | ||
4062 | .plaintext = | ||
4063 | "This is a test u" | ||
4064 | "sing a larger th" | ||
4065 | "an block-size ke" | ||
4066 | "y and a larger t" | ||
4067 | "han block-size d" | ||
4068 | "ata. The key nee" | ||
4069 | "ds to be hashed " | ||
4070 | "before being use" | ||
4071 | "d by the HMAC al" | ||
4072 | "gorithm.", | ||
4073 | .psize = 152, | ||
4074 | .digest = "\x38\xa4\x56\xa0\x04\xbd\x10\xd3" | ||
4075 | "\x2c\x9a\xb8\x33\x66\x84\x11\x28" | ||
4076 | "\x62\xc3\xdb\x61\xad\xcc\xa3\x18" | ||
4077 | "\x29\x35\x5e\xaf\x46\xfd\x5c\x73" | ||
4078 | "\xd0\x6a\x1f\x0d\x13\xfe\xc9\xa6" | ||
4079 | "\x52\xfb\x38\x11\xb5\x77\xb1\xb1" | ||
4080 | "\xd1\xb9\x78\x9f\x97\xae\x5b\x83" | ||
4081 | "\xc6\xf4\x4d\xfc\xf1\xd6\x7e\xba", | ||
4082 | }, | ||
4083 | }; | ||
4084 | |||
3697 | /* | 4085 | /* |
3698 | * Poly1305 test vectors from RFC7539 A.3. | 4086 | * Poly1305 test vectors from RFC7539 A.3. |
3699 | */ | 4087 | */ |