ruby-changes:74056
From: Ben <ko1@a...>
Date: Mon, 17 Oct 2022 23:43:51 +0900 (JST)
Subject: [ruby-changes:74056] e037731c9f (master): [ruby/openssl] define BIGNUM_2cr macro for BN function that takes context and
https://git.ruby-lang.org/ruby.git/commit/?id=e037731c9f From e037731c9f840b0c74eb68a808a109fdef3c6d5e Mon Sep 17 00:00:00 2001 From: Ben Toews <benjamin.toews@g...> Date: Mon, 17 Oct 2022 07:30:30 -0600 Subject: [ruby/openssl] define BIGNUM_2cr macro for BN function that takes context and returns a BN https://github.com/ruby/openssl/commit/4d0971c51c --- ext/openssl/ossl_bn.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/ext/openssl/ossl_bn.c b/ext/openssl/ossl_bn.c index 56fa0ec302..7eb1bc79a5 100644 --- a/ext/openssl/ossl_bn.c +++ b/ext/openssl/ossl_bn.c @@ -577,22 +577,25 @@ BIGNUM_2c(gcd) https://github.com/ruby/ruby/blob/trunk/ext/openssl/ossl_bn.c#L577 */ BIGNUM_2c(mod_sqr) +#define BIGNUM_2cr(func) \ + static VALUE \ + ossl_bn_##func(VALUE self, VALUE other) \ + { \ + BIGNUM *bn1, *bn2 = GetBNPtr(other), *result; \ + VALUE obj; \ + GetBN(self, bn1); \ + obj = NewBN(rb_obj_class(self)); \ + if (!(result = BN_##func(NULL, bn1, bn2, ossl_bn_ctx))) \ + ossl_raise(eBNError, NULL); \ + SetBN(obj, result); \ + return obj; \ + } + /* * call-seq: * bn.mod_inverse(bn2) => aBN */ -static VALUE -ossl_bn_mod_inverse(VALUE self, VALUE other) -{ - BIGNUM *bn1, *bn2 = GetBNPtr(other), *result; - VALUE obj; - GetBN(self, bn1); - obj = NewBN(rb_obj_class(self)); - if (!(result = BN_mod_inverse(NULL, bn1, bn2, ossl_bn_ctx))) - ossl_raise(eBNError, "BN_mod_inverse"); - SetBN(obj, result); - return obj; -} +BIGNUM_2cr(mod_inverse) /* * call-seq: -- cgit v1.2.3 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/