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