+ if ((p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_IVLEN)) != NULL) {
+ size_t ivlen = 0;
+
+ if (!OSSL_PARAM_get_size_t(p, &ivlen)
+ || EVP_CIPHER_CTX_ctrl(gctx->cctx, EVP_CTRL_AEAD_SET_IVLEN,
+ ivlen, NULL) <= 0)
+ return 0;
+ }
+ if ((p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_AEAD_TAG)) != NULL) {
+ char tag[1024];
+ void *val = (void *) tag;
+ size_t taglen = 0;
+
+ if (!OSSL_PARAM_get_octet_string(p, &val, 1024, &taglen)
+ || EVP_CIPHER_CTX_ctrl(gctx->cctx, EVP_CTRL_AEAD_SET_TAG,
+ taglen, &tag) <= 0)
+ return 0;
+ }