}
ctx->base.ivlen = ivlen;
}
- memcpy(ctx->base.iv, iv, ivlen);
+ if (!cipher_generic_initiv(&ctx->base, iv, ivlen))
+ return 0;
ctx->iv_state = IV_STATE_BUFFERED;
}
if (key != NULL) {
if (ctx != NULL) {
aes_generic_ocb_cleanup(ctx);
- OPENSSL_cleanse(ctx->base.iv, sizeof(ctx->base.iv));
OPENSSL_clear_free(ctx, sizeof(*ctx));
}
}
ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH);
return 0;
}
- if (!OSSL_PARAM_set_octet_string(p, ctx->base.iv, ctx->base.ivlen)) {
+ if (!OSSL_PARAM_set_octet_string(p, ctx->base.oiv, ctx->base.ivlen)) {
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER);
return 0;
}