Allow compile-time specification that small code space is desired
authorKen Raeburn <raeburn@mit.edu>
Wed, 13 Apr 2005 20:38:36 +0000 (20:38 +0000)
committerKen Raeburn <raeburn@mit.edu>
Wed, 13 Apr 2005 20:38:36 +0000 (20:38 +0000)
commit681fa0f938f9a1b6639a72c76c45ea09e8fcd17e
tree63c2f527ee0477e38f6db8793647900e168fee29
parentf0b00252909f0db54226a30f57a2d44b4d79a1e7
Allow compile-time specification that small code space is desired

* d3_cbc.c (krb5int_des3_cbc_encrypt, krb5int_des3_cbc_decrypt): Don't declare
left and right variables as registers.
* f_cksum.c (mit_des_cbc_cksum): Likewise.
* f_cbc.c (krb5int_des_cbc_encrypt, krb5int_des_cbc_decrypt): Likewise.
(krb5int_des_cbc_encrypt): For full blocks, use GET_HALF_BLOCK to read and then
xor, instead of processing each byte individually.
(krb5int_des_do_encrypt_2, krb5int_des_do_decrypt_2) [CONFIG_SMALL]: New
functions, wrapping large macros with the DES inner loops.
* f_tables.h (DES_DO_ENCRYPT_1, DES_DO_DECRYPT_1): Renamed from non-_1 names.
(krb5int_des_do_encrypt_2, krb5int_des_do_decrypt_2): Declare if CONFIG_SMALL
is defined.
(DES_DO_ENCRYPT, DES_DO_DECRYPT): Expand to _1 macros or _2 function calls
depending on whether CONFIG_SMALL is defined.

With CONFIG_SMALL defined, on x86/gcc/glibc, this drops about 5K (25%) of the
code/table space.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17183 dc483132-0cff-0310-8789-dd5450dbe970
src/lib/crypto/des/ChangeLog
src/lib/crypto/des/d3_cbc.c
src/lib/crypto/des/f_cbc.c
src/lib/crypto/des/f_cksum.c
src/lib/crypto/des/f_tables.h