aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Siewior <sebastian@breakpoint.cc>2008-03-11 09:24:26 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2008-04-20 22:19:21 -0400
commit477035c2abdcff7583369e5777cb7be1bb1dbea8 (patch)
tree797db8233c052ae8128e28c304d15fa8e25c1b68
parent78f8b3a24022c48fe600f4aba415d63ceeaec9cd (diff)
[CRYPTO] tcrypt: Group common speed templates
Some crypto ciphers which are impleneted support similar key sizes (16,24 & 32 byte). They can be grouped together and use a common templatte instead of their own which contains the same data. Signed-off-by: Sebastian Siewior <sebastian@breakpoint.cc> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--crypto/tcrypt.c70
-rw-r--r--crypto/tcrypt.h158
2 files changed, 91 insertions, 137 deletions
diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
index 1ab8c017a011..cff18364fbc1 100644
--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -1621,89 +1621,85 @@ static void do_test(void)
1621 1621
1622 case 200: 1622 case 200:
1623 test_cipher_speed("ecb(aes)", ENCRYPT, sec, NULL, 0, 1623 test_cipher_speed("ecb(aes)", ENCRYPT, sec, NULL, 0,
1624 aes_speed_template); 1624 speed_template_16_24_32);
1625 test_cipher_speed("ecb(aes)", DECRYPT, sec, NULL, 0, 1625 test_cipher_speed("ecb(aes)", DECRYPT, sec, NULL, 0,
1626 aes_speed_template); 1626 speed_template_16_24_32);
1627 test_cipher_speed("cbc(aes)", ENCRYPT, sec, NULL, 0, 1627 test_cipher_speed("cbc(aes)", ENCRYPT, sec, NULL, 0,
1628 aes_speed_template); 1628 speed_template_16_24_32);
1629 test_cipher_speed("cbc(aes)", DECRYPT, sec, NULL, 0, 1629 test_cipher_speed("cbc(aes)", DECRYPT, sec, NULL, 0,
1630 aes_speed_template); 1630 speed_template_16_24_32);
1631 test_cipher_speed("lrw(aes)", ENCRYPT, sec, NULL, 0, 1631 test_cipher_speed("lrw(aes)", ENCRYPT, sec, NULL, 0,
1632 aes_lrw_speed_template); 1632 speed_template_32_40_48);
1633 test_cipher_speed("lrw(aes)", DECRYPT, sec, NULL, 0, 1633 test_cipher_speed("lrw(aes)", DECRYPT, sec, NULL, 0,
1634 aes_lrw_speed_template); 1634 speed_template_32_40_48);
1635 test_cipher_speed("xts(aes)", ENCRYPT, sec, NULL, 0, 1635 test_cipher_speed("xts(aes)", ENCRYPT, sec, NULL, 0,
1636 aes_xts_speed_template); 1636 speed_template_32_48_64);
1637 test_cipher_speed("xts(aes)", DECRYPT, sec, NULL, 0, 1637 test_cipher_speed("xts(aes)", DECRYPT, sec, NULL, 0,
1638 aes_xts_speed_template); 1638 speed_template_32_48_64);
1639 break; 1639 break;
1640 1640
1641 case 201: 1641 case 201:
1642 test_cipher_speed("ecb(des3_ede)", ENCRYPT, sec, 1642 test_cipher_speed("ecb(des3_ede)", ENCRYPT, sec,
1643 des3_ede_enc_tv_template, 1643 des3_ede_enc_tv_template, DES3_EDE_ENC_TEST_VECTORS,
1644 DES3_EDE_ENC_TEST_VECTORS, 1644 speed_template_24);
1645 des3_ede_speed_template);
1646 test_cipher_speed("ecb(des3_ede)", DECRYPT, sec, 1645 test_cipher_speed("ecb(des3_ede)", DECRYPT, sec,
1647 des3_ede_dec_tv_template, 1646 des3_ede_enc_tv_template, DES3_EDE_ENC_TEST_VECTORS,
1648 DES3_EDE_DEC_TEST_VECTORS, 1647 speed_template_24);
1649 des3_ede_speed_template);
1650 test_cipher_speed("cbc(des3_ede)", ENCRYPT, sec, 1648 test_cipher_speed("cbc(des3_ede)", ENCRYPT, sec,
1651 des3_ede_enc_tv_template, 1649 des3_ede_enc_tv_template, DES3_EDE_ENC_TEST_VECTORS,
1652 DES3_EDE_ENC_TEST_VECTORS, 1650 speed_template_24);
1653 des3_ede_speed_template);
1654 test_cipher_speed("cbc(des3_ede)", DECRYPT, sec, 1651 test_cipher_speed("cbc(des3_ede)", DECRYPT, sec,
1655 des3_ede_dec_tv_template, 1652 des3_ede_enc_tv_template, DES3_EDE_ENC_TEST_VECTORS,
1656 DES3_EDE_DEC_TEST_VECTORS, 1653 speed_template_24);
1657 des3_ede_speed_template);
1658 break; 1654 break;
1659 1655
1660 case 202: 1656 case 202:
1661 test_cipher_speed("ecb(twofish)", ENCRYPT, sec, NULL, 0, 1657 test_cipher_speed("ecb(twofish)", ENCRYPT, sec, NULL, 0,
1662 twofish_speed_template); 1658 speed_template_16_24_32);
1663 test_cipher_speed("ecb(twofish)", DECRYPT, sec, NULL, 0, 1659 test_cipher_speed("ecb(twofish)", DECRYPT, sec, NULL, 0,
1664 twofish_speed_template); 1660 speed_template_16_24_32);
1665 test_cipher_speed("cbc(twofish)", ENCRYPT, sec, NULL, 0, 1661 test_cipher_speed("cbc(twofish)", ENCRYPT, sec, NULL, 0,
1666 twofish_speed_template); 1662 speed_template_16_24_32);
1667 test_cipher_speed("cbc(twofish)", DECRYPT, sec, NULL, 0, 1663 test_cipher_speed("cbc(twofish)", DECRYPT, sec, NULL, 0,
1668 twofish_speed_template); 1664 speed_template_16_24_32);
1669 break; 1665 break;
1670 1666
1671 case 203: 1667 case 203:
1672 test_cipher_speed("ecb(blowfish)", ENCRYPT, sec, NULL, 0, 1668 test_cipher_speed("ecb(blowfish)", ENCRYPT, sec, NULL, 0,
1673 blowfish_speed_template); 1669 speed_template_8_32);
1674 test_cipher_speed("ecb(blowfish)", DECRYPT, sec, NULL, 0, 1670 test_cipher_speed("ecb(blowfish)", DECRYPT, sec, NULL, 0,
1675 blowfish_speed_template); 1671 speed_template_8_32);
1676 test_cipher_speed("cbc(blowfish)", ENCRYPT, sec, NULL, 0, 1672 test_cipher_speed("cbc(blowfish)", ENCRYPT, sec, NULL, 0,
1677 blowfish_speed_template); 1673 speed_template_8_32);
1678 test_cipher_speed("cbc(blowfish)", DECRYPT, sec, NULL, 0, 1674 test_cipher_speed("cbc(blowfish)", DECRYPT, sec, NULL, 0,
1679 blowfish_speed_template); 1675 speed_template_8_32);
1680 break; 1676 break;
1681 1677
1682 case 204: 1678 case 204:
1683 test_cipher_speed("ecb(des)", ENCRYPT, sec, NULL, 0, 1679 test_cipher_speed("ecb(des)", ENCRYPT, sec, NULL, 0,
1684 des_speed_template); 1680 speed_template_8);
1685 test_cipher_speed("ecb(des)", DECRYPT, sec, NULL, 0, 1681 test_cipher_speed("ecb(des)", DECRYPT, sec, NULL, 0,
1686 des_speed_template); 1682 speed_template_8);
1687 test_cipher_speed("cbc(des)", ENCRYPT, sec, NULL, 0, 1683 test_cipher_speed("cbc(des)", ENCRYPT, sec, NULL, 0,
1688 des_speed_template); 1684 speed_template_8);
1689 test_cipher_speed("cbc(des)", DECRYPT, sec, NULL, 0, 1685 test_cipher_speed("cbc(des)", DECRYPT, sec, NULL, 0,
1690 des_speed_template); 1686 speed_template_8);
1691 break; 1687 break;
1692 1688
1693 case 205: 1689 case 205:
1694 test_cipher_speed("ecb(camellia)", ENCRYPT, sec, NULL, 0, 1690 test_cipher_speed("ecb(camellia)", ENCRYPT, sec, NULL, 0,
1695 camellia_speed_template); 1691 speed_template_16_24_32);
1696 test_cipher_speed("ecb(camellia)", DECRYPT, sec, NULL, 0, 1692 test_cipher_speed("ecb(camellia)", DECRYPT, sec, NULL, 0,
1697 camellia_speed_template); 1693 speed_template_16_24_32);
1698 test_cipher_speed("cbc(camellia)", ENCRYPT, sec, NULL, 0, 1694 test_cipher_speed("cbc(camellia)", ENCRYPT, sec, NULL, 0,
1699 camellia_speed_template); 1695 speed_template_16_24_32);
1700 test_cipher_speed("cbc(camellia)", DECRYPT, sec, NULL, 0, 1696 test_cipher_speed("cbc(camellia)", DECRYPT, sec, NULL, 0,
1701 camellia_speed_template); 1697 speed_template_16_24_32);
1702 break; 1698 break;
1703 1699
1704 case 206: 1700 case 206:
1705 test_cipher_speed("salsa20", ENCRYPT, sec, NULL, 0, 1701 test_cipher_speed("salsa20", ENCRYPT, sec, NULL, 0,
1706 salsa20_speed_template); 1702 speed_template_16_32);
1707 break; 1703 break;
1708 1704
1709 case 300: 1705 case 300:
diff --git a/crypto/tcrypt.h b/crypto/tcrypt.h
index f785e5618e11..4180a7463e4e 100644
--- a/crypto/tcrypt.h
+++ b/crypto/tcrypt.h
@@ -8032,7 +8032,62 @@ static struct hash_testvec crc32c_tv_template[] = {
8032/* 8032/*
8033 * Cipher speed tests 8033 * Cipher speed tests
8034 */ 8034 */
8035static struct cipher_speed aes_speed_template[] = { 8035static struct cipher_speed speed_template_8[] = {
8036 { .klen = 8, .blen = 16, },
8037 { .klen = 8, .blen = 64, },
8038 { .klen = 8, .blen = 256, },
8039 { .klen = 8, .blen = 1024, },
8040 { .klen = 8, .blen = 8192, },
8041
8042 /* End marker */
8043 { .klen = 0, .blen = 0, }
8044};
8045
8046static struct cipher_speed speed_template_24[] = {
8047 { .klen = 24, .blen = 16, },
8048 { .klen = 24, .blen = 64, },
8049 { .klen = 24, .blen = 256, },
8050 { .klen = 24, .blen = 1024, },
8051 { .klen = 24, .blen = 8192, },
8052
8053 /* End marker */
8054 { .klen = 0, .blen = 0, }
8055};
8056
8057static struct cipher_speed speed_template_8_32[] = {
8058 /* Don't support blowfish keys > 256 bit in this test */
8059 { .klen = 8, .blen = 16, },
8060 { .klen = 8, .blen = 64, },
8061 { .klen = 8, .blen = 256, },
8062 { .klen = 8, .blen = 1024, },
8063 { .klen = 8, .blen = 8192, },
8064 { .klen = 32, .blen = 16, },
8065 { .klen = 32, .blen = 64, },
8066 { .klen = 32, .blen = 256, },
8067 { .klen = 32, .blen = 1024, },
8068 { .klen = 32, .blen = 8192, },
8069
8070 /* End marker */
8071 { .klen = 0, .blen = 0, }
8072};
8073
8074static struct cipher_speed speed_template_16_32[] = {
8075 { .klen = 16, .blen = 16, },
8076 { .klen = 16, .blen = 64, },
8077 { .klen = 16, .blen = 256, },
8078 { .klen = 16, .blen = 1024, },
8079 { .klen = 16, .blen = 8192, },
8080 { .klen = 32, .blen = 16, },
8081 { .klen = 32, .blen = 64, },
8082 { .klen = 32, .blen = 256, },
8083 { .klen = 32, .blen = 1024, },
8084 { .klen = 32, .blen = 8192, },
8085
8086 /* End marker */
8087 { .klen = 0, .blen = 0, }
8088};
8089
8090static struct cipher_speed speed_template_16_24_32[] = {
8036 { .klen = 16, .blen = 16, }, 8091 { .klen = 16, .blen = 16, },
8037 { .klen = 16, .blen = 64, }, 8092 { .klen = 16, .blen = 64, },
8038 { .klen = 16, .blen = 256, }, 8093 { .klen = 16, .blen = 256, },
@@ -8053,7 +8108,7 @@ static struct cipher_speed aes_speed_template[] = {
8053 { .klen = 0, .blen = 0, } 8108 { .klen = 0, .blen = 0, }
8054}; 8109};
8055 8110
8056static struct cipher_speed aes_lrw_speed_template[] = { 8111static struct cipher_speed speed_template_32_40_48[] = {
8057 { .klen = 32, .blen = 16, }, 8112 { .klen = 32, .blen = 16, },
8058 { .klen = 32, .blen = 64, }, 8113 { .klen = 32, .blen = 64, },
8059 { .klen = 32, .blen = 256, }, 8114 { .klen = 32, .blen = 256, },
@@ -8074,7 +8129,7 @@ static struct cipher_speed aes_lrw_speed_template[] = {
8074 { .klen = 0, .blen = 0, } 8129 { .klen = 0, .blen = 0, }
8075}; 8130};
8076 8131
8077static struct cipher_speed aes_xts_speed_template[] = { 8132static struct cipher_speed speed_template_32_48_64[] = {
8078 { .klen = 32, .blen = 16, }, 8133 { .klen = 32, .blen = 16, },
8079 { .klen = 32, .blen = 64, }, 8134 { .klen = 32, .blen = 64, },
8080 { .klen = 32, .blen = 256, }, 8135 { .klen = 32, .blen = 256, },
@@ -8095,66 +8150,6 @@ static struct cipher_speed aes_xts_speed_template[] = {
8095 { .klen = 0, .blen = 0, } 8150 { .klen = 0, .blen = 0, }
8096}; 8151};
8097 8152
8098static struct cipher_speed des3_ede_speed_template[] = {
8099 { .klen = 24, .blen = 16, },
8100 { .klen = 24, .blen = 64, },
8101 { .klen = 24, .blen = 256, },
8102 { .klen = 24, .blen = 1024, },
8103 { .klen = 24, .blen = 8192, },
8104
8105 /* End marker */
8106 { .klen = 0, .blen = 0, }
8107};
8108
8109static struct cipher_speed twofish_speed_template[] = {
8110 { .klen = 16, .blen = 16, },
8111 { .klen = 16, .blen = 64, },
8112 { .klen = 16, .blen = 256, },
8113 { .klen = 16, .blen = 1024, },
8114 { .klen = 16, .blen = 8192, },
8115 { .klen = 24, .blen = 16, },
8116 { .klen = 24, .blen = 64, },
8117 { .klen = 24, .blen = 256, },
8118 { .klen = 24, .blen = 1024, },
8119 { .klen = 24, .blen = 8192, },
8120 { .klen = 32, .blen = 16, },
8121 { .klen = 32, .blen = 64, },
8122 { .klen = 32, .blen = 256, },
8123 { .klen = 32, .blen = 1024, },
8124 { .klen = 32, .blen = 8192, },
8125
8126 /* End marker */
8127 { .klen = 0, .blen = 0, }
8128};
8129
8130static struct cipher_speed blowfish_speed_template[] = {
8131 /* Don't support blowfish keys > 256 bit in this test */
8132 { .klen = 8, .blen = 16, },
8133 { .klen = 8, .blen = 64, },
8134 { .klen = 8, .blen = 256, },
8135 { .klen = 8, .blen = 1024, },
8136 { .klen = 8, .blen = 8192, },
8137 { .klen = 32, .blen = 16, },
8138 { .klen = 32, .blen = 64, },
8139 { .klen = 32, .blen = 256, },
8140 { .klen = 32, .blen = 1024, },
8141 { .klen = 32, .blen = 8192, },
8142
8143 /* End marker */
8144 { .klen = 0, .blen = 0, }
8145};
8146
8147static struct cipher_speed des_speed_template[] = {
8148 { .klen = 8, .blen = 16, },
8149 { .klen = 8, .blen = 64, },
8150 { .klen = 8, .blen = 256, },
8151 { .klen = 8, .blen = 1024, },
8152 { .klen = 8, .blen = 8192, },
8153
8154 /* End marker */
8155 { .klen = 0, .blen = 0, }
8156};
8157
8158/* 8153/*
8159 * Digest speed tests 8154 * Digest speed tests
8160 */ 8155 */
@@ -8186,41 +8181,4 @@ static struct hash_speed generic_hash_speed_template[] = {
8186 { .blen = 0, .plen = 0, } 8181 { .blen = 0, .plen = 0, }
8187}; 8182};
8188 8183
8189static struct cipher_speed camellia_speed_template[] = {
8190 { .klen = 16, .blen = 16, },
8191 { .klen = 16, .blen = 64, },
8192 { .klen = 16, .blen = 256, },
8193 { .klen = 16, .blen = 1024, },
8194 { .klen = 16, .blen = 8192, },
8195 { .klen = 24, .blen = 16, },
8196 { .klen = 24, .blen = 64, },
8197 { .klen = 24, .blen = 256, },
8198 { .klen = 24, .blen = 1024, },
8199 { .klen = 24, .blen = 8192, },
8200 { .klen = 32, .blen = 16, },
8201 { .klen = 32, .blen = 64, },
8202 { .klen = 32, .blen = 256, },
8203 { .klen = 32, .blen = 1024, },
8204 { .klen = 32, .blen = 8192, },
8205
8206 /* End marker */
8207 { .klen = 0, .blen = 0, }
8208};
8209
8210static struct cipher_speed salsa20_speed_template[] = {
8211 { .klen = 16, .blen = 16, },
8212 { .klen = 16, .blen = 64, },
8213 { .klen = 16, .blen = 256, },
8214 { .klen = 16, .blen = 1024, },
8215 { .klen = 16, .blen = 8192, },
8216 { .klen = 32, .blen = 16, },
8217 { .klen = 32, .blen = 64, },
8218 { .klen = 32, .blen = 256, },
8219 { .klen = 32, .blen = 1024, },
8220 { .klen = 32, .blen = 8192, },
8221
8222 /* End marker */
8223 { .klen = 0, .blen = 0, }
8224};
8225
8226#endif /* _CRYPTO_TCRYPT_H */ 8184#endif /* _CRYPTO_TCRYPT_H */