diff options
Diffstat (limited to 'crypto/tcrypt.h')
-rw-r--r-- | crypto/tcrypt.h | 202 |
1 files changed, 183 insertions, 19 deletions
diff --git a/crypto/tcrypt.h b/crypto/tcrypt.h index 1fac5602f633..a40c4411729e 100644 --- a/crypto/tcrypt.h +++ b/crypto/tcrypt.h | |||
@@ -28,7 +28,7 @@ | |||
28 | struct hash_testvec { | 28 | struct hash_testvec { |
29 | /* only used with keyed hash algorithms */ | 29 | /* only used with keyed hash algorithms */ |
30 | char key[128] __attribute__ ((__aligned__(4))); | 30 | char key[128] __attribute__ ((__aligned__(4))); |
31 | char plaintext[128]; | 31 | char plaintext[240]; |
32 | char digest[MAX_DIGEST_SIZE]; | 32 | char digest[MAX_DIGEST_SIZE]; |
33 | unsigned char tap[MAX_TAP]; | 33 | unsigned char tap[MAX_TAP]; |
34 | unsigned char psize; | 34 | unsigned char psize; |
@@ -36,16 +36,6 @@ struct hash_testvec { | |||
36 | unsigned char ksize; | 36 | unsigned char ksize; |
37 | }; | 37 | }; |
38 | 38 | ||
39 | struct hmac_testvec { | ||
40 | char key[128]; | ||
41 | char plaintext[128]; | ||
42 | char digest[MAX_DIGEST_SIZE]; | ||
43 | unsigned char tap[MAX_TAP]; | ||
44 | unsigned char ksize; | ||
45 | unsigned char psize; | ||
46 | unsigned char np; | ||
47 | }; | ||
48 | |||
49 | struct cipher_testvec { | 39 | struct cipher_testvec { |
50 | char key[MAX_KEYLEN] __attribute__ ((__aligned__(4))); | 40 | char key[MAX_KEYLEN] __attribute__ ((__aligned__(4))); |
51 | char iv[MAX_IVLEN]; | 41 | char iv[MAX_IVLEN]; |
@@ -65,7 +55,7 @@ struct cipher_speed { | |||
65 | unsigned int blen; | 55 | unsigned int blen; |
66 | }; | 56 | }; |
67 | 57 | ||
68 | struct digest_speed { | 58 | struct hash_speed { |
69 | unsigned int blen; /* buffer length */ | 59 | unsigned int blen; /* buffer length */ |
70 | unsigned int plen; /* per-update length */ | 60 | unsigned int plen; /* per-update length */ |
71 | }; | 61 | }; |
@@ -697,14 +687,13 @@ static struct hash_testvec tgr128_tv_template[] = { | |||
697 | }, | 687 | }, |
698 | }; | 688 | }; |
699 | 689 | ||
700 | #ifdef CONFIG_CRYPTO_HMAC | ||
701 | /* | 690 | /* |
702 | * HMAC-MD5 test vectors from RFC2202 | 691 | * HMAC-MD5 test vectors from RFC2202 |
703 | * (These need to be fixed to not use strlen). | 692 | * (These need to be fixed to not use strlen). |
704 | */ | 693 | */ |
705 | #define HMAC_MD5_TEST_VECTORS 7 | 694 | #define HMAC_MD5_TEST_VECTORS 7 |
706 | 695 | ||
707 | static struct hmac_testvec hmac_md5_tv_template[] = | 696 | static struct hash_testvec hmac_md5_tv_template[] = |
708 | { | 697 | { |
709 | { | 698 | { |
710 | .key = { [0 ... 15] = 0x0b }, | 699 | .key = { [0 ... 15] = 0x0b }, |
@@ -768,7 +757,7 @@ static struct hmac_testvec hmac_md5_tv_template[] = | |||
768 | */ | 757 | */ |
769 | #define HMAC_SHA1_TEST_VECTORS 7 | 758 | #define HMAC_SHA1_TEST_VECTORS 7 |
770 | 759 | ||
771 | static struct hmac_testvec hmac_sha1_tv_template[] = { | 760 | static struct hash_testvec hmac_sha1_tv_template[] = { |
772 | { | 761 | { |
773 | .key = { [0 ... 19] = 0x0b }, | 762 | .key = { [0 ... 19] = 0x0b }, |
774 | .ksize = 20, | 763 | .ksize = 20, |
@@ -833,7 +822,7 @@ static struct hmac_testvec hmac_sha1_tv_template[] = { | |||
833 | */ | 822 | */ |
834 | #define HMAC_SHA256_TEST_VECTORS 10 | 823 | #define HMAC_SHA256_TEST_VECTORS 10 |
835 | 824 | ||
836 | static struct hmac_testvec hmac_sha256_tv_template[] = { | 825 | static struct hash_testvec hmac_sha256_tv_template[] = { |
837 | { | 826 | { |
838 | .key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, | 827 | .key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, |
839 | 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, | 828 | 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, |
@@ -944,8 +933,6 @@ static struct hmac_testvec hmac_sha256_tv_template[] = { | |||
944 | }, | 933 | }, |
945 | }; | 934 | }; |
946 | 935 | ||
947 | #endif /* CONFIG_CRYPTO_HMAC */ | ||
948 | |||
949 | /* | 936 | /* |
950 | * DES test vectors. | 937 | * DES test vectors. |
951 | */ | 938 | */ |
@@ -2897,6 +2884,183 @@ static struct hash_testvec michael_mic_tv_template[] = { | |||
2897 | }; | 2884 | }; |
2898 | 2885 | ||
2899 | /* | 2886 | /* |
2887 | * CRC32C test vectors | ||
2888 | */ | ||
2889 | #define CRC32C_TEST_VECTORS 14 | ||
2890 | |||
2891 | static struct hash_testvec crc32c_tv_template[] = { | ||
2892 | { | ||
2893 | .psize = 0, | ||
2894 | .digest = { 0x00, 0x00, 0x00, 0x00 } | ||
2895 | }, | ||
2896 | { | ||
2897 | .key = { 0x87, 0xa9, 0xcb, 0xed }, | ||
2898 | .ksize = 4, | ||
2899 | .psize = 0, | ||
2900 | .digest = { 0x78, 0x56, 0x34, 0x12 }, | ||
2901 | }, | ||
2902 | { | ||
2903 | .key = { 0xff, 0xff, 0xff, 0xff }, | ||
2904 | .ksize = 4, | ||
2905 | .plaintext = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, | ||
2906 | 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, | ||
2907 | 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, | ||
2908 | 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, | ||
2909 | 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28 }, | ||
2910 | .psize = 40, | ||
2911 | .digest = { 0x7f, 0x15, 0x2c, 0x0e } | ||
2912 | }, | ||
2913 | { | ||
2914 | .key = { 0xff, 0xff, 0xff, 0xff }, | ||
2915 | .ksize = 4, | ||
2916 | .plaintext = { 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, | ||
2917 | 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, | ||
2918 | 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, | ||
2919 | 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, | ||
2920 | 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50 }, | ||
2921 | .psize = 40, | ||
2922 | .digest = { 0xf6, 0xeb, 0x80, 0xe9 } | ||
2923 | }, | ||
2924 | { | ||
2925 | .key = { 0xff, 0xff, 0xff, 0xff }, | ||
2926 | .ksize = 4, | ||
2927 | .plaintext = { 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, | ||
2928 | 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, | ||
2929 | 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, | ||
2930 | 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, | ||
2931 | 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78 }, | ||
2932 | .psize = 40, | ||
2933 | .digest = { 0xed, 0xbd, 0x74, 0xde } | ||
2934 | }, | ||
2935 | { | ||
2936 | .key = { 0xff, 0xff, 0xff, 0xff }, | ||
2937 | .ksize = 4, | ||
2938 | .plaintext = { 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, | ||
2939 | 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, | ||
2940 | 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, | ||
2941 | 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, | ||
2942 | 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0 }, | ||
2943 | .psize = 40, | ||
2944 | .digest = { 0x62, 0xc8, 0x79, 0xd5 } | ||
2945 | }, | ||
2946 | { | ||
2947 | .key = { 0xff, 0xff, 0xff, 0xff }, | ||
2948 | .ksize = 4, | ||
2949 | .plaintext = { 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, | ||
2950 | 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, | ||
2951 | 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, | ||
2952 | 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, | ||
2953 | 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8 }, | ||
2954 | .psize = 40, | ||
2955 | .digest = { 0xd0, 0x9a, 0x97, 0xba } | ||
2956 | }, | ||
2957 | { | ||
2958 | .key = { 0xff, 0xff, 0xff, 0xff }, | ||
2959 | .ksize = 4, | ||
2960 | .plaintext = { 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, | ||
2961 | 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, | ||
2962 | 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, | ||
2963 | 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, | ||
2964 | 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0 }, | ||
2965 | .psize = 40, | ||
2966 | .digest = { 0x13, 0xd9, 0x29, 0x2b } | ||
2967 | }, | ||
2968 | { | ||
2969 | .key = { 0x80, 0xea, 0xd3, 0xf1 }, | ||
2970 | .ksize = 4, | ||
2971 | .plaintext = { 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, | ||
2972 | 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, | ||
2973 | 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, | ||
2974 | 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, | ||
2975 | 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50 }, | ||
2976 | .psize = 40, | ||
2977 | .digest = { 0x0c, 0xb5, 0xe2, 0xa2 } | ||
2978 | }, | ||
2979 | { | ||
2980 | .key = { 0xf3, 0x4a, 0x1d, 0x5d }, | ||
2981 | .ksize = 4, | ||
2982 | .plaintext = { 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, | ||
2983 | 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, | ||
2984 | 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, | ||
2985 | 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, | ||
2986 | 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78 }, | ||
2987 | .psize = 40, | ||
2988 | .digest = { 0xd1, 0x7f, 0xfb, 0xa6 } | ||
2989 | }, | ||
2990 | { | ||
2991 | .key = { 0x2e, 0x80, 0x04, 0x59 }, | ||
2992 | .ksize = 4, | ||
2993 | .plaintext = { 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, | ||
2994 | 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, | ||
2995 | 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, | ||
2996 | 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, | ||
2997 | 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0 }, | ||
2998 | .psize = 40, | ||
2999 | .digest = { 0x59, 0x33, 0xe6, 0x7a } | ||
3000 | }, | ||
3001 | { | ||
3002 | .key = { 0xa6, 0xcc, 0x19, 0x85 }, | ||
3003 | .ksize = 4, | ||
3004 | .plaintext = { 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, | ||
3005 | 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, | ||
3006 | 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, | ||
3007 | 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, | ||
3008 | 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8 }, | ||
3009 | .psize = 40, | ||
3010 | .digest = { 0xbe, 0x03, 0x01, 0xd2 } | ||
3011 | }, | ||
3012 | { | ||
3013 | .key = { 0x41, 0xfc, 0xfe, 0x2d }, | ||
3014 | .ksize = 4, | ||
3015 | .plaintext = { 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, | ||
3016 | 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, | ||
3017 | 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, | ||
3018 | 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, | ||
3019 | 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0 }, | ||
3020 | .psize = 40, | ||
3021 | .digest = { 0x75, 0xd3, 0xc5, 0x24 } | ||
3022 | }, | ||
3023 | { | ||
3024 | .key = { 0xff, 0xff, 0xff, 0xff }, | ||
3025 | .ksize = 4, | ||
3026 | .plaintext = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, | ||
3027 | 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, | ||
3028 | 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, | ||
3029 | 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, | ||
3030 | 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, | ||
3031 | 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, | ||
3032 | 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, | ||
3033 | 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, | ||
3034 | 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, | ||
3035 | 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, | ||
3036 | 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, | ||
3037 | 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, | ||
3038 | 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, | ||
3039 | 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, | ||
3040 | 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, | ||
3041 | 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, | ||
3042 | 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, | ||
3043 | 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, | ||
3044 | 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, | ||
3045 | 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, | ||
3046 | 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, | ||
3047 | 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, | ||
3048 | 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, | ||
3049 | 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, | ||
3050 | 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, | ||
3051 | 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, | ||
3052 | 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, | ||
3053 | 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, | ||
3054 | 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, | ||
3055 | 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0 }, | ||
3056 | .psize = 240, | ||
3057 | .digest = { 0x75, 0xd3, 0xc5, 0x24 }, | ||
3058 | .np = 2, | ||
3059 | .tap = { 31, 209 } | ||
3060 | }, | ||
3061 | }; | ||
3062 | |||
3063 | /* | ||
2900 | * Cipher speed tests | 3064 | * Cipher speed tests |
2901 | */ | 3065 | */ |
2902 | static struct cipher_speed aes_speed_template[] = { | 3066 | static struct cipher_speed aes_speed_template[] = { |
@@ -2983,7 +3147,7 @@ static struct cipher_speed des_speed_template[] = { | |||
2983 | /* | 3147 | /* |
2984 | * Digest speed tests | 3148 | * Digest speed tests |
2985 | */ | 3149 | */ |
2986 | static struct digest_speed generic_digest_speed_template[] = { | 3150 | static struct hash_speed generic_hash_speed_template[] = { |
2987 | { .blen = 16, .plen = 16, }, | 3151 | { .blen = 16, .plen = 16, }, |
2988 | { .blen = 64, .plen = 16, }, | 3152 | { .blen = 64, .plen = 16, }, |
2989 | { .blen = 64, .plen = 64, }, | 3153 | { .blen = 64, .plen = 64, }, |