support older gcrypt libraries not defining the CAMELLIA cipher
authorMartin Willi <martin@strongswan.org>
Tue, 16 Jun 2009 12:23:32 +0000 (14:23 +0200)
committerMartin Willi <martin@strongswan.org>
Tue, 16 Jun 2009 12:23:32 +0000 (14:23 +0200)
configure.in
src/libstrongswan/plugins/gcrypt/gcrypt_crypter.c

index 4c366b7..db61ae4 100644 (file)
@@ -1015,6 +1015,13 @@ fi
 
 if test x$gcrypt = xtrue; then
        AM_PATH_LIBGCRYPT(,,[AC_MSG_ERROR([libgcrypt not found!])])
+       AC_MSG_CHECKING([gcrypt CAMELLIA cipher])
+       AC_TRY_COMPILE(
+               [#include <gcrypt.h>],
+               [enum gcry_cipher_algos alg = GCRY_CIPHER_CAMELLIA128;],
+               [AC_MSG_RESULT([yes]); AC_DEFINE([HAVE_GCRY_CIPHER_CAMELLIA])],
+               [AC_MSG_RESULT([no])]
+       )
 fi
 
 if test x$uci = xtrue; then
index 17e6ef2..f82d231 100644 (file)
@@ -180,6 +180,7 @@ gcrypt_crypter_t *gcrypt_crypter_create(encryption_algorithm_t algo,
                case ENCR_CAMELLIA_CBC:
                        switch (key_size)
                        {
+#ifdef HAVE_GCRY_CIPHER_CAMELLIA
                                case 16:
                                        gcrypt_alg = GCRY_CIPHER_CAMELLIA128;
                                        break;
@@ -189,6 +190,7 @@ gcrypt_crypter_t *gcrypt_crypter_create(encryption_algorithm_t algo,
                                case 32:
                                        gcrypt_alg = GCRY_CIPHER_CAMELLIA256;
                                        break;
+#endif /* HAVE_GCRY_CIPHER_CAMELLIA */
                                default:
                                        return NULL;
                        }