- if (!(cipher = EVP_CIPHER_meth_new(c->nid, c->block_size, c->key_len))
- || !EVP_CIPHER_meth_set_iv_length(cipher, c->iv_len)
- || !EVP_CIPHER_meth_set_flags(cipher, c->flags)
- || !EVP_CIPHER_meth_set_init(cipher, c->init)
- || !EVP_CIPHER_meth_set_do_cipher(cipher, c->do_cipher)
- || !EVP_CIPHER_meth_set_cleanup(cipher, c->cleanup)
- || !EVP_CIPHER_meth_set_impl_ctx_size(cipher, c->ctx_size)
- || !EVP_CIPHER_meth_set_set_asn1_params(cipher, c->set_asn1_parameters)
- || !EVP_CIPHER_meth_set_get_asn1_params(cipher, c->get_asn1_parameters)
- || !EVP_CIPHER_meth_set_ctrl(cipher, c->ctrl)) {
+ if (!(cipher = EVP_CIPHER_meth_new(c->nid, TPL(c, block_size), TPL(c, key_len)))
+ || !EVP_CIPHER_meth_set_iv_length(cipher, TPL(c, iv_len))
+ || !EVP_CIPHER_meth_set_flags(cipher, c->flags | TPL_VAL(c, flags))
+ || !EVP_CIPHER_meth_set_init(cipher, TPL(c, init))
+ || !EVP_CIPHER_meth_set_do_cipher(cipher, TPL(c, do_cipher))
+ || !EVP_CIPHER_meth_set_cleanup(cipher, TPL(c, cleanup))
+ || !EVP_CIPHER_meth_set_impl_ctx_size(cipher, TPL(c, ctx_size))
+ || !EVP_CIPHER_meth_set_set_asn1_params(cipher, TPL(c, set_asn1_parameters))
+ || !EVP_CIPHER_meth_set_get_asn1_params(cipher, TPL(c, get_asn1_parameters))
+ || !EVP_CIPHER_meth_set_ctrl(cipher, TPL(c, ctrl))) {