[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]