mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[ruby/openssl] pkey: remove unused ossl_generate_cb_2() helper function
The previous series of commits re-implemented key generation with the low level API with the EVP API. The BN_GENCB-based callback function is no longer used. https://github.com/ruby/openssl/commit/81027b7463
This commit is contained in:
parent
38436d1f5c
commit
436aecb520
4 changed files with 15 additions and 81 deletions
|
@ -130,9 +130,6 @@ engines.each { |name|
|
||||||
if !have_struct_member("SSL", "ctx", "openssl/ssl.h") || is_libressl
|
if !have_struct_member("SSL", "ctx", "openssl/ssl.h") || is_libressl
|
||||||
$defs.push("-DHAVE_OPAQUE_OPENSSL")
|
$defs.push("-DHAVE_OPAQUE_OPENSSL")
|
||||||
end
|
end
|
||||||
have_func("BN_GENCB_new")
|
|
||||||
have_func("BN_GENCB_free")
|
|
||||||
have_func("BN_GENCB_get_arg")
|
|
||||||
have_func("EVP_MD_CTX_new")
|
have_func("EVP_MD_CTX_new")
|
||||||
have_func("EVP_MD_CTX_free")
|
have_func("EVP_MD_CTX_free")
|
||||||
have_func("EVP_MD_CTX_pkey_ctx")
|
have_func("EVP_MD_CTX_pkey_ctx")
|
||||||
|
|
|
@ -13,18 +13,6 @@
|
||||||
#include "ruby/config.h"
|
#include "ruby/config.h"
|
||||||
|
|
||||||
/* added in 1.1.0 */
|
/* added in 1.1.0 */
|
||||||
#if !defined(HAVE_BN_GENCB_NEW)
|
|
||||||
# define BN_GENCB_new() ((BN_GENCB *)OPENSSL_malloc(sizeof(BN_GENCB)))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(HAVE_BN_GENCB_FREE)
|
|
||||||
# define BN_GENCB_free(cb) OPENSSL_free(cb)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(HAVE_BN_GENCB_GET_ARG)
|
|
||||||
# define BN_GENCB_get_arg(cb) (cb)->arg
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(HAVE_EVP_MD_CTX_NEW)
|
#if !defined(HAVE_EVP_MD_CTX_NEW)
|
||||||
# define EVP_MD_CTX_new EVP_MD_CTX_create
|
# define EVP_MD_CTX_new EVP_MD_CTX_create
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -17,64 +17,6 @@ VALUE cPKey;
|
||||||
VALUE ePKeyError;
|
VALUE ePKeyError;
|
||||||
static ID id_private_q;
|
static ID id_private_q;
|
||||||
|
|
||||||
/*
|
|
||||||
* callback for generating keys
|
|
||||||
*/
|
|
||||||
static VALUE
|
|
||||||
call_check_ints0(VALUE arg)
|
|
||||||
{
|
|
||||||
rb_thread_check_ints();
|
|
||||||
return Qnil;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void *
|
|
||||||
call_check_ints(void *arg)
|
|
||||||
{
|
|
||||||
int state;
|
|
||||||
rb_protect(call_check_ints0, Qnil, &state);
|
|
||||||
return (void *)(VALUE)state;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
ossl_generate_cb_2(int p, int n, BN_GENCB *cb)
|
|
||||||
{
|
|
||||||
VALUE ary;
|
|
||||||
struct ossl_generate_cb_arg *arg;
|
|
||||||
int state;
|
|
||||||
|
|
||||||
arg = (struct ossl_generate_cb_arg *)BN_GENCB_get_arg(cb);
|
|
||||||
if (arg->yield) {
|
|
||||||
ary = rb_ary_new2(2);
|
|
||||||
rb_ary_store(ary, 0, INT2NUM(p));
|
|
||||||
rb_ary_store(ary, 1, INT2NUM(n));
|
|
||||||
|
|
||||||
/*
|
|
||||||
* can be break by raising exception or 'break'
|
|
||||||
*/
|
|
||||||
rb_protect(rb_yield, ary, &state);
|
|
||||||
if (state) {
|
|
||||||
arg->state = state;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (arg->interrupted) {
|
|
||||||
arg->interrupted = 0;
|
|
||||||
state = (int)(VALUE)rb_thread_call_with_gvl(call_check_ints, NULL);
|
|
||||||
if (state) {
|
|
||||||
arg->state = state;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
ossl_generate_cb_stop(void *ptr)
|
|
||||||
{
|
|
||||||
struct ossl_generate_cb_arg *arg = (struct ossl_generate_cb_arg *)ptr;
|
|
||||||
arg->interrupted = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ossl_evp_pkey_free(void *ptr)
|
ossl_evp_pkey_free(void *ptr)
|
||||||
{
|
{
|
||||||
|
@ -257,6 +199,21 @@ pkey_gen_cb_yield(VALUE ctx_v)
|
||||||
return rb_yield_values2(info_num, argv);
|
return rb_yield_values2(info_num, argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
call_check_ints0(VALUE arg)
|
||||||
|
{
|
||||||
|
rb_thread_check_ints();
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
call_check_ints(void *arg)
|
||||||
|
{
|
||||||
|
int state;
|
||||||
|
rb_protect(call_check_ints0, Qnil, &state);
|
||||||
|
return (void *)(VALUE)state;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
pkey_gen_cb(EVP_PKEY_CTX *ctx)
|
pkey_gen_cb(EVP_PKEY_CTX *ctx)
|
||||||
{
|
{
|
||||||
|
|
|
@ -35,14 +35,6 @@ extern const rb_data_type_t ossl_evp_pkey_type;
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
struct ossl_generate_cb_arg {
|
|
||||||
int yield;
|
|
||||||
int interrupted;
|
|
||||||
int state;
|
|
||||||
};
|
|
||||||
int ossl_generate_cb_2(int p, int n, BN_GENCB *cb);
|
|
||||||
void ossl_generate_cb_stop(void *ptr);
|
|
||||||
|
|
||||||
VALUE ossl_pkey_new(EVP_PKEY *);
|
VALUE ossl_pkey_new(EVP_PKEY *);
|
||||||
void ossl_pkey_check_public_key(const EVP_PKEY *);
|
void ossl_pkey_check_public_key(const EVP_PKEY *);
|
||||||
EVP_PKEY *ossl_pkey_read_generic(BIO *, VALUE);
|
EVP_PKEY *ossl_pkey_read_generic(BIO *, VALUE);
|
||||||
|
|
Loading…
Reference in a new issue