Add zero padding
diff --git a/tests/suites/test_suite_cipher.aes.data b/tests/suites/test_suite_cipher.aes.data
index 0ec541a..92e4567 100644
--- a/tests/suites/test_suite_cipher.aes.data
+++ b/tests/suites/test_suite_cipher.aes.data
@@ -185,6 +185,66 @@
depends_on:POLARSSL_AES_C
enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:49:POLARSSL_PADDING_ZEROS_AND_LEN
+AES Encrypt and decrypt 0 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:0:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 1 byte with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:1:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 2 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:2:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 7 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:7:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 8 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:8:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 9 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:9:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 15 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:15:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 16 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:16:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 17 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:17:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 31 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:31:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 32 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:32:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 33 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:33:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 47 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:47:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 48 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:48:POLARSSL_PADDING_ZEROS
+
+AES Encrypt and decrypt 49 bytes with zeros padding
+depends_on:POLARSSL_AES_C
+enc_dec_buf:POLARSSL_CIPHER_AES_128_CBC:AES-128-CBC:128:49:POLARSSL_PADDING_ZEROS
+
AES Encrypt and decrypt 0 bytes in multiple parts
depends_on:POLARSSL_AES_C
enc_dec_buf_multipart:POLARSSL_CIPHER_AES_128_CBC:128:0:0:
diff --git a/tests/suites/test_suite_cipher.blowfish.data b/tests/suites/test_suite_cipher.blowfish.data
index 9d09611..86a5af8 100644
--- a/tests/suites/test_suite_cipher.blowfish.data
+++ b/tests/suites/test_suite_cipher.blowfish.data
@@ -185,6 +185,66 @@
depends_on:POLARSSL_BLOWFISH_C
enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:49:POLARSSL_PADDING_ZEROS_AND_LEN
+BLOWFISH Encrypt and decrypt 0 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:0:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 1 byte with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:1:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 2 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:2:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 7 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:7:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 8 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:8:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 9 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:9:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 15 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:15:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 16 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:16:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 17 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:17:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 31 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:31:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 32 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:32:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 32 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:33:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 47 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:47:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 48 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:48:POLARSSL_PADDING_ZEROS
+
+BLOWFISH Encrypt and decrypt 49 bytes with zeros padding
+depends_on:POLARSSL_BLOWFISH_C
+enc_dec_buf:POLARSSL_CIPHER_BLOWFISH_CBC:BLOWFISH-CBC:128:49:POLARSSL_PADDING_ZEROS
+
BLOWFISH Encrypt and decrypt 0 bytes in multiple parts
depends_on:POLARSSL_BLOWFISH_C
enc_dec_buf_multipart:POLARSSL_CIPHER_BLOWFISH_CBC:128:0:0:
diff --git a/tests/suites/test_suite_cipher.camellia.data b/tests/suites/test_suite_cipher.camellia.data
index eadd9eb..cff5679 100644
--- a/tests/suites/test_suite_cipher.camellia.data
+++ b/tests/suites/test_suite_cipher.camellia.data
@@ -185,6 +185,66 @@
depends_on:POLARSSL_CAMELLIA_C
enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:49:POLARSSL_PADDING_ZEROS_AND_LEN
+CAMELLIA Encrypt and decrypt 0 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:0:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 1 byte with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:1:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 2 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:2:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 7 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:7:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 8 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:8:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 9 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:9:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 15 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:15:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 16 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:16:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 17 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:17:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 31 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:31:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 32 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:32:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 32 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:33:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 47 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:47:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 48 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:48:POLARSSL_PADDING_ZEROS
+
+CAMELLIA Encrypt and decrypt 49 bytes with zeros padding
+depends_on:POLARSSL_CAMELLIA_C
+enc_dec_buf:POLARSSL_CIPHER_CAMELLIA_128_CBC:CAMELLIA-128-CBC:128:49:POLARSSL_PADDING_ZEROS
+
CAMELLIA Encrypt and decrypt 0 bytes in multiple parts
depends_on:POLARSSL_CAMELLIA_C
enc_dec_buf_multipart:POLARSSL_CIPHER_CAMELLIA_128_CBC:128:0:0:
diff --git a/tests/suites/test_suite_cipher.des.data b/tests/suites/test_suite_cipher.des.data
index 5bcf603..623fbc7 100644
--- a/tests/suites/test_suite_cipher.des.data
+++ b/tests/suites/test_suite_cipher.des.data
@@ -185,6 +185,66 @@
depends_on:POLARSSL_DES_C
enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:49:POLARSSL_PADDING_ZEROS_AND_LEN
+DES Encrypt and decrypt 0 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:0:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 1 byte with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:1:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 2 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:2:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 7 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:7:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 8 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:8:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 9 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:9:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 15 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:15:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 16 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:16:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 17 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:17:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 31 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:31:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 32 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:32:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 32 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:33:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 47 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:47:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 48 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:48:POLARSSL_PADDING_ZEROS
+
+DES Encrypt and decrypt 49 bytes with zeros padding
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:49:POLARSSL_PADDING_ZEROS
+
DES Encrypt and decrypt 0 bytes in multiple parts
depends_on:POLARSSL_DES_C
enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:0:0:
diff --git a/tests/suites/test_suite_cipher.padding.data b/tests/suites/test_suite_cipher.padding.data
index 51bc222..b37fa3c 100644
--- a/tests/suites/test_suite_cipher.padding.data
+++ b/tests/suites/test_suite_cipher.padding.data
@@ -120,3 +120,24 @@
Check zeros and len padding #6 (not enough zeros)
check_padding:POLARSSL_PADDING_ZEROS_AND_LEN:"DABBAD000004":POLARSSL_ERR_CIPHER_INVALID_PADDING:0
+
+Check zeros padding #1 (correct)
+check_padding:POLARSSL_PADDING_ZEROS:"DABBAD00":0:3
+
+Check zeros padding #2 (correct)
+check_padding:POLARSSL_PADDING_ZEROS:"DABBAD0000":0:3
+
+Check zeros padding #3 (correct)
+check_padding:POLARSSL_PADDING_ZEROS:"DABBAD":0:3
+
+Check zeros padding #4 (correct)
+check_padding:POLARSSL_PADDING_ZEROS:"000000":0:0
+
+Check no padding #1 (correct by definition)
+check_padding:POLARSSL_PADDING_NONE:"DABBAD00":0:4
+
+Check no padding #2 (correct by definition)
+check_padding:POLARSSL_PADDING_NONE:"DABBAD0001":0:5
+
+Check no padding #3 (correct by definition)
+check_padding:POLARSSL_PADDING_NONE:"":0:0