diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-09-08 10:57:11 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-09-08 10:57:11 +0000 |
commit | 9365745f8e7b8c14dc1198deebe275fc322ca2e0 (patch) | |
tree | 822da2780cafa2776461356d8a0cf5b429c26519 /toolchain | |
parent | 8a7a9394700455150c3c7a372565b96294ed05e4 (diff) | |
download | upstream-9365745f8e7b8c14dc1198deebe275fc322ca2e0.tar.gz upstream-9365745f8e7b8c14dc1198deebe275fc322ca2e0.tar.bz2 upstream-9365745f8e7b8c14dc1198deebe275fc322ca2e0.zip |
musl: add a hack to remove unused crypt() algorithms, saves ~14k after lzma
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 46816
Diffstat (limited to 'toolchain')
-rw-r--r-- | toolchain/musl/patches/901-crypt_size_hack.patch | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/toolchain/musl/patches/901-crypt_size_hack.patch b/toolchain/musl/patches/901-crypt_size_hack.patch new file mode 100644 index 0000000000..635437f819 --- /dev/null +++ b/toolchain/musl/patches/901-crypt_size_hack.patch @@ -0,0 +1,110 @@ +--- a/src/crypt/crypt_r.c ++++ b/src/crypt/crypt_r.c +@@ -16,17 +16,7 @@ char *__crypt_r(const char *key, const c + * use the structure to store any internal state, and treats + * it purely as a char buffer for storing the result. */ + char *output = (char *)data; +- if (salt[0] == '$' && salt[1] && salt[2]) { +- if (salt[1] == '1' && salt[2] == '$') +- return __crypt_md5(key, salt, output); +- if (salt[1] == '2' && salt[3] == '$') +- return __crypt_blowfish(key, salt, output); +- if (salt[1] == '5' && salt[2] == '$') +- return __crypt_sha256(key, salt, output); +- if (salt[1] == '6' && salt[2] == '$') +- return __crypt_sha512(key, salt, output); +- } +- return __crypt_des(key, salt, output); ++ return __crypt_md5(key, salt, output); + } + + weak_alias(__crypt_r, crypt_r); +--- a/src/crypt/crypt_sha512.c ++++ b/src/crypt/crypt_sha512.c +@@ -12,6 +12,7 @@ + #include <stdio.h> + #include <string.h> + #include <stdint.h> ++#if 0 + + /* public domain sha512 implementation based on fips180-3 */ + /* >=2^64 bits messages are not supported (about 2000 peta bytes) */ +@@ -369,3 +370,4 @@ char *__crypt_sha512(const char *key, co + return "*"; + return p; + } ++#endif +--- a/src/crypt/crypt_blowfish.c ++++ b/src/crypt/crypt_blowfish.c +@@ -50,6 +50,7 @@ + #include <string.h> + #include <stdint.h> + ++#if 0 + typedef uint32_t BF_word; + typedef int32_t BF_word_signed; + +@@ -796,3 +797,4 @@ char *__crypt_blowfish(const char *key, + + return "*"; + } ++#endif +--- a/src/crypt/crypt_des.c ++++ b/src/crypt/crypt_des.c +@@ -56,6 +56,7 @@ + #include <stdint.h> + #include <string.h> + ++#if 0 + struct expanded_key { + uint32_t l[16], r[16]; + }; +@@ -1016,3 +1017,4 @@ char *__crypt_des(const char *key, const + + return (setting[0]=='*') ? "x" : "*"; + } ++#endif +--- a/src/crypt/encrypt.c ++++ b/src/crypt/encrypt.c +@@ -16,6 +16,7 @@ static struct expanded_key __encrypt_key + + void setkey(const char *key) + { ++#if 0 + unsigned char bkey[8]; + int i, j; + +@@ -26,10 +27,12 @@ void setkey(const char *key) + } + + __des_setkey(bkey, &__encrypt_key); ++#endif + } + + void encrypt(char *block, int edflag) + { ++#if 0 + struct expanded_key decrypt_key, *key; + uint32_t b[2]; + int i, j; +@@ -57,4 +60,5 @@ void encrypt(char *block, int edflag) + for (i = 0; i < 2; i++) + for (j = 31; j >= 0; j--) + *p++ = b[i]>>j & 1; ++#endif + } +--- a/src/crypt/crypt_sha256.c ++++ b/src/crypt/crypt_sha256.c +@@ -13,6 +13,7 @@ + #include <string.h> + #include <stdint.h> + ++#if 0 + /* public domain sha256 implementation based on fips180-3 */ + + struct sha256 { +@@ -320,3 +321,4 @@ char *__crypt_sha256(const char *key, co + return "*"; + return p; + } ++#endif |