| 80 | } |
| 81 | |
| 82 | static int |
| 83 | bind_async(ENGINE *e) |
| 84 | { |
| 85 | /* Setup RSA_METHOD */ |
| 86 | if ((async_rsa_method = RSA_meth_new("Async RSA method", 0)) == NULL || |
| 87 | RSA_meth_set_pub_enc(async_rsa_method, async_pub_enc) == 0 || RSA_meth_set_pub_dec(async_rsa_method, async_pub_dec) == 0 || |
| 88 | RSA_meth_set_priv_enc(async_rsa_method, async_rsa_priv_enc) == 0 || |
| 89 | RSA_meth_set_priv_dec(async_rsa_method, async_rsa_priv_dec) == 0 || |
| 90 | RSA_meth_set_mod_exp(async_rsa_method, async_rsa_mod_exp) == 0 || |
| 91 | RSA_meth_set_bn_mod_exp(async_rsa_method, BN_mod_exp_mont) == 0 || RSA_meth_set_init(async_rsa_method, async_rsa_init) == 0 || |
| 92 | RSA_meth_set_finish(async_rsa_method, async_rsa_finish) == 0) { |
| 93 | fprintf(stderr, "Failed to initialize rsa method\n"); |
| 94 | return 0; |
| 95 | } |
| 96 | |
| 97 | /* Ensure the dasync error handling is set up */ |
| 98 | ERR_load_ASYNC_strings(); |
| 99 | |
| 100 | if (!ENGINE_set_id(e, engine_id) || !ENGINE_set_name(e, engine_name) || !ENGINE_set_RSA(e, async_rsa_method) || |
| 101 | !ENGINE_set_destroy_function(e, async_destroy) || !ENGINE_set_init_function(e, engine_async_init) || |
| 102 | !ENGINE_set_finish_function(e, async_finish) || !ENGINE_set_load_privkey_function(e, async_load_privkey)) { |
| 103 | fprintf(stderr, "Failed to initialize\n"); |
| 104 | return 0; |
| 105 | } |
| 106 | |
| 107 | return 1; |
| 108 | } |
| 109 | |
| 110 | #ifndef OPENSSL_NO_DYNAMIC_ENGINE |
| 111 | static int |
no outgoing calls
no test coverage detected