tree cf51b125327d67cb5c514d74688941d9372132d9
parent 034c7733c643b06529515be228b974079ea10a99
author James Bottomley <James.Bottomley@HansenPartnership.com> 1645999280 -0500
committer James Bottomley <James.Bottomley@HansenPartnership.com> 1646060209 -0500

Take an engine reference in the key

Apparently openssl doesn't do this for engine keys meaning that the
openssl described way of obtaining and engine key

    if (ENGINE_init(e)) {
        pkey = ENGINE_load_private_key(e, file, ui_method, &cb_data);
        ENGINE_finish(e);
    }

results in a dynamic engine being torn down immediately after the key
is obtained. Fix this by taking a reference in the binding and
releasing it when the key app_data is freed.  This requires adding a
pointer to the engine to the app_data.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
