reduce size by disabling fancy ciphers (closes: #3424), cleanup, bump release number
authorNicolas Thill <nico@openwrt.org>
Sat, 10 May 2008 18:21:53 +0000 (18:21 +0000)
committerNicolas Thill <nico@openwrt.org>
Sat, 10 May 2008 18:21:53 +0000 (18:21 +0000)
SVN-Revision: 11104

libs/libgcrypt/Makefile
libs/libgcrypt/patches/001-handle-minimal-build.patch [new file with mode: 0644]

index 81049ae..4158f64 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libgcrypt
 PKG_VERSION:=1.4.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=ftp://ftp.gnupg.org/gcrypt/libgcrypt/
@@ -29,22 +29,24 @@ define Package/libgcrypt
 endef
 
 define Package/libgcrypt/description
-       This is a general purpose cryptographic library based on the code from 
-       GnuPG. It provides functions for all cryptograhic building blocks: 
-       symmetric ciphers (AES, DES, Blowfish, CAST5, Twofish, Arcfour), hash 
-       algorithms (MD4, MD5, RIPE-MD160, SHA-1, TIGER-192), MACs (HMAC for all 
-       hash algorithms), public key algorithms (RSA, ElGamal, DSA), large 
-       integer functions, random numbers and a lot of supporting functions.
+ This is a general purpose cryptographic library based on the code from 
+ GnuPG. It provides functions for all cryptograhic building blocks: 
+ symmetric ciphers (AES, DES, Arcfour), hash algorithms (MD5, SHA-1,
+ RIPE-MD160, SHA-224/256, SHA-384/512), MACs (HMAC for all hash
+ algorithms), public key algorithms (RSA, DSA), large integer functions,
+ random numbers and a lot of supporting functions. Some algorithms have
+ been disabled to reduce size (Blowfish, CAST5, Twofish, Serpent,
+ RC2, SEED, Camellia, CRC, MD4, TIGER-192, Whirlpool, ElGamal, ECC).
 endef
 
-define Build/Configure
-       $(call Build/Configure/Default, \
-               --enable-shared \
-               --enable-static \
-               --disable-asm \
-               --with-gpg-error-prefix="$(STAGING_DIR)/usr" \
-       )
-endef
+CONFIGURE_ARGS+= \
+       --enable-shared \
+       --enable-static \
+       --disable-asm \
+       --with-gpg-error-prefix="$(STAGING_DIR)/usr" \
+       --enable-digests="md5 rmd160 sha1 sha256 sha512" \
+       --enable-ciphers="arcfour des aes" \
+       --enable-pubkey-ciphers="rsa dsa" \
 
 define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
diff --git a/libs/libgcrypt/patches/001-handle-minimal-build.patch b/libs/libgcrypt/patches/001-handle-minimal-build.patch
new file mode 100644 (file)
index 0000000..46a5f70
--- /dev/null
@@ -0,0 +1,215 @@
+diff -ur libgcrypt-1.4.1.orig/cipher/pubkey.c libgcrypt-1.4.1/cipher/pubkey.c
+--- libgcrypt-1.4.1.orig/cipher/pubkey.c       2007-12-13 13:40:38.000000000 +0100
++++ libgcrypt-1.4.1/cipher/pubkey.c    2008-05-09 22:34:14.000000000 +0200
+@@ -1,6 +1,6 @@
+ /* pubkey.c  -        pubkey dispatcher
+  * Copyright (C) 1998, 1999, 2000, 2002, 2003,
+- *               2005, 2007 Free Software Foundation, Inc.
++ *               2005, 2007, 2008 Free Software Foundation, Inc.
+  *
+  * This file is part of Libgcrypt.
+  *
+@@ -805,6 +805,7 @@
+   return err;
+ }
++#if USE_ECC
+ /* Internal function used for ecc.  Note, that this function makes use
+    of its intimate knowledge about the ECC parameters from ecc.c. */
+ static gcry_err_code_t
+@@ -887,7 +888,7 @@
+     }
+   return err;
+ }
+-
++#endif
+ /****************
+@@ -978,9 +979,11 @@
+     err = gpg_err_code_from_errno (errno);
+   if (!err)
+     {
++#if USE_ECC
+       if (is_ecc)
+         err = sexp_elements_extract_ecc (list, elems, array);
+       else
++#endif
+         err = sexp_elements_extract (list, elems, array, pubkey->name);
+     }
+   
+diff -ur libgcrypt-1.4.1.orig/tests/basic.c libgcrypt-1.4.1/tests/basic.c
+--- libgcrypt-1.4.1.orig/tests/basic.c 2008-04-22 11:03:33.000000000 +0200
++++ libgcrypt-1.4.1/tests/basic.c      2008-05-09 22:41:41.000000000 +0200
+@@ -1,5 +1,5 @@
+ /* basic.c  -  basic regression tests
+- *    Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
++ *    Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+  *
+  * This file is part of Libgcrypt.
+  *
+@@ -1137,12 +1137,15 @@
+     const char *expect;
+   } algos[] =
+     {
++#if USE_MD4
+       { GCRY_MD_MD4, "",
+       "\x31\xD6\xCF\xE0\xD1\x6A\xE9\x31\xB7\x3C\x59\xD7\xE0\xC0\x89\xC0" },
+       { GCRY_MD_MD4, "a",
+       "\xbd\xe5\x2c\xb3\x1d\xe3\x3e\x46\x24\x5e\x05\xfb\xdb\xd6\xfb\x24" },
+       {       GCRY_MD_MD4, "message digest",
+       "\xd9\x13\x0a\x81\x64\x54\x9f\xe8\x18\x87\x48\x06\xe1\xc7\x01\x4b" },
++#endif
++#if USE_MD4
+       {       GCRY_MD_MD5, "",
+       "\xD4\x1D\x8C\xD9\x8F\x00\xB2\x04\xE9\x80\x09\x98\xEC\xF8\x42\x7E" },
+       {       GCRY_MD_MD5, "a",
+@@ -1151,6 +1154,8 @@
+       "\x90\x01\x50\x98\x3C\xD2\x4F\xB0\xD6\x96\x3F\x7D\x28\xE1\x7F\x72" },
+       { GCRY_MD_MD5, "message digest",
+       "\xF9\x6B\x69\x7D\x7C\xB7\x93\x8D\x52\x5A\x2F\x31\xAA\xF1\x61\xD0" },
++#endif
++#if USE_SHA1
+       { GCRY_MD_SHA1, "abc",
+       "\xA9\x99\x3E\x36\x47\x06\x81\x6A\xBA\x3E"
+       "\x25\x71\x78\x50\xC2\x6C\x9C\xD0\xD8\x9D" },
+@@ -1161,6 +1166,8 @@
+       { GCRY_MD_SHA1, "!" /* kludge for "a"*1000000 */ ,
+       "\x34\xAA\x97\x3C\xD4\xC4\xDA\xA4\xF6\x1E"
+       "\xEB\x2B\xDB\xAD\x27\x31\x65\x34\x01\x6F" },
++#endif
++#if USE_SHA224
+       /* From RFC3874 */
+       {       GCRY_MD_SHA224, "abc",
+       "\x23\x09\x7d\x22\x34\x05\xd8\x22\x86\x42\xa4\x77\xbd\xa2\x55\xb3"
+@@ -1172,6 +1179,8 @@
+       {       GCRY_MD_SHA224, "!",
+       "\x20\x79\x46\x55\x98\x0c\x91\xd8\xbb\xb4\xc1\xea\x97\x61\x8a\x4b"
+       "\xf0\x3f\x42\x58\x19\x48\xb2\xee\x4e\xe7\xad\x67" },
++#endif
++#if USE_SHA256
+       {       GCRY_MD_SHA256, "abc",
+       "\xba\x78\x16\xbf\x8f\x01\xcf\xea\x41\x41\x40\xde\x5d\xae\x22\x23"
+       "\xb0\x03\x61\xa3\x96\x17\x7a\x9c\xb4\x10\xff\x61\xf2\x00\x15\xad" },
+@@ -1182,15 +1191,20 @@
+       {       GCRY_MD_SHA256, "!",
+       "\xcd\xc7\x6e\x5c\x99\x14\xfb\x92\x81\xa1\xc7\xe2\x84\xd7\x3e\x67"
+       "\xf1\x80\x9a\x48\xa4\x97\x20\x0e\x04\x6d\x39\xcc\xc7\x11\x2c\xd0" },
++#endif
++#if USE_SHA384
+       {       GCRY_MD_SHA384, "abc",
+       "\xcb\x00\x75\x3f\x45\xa3\x5e\x8b\xb5\xa0\x3d\x69\x9a\xc6\x50\x07"
+       "\x27\x2c\x32\xab\x0e\xde\xd1\x63\x1a\x8b\x60\x5a\x43\xff\x5b\xed"
+       "\x80\x86\x07\x2b\xa1\xe7\xcc\x23\x58\xba\xec\xa1\x34\xc8\x25\xa7" },
++#endif
++#if USE_SHA512
+       {       GCRY_MD_SHA512, "abc",
+       "\xDD\xAF\x35\xA1\x93\x61\x7A\xBA\xCC\x41\x73\x49\xAE\x20\x41\x31"
+       "\x12\xE6\xFA\x4E\x89\xA9\x7E\xA2\x0A\x9E\xEE\xE6\x4B\x55\xD3\x9A"
+       "\x21\x92\x99\x2A\x27\x4F\xC1\xA8\x36\xBA\x3C\x23\xA3\xFE\xEB\xBD"
+       "\x45\x4D\x44\x23\x64\x3C\xE8\x0E\x2A\x9A\xC9\x4F\xA5\x4C\xA4\x9F" },
++#endif
+       {       GCRY_MD_RMD160, "",
+       "\x9c\x11\x85\xa5\xc5\xe9\xfc\x54\x61\x28"
+       "\x08\x97\x7e\xe8\xf5\x48\xb2\x25\x8d\x31" },
+@@ -1203,6 +1217,7 @@
+       {       GCRY_MD_RMD160, "message digest",
+       "\x5d\x06\x89\xef\x49\xd2\xfa\xe5\x72\xb8"
+       "\x81\xb1\x23\xa8\x5f\xfa\x21\x59\x5f\x36" },
++#if USE_CRC
+       {       GCRY_MD_CRC32, "", "\x00\x00\x00\x00" },
+       {       GCRY_MD_CRC32, "foo", "\x8c\x73\x65\x21" },
+       { GCRY_MD_CRC32_RFC1510, "", "\x00\x00\x00\x00" },
+@@ -1222,6 +1237,8 @@
+ #endif
+       {       GCRY_MD_CRC24_RFC2440, "", "\xb7\x04\xce" },
+       {       GCRY_MD_CRC24_RFC2440, "foo", "\x4f\xc2\x55" },
++#endif
++#if USE_TIGER
+       {       GCRY_MD_TIGER, "",
+       "\x24\xF0\x13\x0C\x63\xAC\x93\x32\x16\x16\x6E\x76"
+       "\xB1\xBB\x92\x5F\xF3\x73\xDE\x2D\x49\x58\x4E\x7A" },
+@@ -1258,6 +1275,8 @@
+       "TUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-",
+       "\x00\xB8\x3E\xB4\xE5\x34\x40\xC5\x76\xAC\x6A\xAE"
+       "\xE0\xA7\x48\x58\x25\xFD\x15\xE7\x0A\x59\xFF\xE4" },
++#endif
++#if USE_WHIRLPOOL
+       { GCRY_MD_WHIRLPOOL, "",
+       "\x19\xFA\x61\xD7\x55\x22\xA4\x66\x9B\x44\xE3\x9C\x1D\x2E\x17\x26"
+       "\xC5\x30\x23\x21\x30\xD4\x07\xF8\x9A\xFE\xE0\x96\x49\x97\xF7\xA7"
+@@ -1285,6 +1304,7 @@
+       "\x29\x05\x7F\xD8\x6B\x20\xBF\xD6\x2D\xEC\xA0\xF1\xCC\xEA\x4A\xF5"
+       "\x1F\xC1\x54\x90\xED\xDC\x47\xAF\x32\xBB\x2B\x66\xC3\x4F\xF9\xAD"
+       "\x8C\x60\x08\xAD\x67\x7F\x77\x12\x69\x53\xB2\x26\xE4\xED\x8B\x01" },
++#endif
+       {       0 },
+     };
+   int i;
+@@ -1523,6 +1543,7 @@
+       "\xaa\xaa\xaa",
+       "\x3a\x85\x41\x66\xac\x5d\x9f\x02\x3f\x54\xd5\x17\xd0\xb3\x9d\xbd"
+       "\x94\x67\x70\xdb\x9c\x2b\x95\xc9\xf6\xf5\x65\xd1" },
++#if USE_SHA384
+       { GCRY_MD_SHA384, "what do ya want for nothing?", "Jefe",
+       "\xaf\x45\xd2\xe3\x76\x48\x40\x31\x61\x7f\x78\xd2\xb5\x8a\x6b\x1b"
+       "\x9c\x7e\xf4\x64\xf5\xa0\x1b\x47\xe4\x2e\xc3\x73\x63\x22\x44\x5e"
+@@ -1582,6 +1603,8 @@
+       "\x66\x17\x17\x8e\x94\x1f\x02\x0d\x35\x1e\x2f\x25\x4e\x8f\xd3\x2c"
+       "\x60\x24\x20\xfe\xb0\xb8\xfb\x9a\xdc\xce\xbb\x82\x46\x1e\x99\xc5"
+       "\xa6\x78\xcc\x31\xe7\x99\x17\x6d\x38\x60\xe6\x11\x0c\x46\x52\x3e" },
++#endif
++#if USE_SHA512
+       { GCRY_MD_SHA512, "what do ya want for nothing?", "Jefe",
+       "\x16\x4b\x7a\x7b\xfc\xf8\x19\xe2\xe3\x95\xfb\xe7\x3b\x56\xe0\xa3"
+       "\x87\xbd\x64\x22\x2e\x83\x1f\xd6\x10\x27\x0c\xd7\xea\x25\x05\x54"
+@@ -1647,6 +1670,7 @@
+       "\xde\xbd\x71\xf8\x86\x72\x89\x86\x5d\xf5\xa3\x2d\x20\xcd\xc9\x44"
+       "\xb6\x02\x2c\xac\x3c\x49\x82\xb1\x0d\x5e\xeb\x55\xc3\xe4\xde\x15"
+       "\x13\x46\x76\xfb\x6d\xe0\x44\x60\x65\xc9\x74\x40\xfa\x8c\x6a\x58" },
++#endif
+       {       0 },
+     };
+   int i;
+@@ -1931,6 +1955,7 @@
+         "\xc6\x39\x83\x1a\x43\xe5\x05\x5d\xc6\xd8"
+         "\x4a\xa6\xf9\xeb\x23\xbf\xa9\x12\x2d\x5b" }
+       },
++#if USE_ELGAMAL
+       {
+       GCRY_PK_ELG, FLAG_SIGN | FLAG_CRYPT,
+@@ -1962,6 +1987,7 @@
+         "\xa7\x99\x61\xeb\x88\x83\xd2\xf4\x05\xc8"
+         "\x4f\xba\x06\xf8\x78\x09\xbc\x1e\x20\xe5" }
+       },
++#endif
+     };
+   int i;
+   if (verbose)
+diff -ur libgcrypt-1.4.1.orig/tests/pubkey.c libgcrypt-1.4.1/tests/pubkey.c
+--- libgcrypt-1.4.1.orig/tests/pubkey.c        2008-03-18 14:25:36.000000000 +0100
++++ libgcrypt-1.4.1/tests/pubkey.c     2008-05-09 22:36:57.000000000 +0200
+@@ -1,5 +1,5 @@
+ /* pubkey.c - Public key encryption/decryption tests
+- *    Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
++ *    Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+  *
+  * This file is part of Libgcrypt.
+  *
+@@ -326,6 +326,7 @@
+   gcry_sexp_release (pkey);
+   gcry_sexp_release (skey);
++#if USE_ELGAMAL
+   if (verbose)
+     fprintf (stderr, "Checking generated Elgamal key.\n");
+   get_elg_key_new (&pkey, &skey, 0);
+@@ -339,6 +340,7 @@
+   check_keys (pkey, skey, 800, 0);
+   gcry_sexp_release (pkey);
+   gcry_sexp_release (skey);
++#endif
+ }