Add Camellia-GCM to th cipher layer
diff --git a/include/polarssl/cipher.h b/include/polarssl/cipher.h
index 5ae25c1..d73445c 100644
--- a/include/polarssl/cipher.h
+++ b/include/polarssl/cipher.h
@@ -102,6 +102,9 @@
     POLARSSL_CIPHER_CAMELLIA_128_CTR,
     POLARSSL_CIPHER_CAMELLIA_192_CTR,
     POLARSSL_CIPHER_CAMELLIA_256_CTR,
+    POLARSSL_CIPHER_CAMELLIA_128_GCM,
+    POLARSSL_CIPHER_CAMELLIA_192_GCM,
+    POLARSSL_CIPHER_CAMELLIA_256_GCM,
     POLARSSL_CIPHER_DES_ECB,
     POLARSSL_CIPHER_DES_CBC,
     POLARSSL_CIPHER_DES_EDE_ECB,
diff --git a/library/cipher_wrap.c b/library/cipher_wrap.c
index 18fc6a2..3020e14 100644
--- a/library/cipher_wrap.c
+++ b/library/cipher_wrap.c
@@ -66,6 +66,20 @@
 
 #include <stdlib.h>
 
+#if defined(POLARSSL_GCM_C)
+/* shared by all GCM ciphers */
+static void *gcm_ctx_alloc( void )
+{
+    return polarssl_malloc( sizeof( gcm_context ) );
+}
+
+static void gcm_ctx_free( void *ctx )
+{
+    gcm_free( ctx );
+    polarssl_free( ctx );
+}
+#endif
+
 #if defined(POLARSSL_AES_C)
 
 static int aes_crypt_ecb_wrap( void *ctx, operation_t operation,
@@ -301,17 +315,6 @@
 #endif /* POLARSSL_CIPHER_MODE_CTR */
 
 #if defined(POLARSSL_GCM_C)
-static void *gcm_ctx_alloc( void )
-{
-    return polarssl_malloc( sizeof( gcm_context ) );
-}
-
-static void gcm_ctx_free( void *ctx )
-{
-    gcm_free( ctx );
-    polarssl_free( ctx );
-}
-
 static int gcm_aes_setkey_wrap( void *ctx, const unsigned char *key, unsigned int key_length )
 {
     return gcm_init( (gcm_context *) ctx, POLARSSL_CIPHER_ID_AES,
@@ -601,7 +604,61 @@
 };
 #endif /* POLARSSL_CIPHER_MODE_CTR */
 
-#endif
+#if defined(POLARSSL_GCM_C)
+static int gcm_camellia_setkey_wrap( void *ctx, const unsigned char *key, unsigned int key_length )
+{
+    return gcm_init( (gcm_context *) ctx, POLARSSL_CIPHER_ID_CAMELLIA,
+                     key, key_length );
+}
+
+const cipher_base_t gcm_camellia_info = {
+    POLARSSL_CIPHER_ID_CAMELLIA,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    gcm_camellia_setkey_wrap,
+    gcm_camellia_setkey_wrap,
+    gcm_ctx_alloc,
+    gcm_ctx_free,
+};
+
+const cipher_info_t camellia_128_gcm_info = {
+    POLARSSL_CIPHER_CAMELLIA_128_GCM,
+    POLARSSL_MODE_GCM,
+    128,
+    "CAMELLIA-128-GCM",
+    12,
+    1,
+    16,
+    &gcm_camellia_info
+};
+
+const cipher_info_t camellia_192_gcm_info = {
+    POLARSSL_CIPHER_CAMELLIA_192_GCM,
+    POLARSSL_MODE_GCM,
+    192,
+    "CAMELLIA-192-GCM",
+    12,
+    1,
+    16,
+    &gcm_camellia_info
+};
+
+const cipher_info_t camellia_256_gcm_info = {
+    POLARSSL_CIPHER_CAMELLIA_256_GCM,
+    POLARSSL_MODE_GCM,
+    256,
+    "CAMELLIA-256-GCM",
+    12,
+    1,
+    16,
+    &gcm_camellia_info
+};
+#endif /* POLARSSL_GCM_C */
+
+#endif /* POLARSSL_CAMELLIA_C */
 
 #if defined(POLARSSL_DES_C)
 
@@ -1165,6 +1222,11 @@
     { POLARSSL_CIPHER_CAMELLIA_192_CTR,     &camellia_192_ctr_info },
     { POLARSSL_CIPHER_CAMELLIA_256_CTR,     &camellia_256_ctr_info },
 #endif
+#if defined(POLARSSL_GCM_C)
+    { POLARSSL_CIPHER_CAMELLIA_128_GCM,     &camellia_128_gcm_info },
+    { POLARSSL_CIPHER_CAMELLIA_192_GCM,     &camellia_192_gcm_info },
+    { POLARSSL_CIPHER_CAMELLIA_256_GCM,     &camellia_256_gcm_info },
+#endif
 #endif /* POLARSSL_CAMELLIA_C */
 
 #if defined(POLARSSL_DES_C)
diff --git a/tests/suites/test_suite_cipher.gcm.data b/tests/suites/test_suite_cipher.gcm.data
index 42cd094..9afd918 100644
--- a/tests/suites/test_suite_cipher.gcm.data
+++ b/tests/suites/test_suite_cipher.gcm.data
@@ -1,4 +1,4 @@
-AES-GCM Encrypt and decrypt 0 bytes
+AES 128 GCM Encrypt and decrypt 0 bytes
 depends_on:POLARSSL_AES_C:POLARSSL_GCM_C
 enc_dec_buf:POLARSSL_CIPHER_AES_128_GCM:"AES-128-GCM":128:0:-1
 
@@ -125,3 +125,279 @@
 AES 128 GCM Decrypt test vector #9
 depends_on:POLARSSL_AES_C:POLARSSL_GCM_C
 decrypt_test_vec:POLARSSL_CIPHER_AES_128_GCM:-1:"45cc35311eedf0ba093bf901931a7036":"fed5084de3c348f5a0adf4c2fd4e848a":"5dc8d7525eaad035c19714ae1b1e538cb66a4089027245351e0ad9297410fb3a0c1155407c10a8bb95a9ca624a9c9925dac003ee78926c6e90ff4ccdba10e8a78bda1c4478162a0e302de5ff05fb0f94c89c3c7429fb94828bdcd97d21333c2ee72963ee6f056ce272b8bab007e653a42b01d1d2041ba627f169c8c0d32e6dae":"":"6e210914e4aed188d576f5ad7fc7e4cf7dd8d82f34ea3bcbdb7267cfd9045f806978dbff3460c4e8ff8c4edb6ad2edba405a8d915729d89aab2116b36a70b54f5920a97f5a571977e0329eda6c696749be940eabfc6d8b0bbd6fbdb87657b3a7695da9f5d3a7384257f20e0becd8512d3705cc246ee6ca1e610921cf92603d79":"266a895fc21da5176b44b446d7d1921d":0:POLARSSL_ERR_CIPHER_AUTH_FAILED
+
+CAMELLIA 128 GCM Encrypt and decrypt 0 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:0:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 1 byte
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:1:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 2 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:2:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 7 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:7:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 8 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:8:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 9 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:9:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 15 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:15:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 16 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:16:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 17 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:17:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 31 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:31:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:32:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:33:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 47 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:47:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 48 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:48:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 49 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_GCM:"CAMELLIA-128-GCM":128:49:-1
+
+CAMELLIA 128 GCM Encrypt and decrypt 0 bytes in multiple parts
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_128_GCM:128:0:0
+
+CAMELLIA 128 GCM Encrypt and decrypt 1 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_128_GCM:128:1:0
+
+CAMELLIA 128 GCM Encrypt and decrypt 1 bytes in multiple parts 2
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_128_GCM:128:0:1
+
+CAMELLIA 128 GCM Encrypt and decrypt 16 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_128_GCM:128:16:0
+
+CAMELLIA 128 GCM Encrypt and decrypt 16 bytes in multiple parts 2
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_128_GCM:128:0:16
+
+CAMELLIA 128 GCM Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_128_GCM:128:16:6
+
+CAMELLIA 128 GCM Encrypt and decrypt 22 bytes in multiple parts 2
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_128_GCM:128:0:22
+
+CAMELLIA 128 GCM Encrypt and decrypt 32 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_128_GCM:128:16:16
+
+CAMELLIA 192 GCM Encrypt and decrypt 0 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:0:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 1 byte
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:1:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 2 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:2:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 7 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:7:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 8 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:8:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 9 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:9:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 15 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:15:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 16 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:16:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 17 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:17:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 31 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:31:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:32:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:33:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 47 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:47:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 48 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:48:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 49 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_192_GCM:"CAMELLIA-192-GCM":192:49:-1
+
+CAMELLIA 192 GCM Encrypt and decrypt 0 bytes in multiple parts
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_192_GCM:192:0:0
+
+CAMELLIA 192 GCM Encrypt and decrypt 1 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_192_GCM:192:1:0
+
+CAMELLIA 192 GCM Encrypt and decrypt 1 bytes in multiple parts 2
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_192_GCM:192:0:1
+
+CAMELLIA 192 GCM Encrypt and decrypt 16 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_192_GCM:192:16:0
+
+CAMELLIA 192 GCM Encrypt and decrypt 16 bytes in multiple parts 2
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_192_GCM:192:0:16
+
+CAMELLIA 192 GCM Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_192_GCM:192:16:6
+
+CAMELLIA 192 GCM Encrypt and decrypt 22 bytes in multiple parts 2
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_192_GCM:192:0:22
+
+CAMELLIA 192 GCM Encrypt and decrypt 32 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_192_GCM:192:16:16
+
+CAMELLIA 256 GCM Encrypt and decrypt 0 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:0:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 1 byte
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:1:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 2 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:2:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 7 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:7:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 8 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:8:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 9 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:9:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 15 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:15:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 16 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:16:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 17 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:17:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 31 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:31:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:32:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:33:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 47 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:47:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 48 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:48:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 49 bytes
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_256_GCM:"CAMELLIA-256-GCM":256:49:-1
+
+CAMELLIA 256 GCM Encrypt and decrypt 0 bytes in multiple parts
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_256_GCM:256:0:0
+
+CAMELLIA 256 GCM Encrypt and decrypt 1 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_256_GCM:256:1:0
+
+CAMELLIA 256 GCM Encrypt and decrypt 1 bytes in multiple parts 2
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_256_GCM:256:0:1
+
+CAMELLIA 256 GCM Encrypt and decrypt 16 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_256_GCM:256:16:0
+
+CAMELLIA 256 GCM Encrypt and decrypt 16 bytes in multiple parts 2
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_256_GCM:256:0:16
+
+CAMELLIA 256 GCM Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_256_GCM:256:16:6
+
+CAMELLIA 256 GCM Encrypt and decrypt 22 bytes in multiple parts 2
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_256_GCM:256:0:22
+
+CAMELLIA 256 GCM Encrypt and decrypt 32 bytes in multiple parts 1
+depends_on:POLARSSL_CAMELLIA_C:POLARSSL_GCM_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_256_GCM:256:16:16