cipher_wrap: remove *setkey_dec_func in CIPHER_ENCRYPT_ONLY

There is no need to set decrypt key under CIPHER_ENCRYPT_ONLY,
so we can remove *setkey_dec_func from ctx to save extra code size.

Signed-off-by: Yanray Wang <yanray.wang@arm.com>
diff --git a/library/cipher.c b/library/cipher.c
index de7f837..cefd9e1 100644
--- a/library/cipher.c
+++ b/library/cipher.c
@@ -396,6 +396,7 @@
     ctx->key_bitlen = key_bitlen;
     ctx->operation = operation;
 
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     /*
      * For OFB, CFB and CTR mode always use the encryption key schedule
      */
@@ -413,6 +414,10 @@
     }
 
     return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
+#else
+    return mbedtls_cipher_get_base(ctx->cipher_info)->setkey_enc_func(ctx->cipher_ctx, key,
+                                                                      ctx->key_bitlen);
+#endif
 }
 
 int mbedtls_cipher_set_iv(mbedtls_cipher_context_t *ctx,
diff --git a/library/cipher_wrap.c b/library/cipher_wrap.c
index 6ab2f5f..20bb984 100644
--- a/library/cipher_wrap.c
+++ b/library/cipher_wrap.c
@@ -238,11 +238,13 @@
 }
 #endif /* MBEDTLS_CIPHER_MODE_XTS */
 
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
 static int aes_setkey_dec_wrap(void *ctx, const unsigned char *key,
                                unsigned int key_bitlen)
 {
     return mbedtls_aes_setkey_dec((mbedtls_aes_context *) ctx, key, key_bitlen);
 }
+#endif
 
 static int aes_setkey_enc_wrap(void *ctx, const unsigned char *key,
                                unsigned int key_bitlen)
@@ -291,7 +293,9 @@
     NULL,
 #endif
     aes_setkey_enc_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     aes_setkey_dec_wrap,
+#endif
     aes_ctx_alloc,
     aes_ctx_free
 };
@@ -587,7 +591,9 @@
     NULL,
 #endif
     gcm_aes_setkey_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     gcm_aes_setkey_wrap,
+#endif
     gcm_ctx_alloc,
     gcm_ctx_free,
 };
@@ -656,7 +662,9 @@
     NULL,
 #endif
     ccm_aes_setkey_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     ccm_aes_setkey_wrap,
+#endif
     ccm_ctx_alloc,
     ccm_ctx_free,
 };
@@ -769,11 +777,13 @@
 }
 #endif /* MBEDTLS_CIPHER_MODE_CTR */
 
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
 static int camellia_setkey_dec_wrap(void *ctx, const unsigned char *key,
                                     unsigned int key_bitlen)
 {
     return mbedtls_camellia_setkey_dec((mbedtls_camellia_context *) ctx, key, key_bitlen);
 }
+#endif
 
 static int camellia_setkey_enc_wrap(void *ctx, const unsigned char *key,
                                     unsigned int key_bitlen)
@@ -823,7 +833,9 @@
     NULL,
 #endif
     camellia_setkey_enc_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     camellia_setkey_dec_wrap,
+#endif
     camellia_ctx_alloc,
     camellia_ctx_free
 };
@@ -996,7 +1008,9 @@
     NULL,
 #endif
     gcm_camellia_setkey_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     gcm_camellia_setkey_wrap,
+#endif
     gcm_ctx_alloc,
     gcm_ctx_free,
 };
@@ -1065,7 +1079,9 @@
     NULL,
 #endif
     ccm_camellia_setkey_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     ccm_camellia_setkey_wrap,
+#endif
     ccm_ctx_alloc,
     ccm_ctx_free,
 };
@@ -1179,11 +1195,13 @@
 }
 #endif /* MBEDTLS_CIPHER_MODE_CTR */
 
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
 static int aria_setkey_dec_wrap(void *ctx, const unsigned char *key,
                                 unsigned int key_bitlen)
 {
     return mbedtls_aria_setkey_dec((mbedtls_aria_context *) ctx, key, key_bitlen);
 }
+#endif
 
 static int aria_setkey_enc_wrap(void *ctx, const unsigned char *key,
                                 unsigned int key_bitlen)
