1.\" $OpenBSD: ENGINE_new.3,v 1.10 2023/11/19 21:13:47 tb Exp $ 2.\" 3.\" Copyright (c) 2023 Theo Buehler <tb@openbsd.org> 4.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org> 5.\" 6.\" Permission to use, copy, modify, and distribute this software for any 7.\" purpose with or without fee is hereby granted, provided that the above 8.\" copyright notice and this permission notice appear in all copies. 9.\" 10.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17.\" 18.Dd $Mdocdate: November 19 2023 $ 19.Dt ENGINE_NEW 3 20.Os 21.Sh NAME 22.Nm ENGINE_new , 23.Nm ENGINE_free , 24.Nm ENGINE_init , 25.Nm ENGINE_finish , 26.Nm ENGINE_ctrl_cmd , 27.Nm ENGINE_ctrl_cmd_string , 28.Nm ENGINE_by_id , 29.Nm ENGINE_get_id , 30.Nm ENGINE_get_name , 31.Nm ENGINE_set_default , 32.Nm ENGINE_get_default_RSA , 33.Nm ENGINE_set_default_RSA , 34.Nm ENGINE_load_private_key , 35.Nm ENGINE_load_public_key , 36.Nm ENGINE_load_builtin_engines , 37.Nm ENGINE_load_dynamic , 38.Nm ENGINE_load_openssl , 39.Nm ENGINE_register_all_complete , 40.Nm ENGINE_cleanup 41.Nd ENGINE stub functions 42.Sh SYNOPSIS 43.In openssl/engine.h 44.Ft ENGINE * 45.Fn ENGINE_new void 46.Ft int 47.Fo ENGINE_free 48.Fa "ENGINE *engine" 49.Fc 50.Ft int 51.Fn ENGINE_init "ENGINE *engine" 52.Ft int 53.Fn ENGINE_finish "ENGINE *engine" 54.Ft int 55.Fo ENGINE_ctrl_cmd 56.Fa "ENGINE *engine" 57.Fa "const char *cmd_name" 58.Fa "long i" 59.Fa "void *p" 60.Fa "void (*f)(void)" 61.Fa "int cmd_optional" 62.Fc 63.Ft int 64.Fo ENGINE_ctrl_cmd_string 65.Fa "ENGINE *engine" 66.Fa "const char *cmd_name" 67.Fa "const char *arg" 68.Fa "int cmd_optional" 69.Fc 70.Ft ENGINE * 71.Fn ENGINE_by_id "const char *id" 72.Ft const char * 73.Fn ENGINE_get_id "const ENGINE *engine" 74.Ft const char * 75.Fn ENGINE_get_name "const ENGINE *engine" 76.Ft int 77.Fn ENGINE_set_default "ENGINE *engine" "unsigned int flags" 78.Ft ENGINE * 79.Fn ENGINE_get_default_RSA "ENGINE *engine" 80.Ft int 81.Fn ENGINE_set_default_RSA "ENGINE *engine" 82.Ft EVP_PKEY * 83.Fo ENGINE_load_private_key 84.Fa "ENGINE *engine" 85.Fa "const char *key_id" 86.Fa "UI_METHOD *ui_method" 87.Fa "void *callback_data" 88.Fc 89.Ft EVP_PKEY * 90.Fo ENGINE_load_public_key 91.Fa "ENGINE *engine" 92.Fa "const char *key_id" 93.Fa "UI_METHOD *ui_method" 94.Fa "void *callback_data" 95.Fc 96.Ft void 97.Fn ENGINE_load_builtin_engines "void" 98.Ft void 99.Fn ENGINE_load_dynamic "void" 100.Ft void 101.Fn ENGINE_load_openssl "void" 102.Ft int 103.Fn ENGINE_register_all_complete "void" 104.Ft void 105.Fn ENGINE_cleanup "void" 106.Sh DESCRIPTION 107.Vt ENGINE 108objects used to provide alternative implementations of 109cryptographic algorithms, for example using specialized hardware. 110LibreSSL no longer supports this feature. 111.Pp 112All functions in this manual ignore all their arguments and 113do nothing except return failure if possible. 114They are provided only to avoid patching software that expects 115.Vt ENGINE 116support to be available. 117.Sh RETURN VALUES 118.Fn ENGINE_new , 119.Fn ENGINE_by_id , 120.Fn ENGINE_get_default_RSA , 121.Fn ENGINE_load_private_key , 122and 123.Fn ENGINE_load_public_key 124always return 125.Dv NULL . 126.Pp 127.Fn ENGINE_free , 128.Fn ENGINE_init , 129.Fn ENGINE_finish , 130.Fn ENGINE_ctrl_cmd , 131.Fn ENGINE_ctrl_cmd_string , 132.Fn ENGINE_set_default , 133.Fn ENGINE_set_default_RSA , 134and 135.Fn ENGINE_register_all_complete 136always return 0. 137.Pp 138.Fn ENGINE_get_id 139and 140.Fn ENGINE_get_name 141always return the constant empty string. 142.Sh SEE ALSO 143.Xr crypto 3 144.Sh HISTORY 145.Fn ENGINE_new , 146.Fn ENGINE_free , 147.Fn ENGINE_init , 148.Fn ENGINE_finish , 149.Fn ENGINE_by_id , 150.Fn ENGINE_get_id , 151.Fn ENGINE_get_name , 152.Fn ENGINE_set_default , 153.Fn ENGINE_get_default_RSA , 154.Fn ENGINE_set_default_RSA , 155.Fn ENGINE_load_private_key , 156and 157.Fn ENGINE_load_public_key 158first appeared in OpenSSL 0.9.7 159and have been available since 160.Ox 2.9 . 161.Pp 162.Fn ENGINE_ctrl_cmd , 163.Fn ENGINE_ctrl_cmd_string , 164.Fn ENGINE_load_builtin_engines , 165.Fn ENGINE_load_openssl , 166.Fn ENGINE_register_all_complete , 167and 168.Fn ENGINE_cleanup 169first appeared in OpenSSL 0.9.7 170and have been available since 171.Ox 3.4 . 172.Pp 173All these functions were turned into stubs in 174.Ox 7.4 . 175