@@ -1233,7 +1251,9 @@
     NULL,
 #endif
     aria_setkey_enc_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     aria_setkey_dec_wrap,
+#endif
     aria_ctx_alloc,
     aria_ctx_free
 };
@@ -1406,7 +1426,9 @@
     NULL,
 #endif
     gcm_aria_setkey_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     gcm_aria_setkey_wrap,
+#endif
     gcm_ctx_alloc,
     gcm_ctx_free,
 };
@@ -1475,7 +1497,9 @@
     NULL,
 #endif
     ccm_aria_setkey_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     ccm_aria_setkey_wrap,
+#endif
     ccm_ctx_alloc,
     ccm_ctx_free,
 };
@@ -1583,6 +1607,7 @@
 }
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
 static int des_setkey_dec_wrap(void *ctx, const unsigned char *key,
                                unsigned int key_bitlen)
 {
@@ -1590,6 +1615,7 @@
 
     return mbedtls_des_setkey_dec((mbedtls_des_context *) ctx, key);
 }
+#endif
 
 static int des_setkey_enc_wrap(void *ctx, const unsigned char *key,
                                unsigned int key_bitlen)
@@ -1599,6 +1625,7 @@
     return mbedtls_des_setkey_enc((mbedtls_des_context *) ctx, key);
 }
 
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
 static int des3_set2key_dec_wrap(void *ctx, const unsigned char *key,
                                  unsigned int key_bitlen)
 {
@@ -1606,6 +1633,7 @@
 
     return mbedtls_des3_set2key_dec((mbedtls_des3_context *) ctx, key);
 }
+#endif
 
 static int des3_set2key_enc_wrap(void *ctx, const unsigned char *key,
                                  unsigned int key_bitlen)
@@ -1615,6 +1643,7 @@
     return mbedtls_des3_set2key_enc((mbedtls_des3_context *) ctx, key);
 }
 
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
 static int des3_set3key_dec_wrap(void *ctx, const unsigned char *key,
                                  unsigned int key_bitlen)
 {
@@ -1622,6 +1651,7 @@
 
     return mbedtls_des3_set3key_dec((mbedtls_des3_context *) ctx, key);
 }
+#endif
 
 static int des3_set3key_enc_wrap(void *ctx, const unsigned char *key,
                                  unsigned int key_bitlen)
@@ -1692,7 +1722,9 @@
     NULL,
 #endif
     des_setkey_enc_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     des_setkey_dec_wrap,
+#endif
     des_ctx_alloc,
     des_ctx_free
 };
@@ -1743,7 +1775,9 @@
     NULL,
 #endif
     des3_set2key_enc_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     des3_set2key_dec_wrap,
+#endif
     des3_ctx_alloc,
     des3_ctx_free
 };
@@ -1794,7 +1828,9 @@
     NULL,
 #endif
     des3_set3key_enc_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     des3_set3key_dec_wrap,
+#endif
     des3_ctx_alloc,
     des3_ctx_free
 };
@@ -1895,7 +1931,9 @@
     chacha20_stream_wrap,
 #endif
     chacha20_setkey_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     chacha20_setkey_wrap,
+#endif
     chacha20_ctx_alloc,
     chacha20_ctx_free
 };
@@ -1970,7 +2008,9 @@
     NULL,
 #endif
     chachapoly_setkey_wrap,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     chachapoly_setkey_wrap,
+#endif
     chachapoly_ctx_alloc,
     chachapoly_ctx_free
 };
@@ -2038,7 +2078,9 @@
     null_crypt_stream,
 #endif
     null_setkey,
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     null_setkey,
+#endif
     null_ctx_alloc,
     null_ctx_free
 };
diff --git a/library/cipher_wrap.h b/library/cipher_wrap.h
index c85a4ef..2cbc216 100644
--- a/library/cipher_wrap.h
+++ b/library/cipher_wrap.h
@@ -93,9 +93,11 @@
     int (*setkey_enc_func)(void *ctx, const unsigned char *key,
                            unsigned int key_bitlen);
 
+#if !defined(MBEDTLS_CIPHER_ENCRYPT_ONLY)
     /** Set key for decryption purposes */
     int (*setkey_dec_func)(void *ctx, const unsigned char *key,
                            unsigned int key_bitlen);
+#endif
 
     /** Allocate a new context */
     void * (*ctx_alloc_func)(void);