#include "ossl.h"
Go to the source code of this file.
#define BIGNUM_1c | ( | func | ) |
/* \ * call-seq: \ * bn.##func -> aBN \ * \ */ \ static VALUE \ ossl_bn_##func(VALUE self) \ { \ BIGNUM *bn, *result; \ VALUE obj; \ GetBN(self, bn); \ if (!(result = BN_new())) { \ ossl_raise(eBNError, NULL); \ } \ if (!BN_##func(result, bn, ossl_bn_ctx)) { \ BN_free(result); \ ossl_raise(eBNError, NULL); \ } \ WrapBN(CLASS_OF(self), obj, result); \ return obj; \ }
#define BIGNUM_2 | ( | func | ) |
/* \ * call-seq: \ * bn.##func(bn2) -> aBN \ * \ */ \ static VALUE \ ossl_bn_##func(VALUE self, VALUE other) \ { \ BIGNUM *bn1, *bn2 = GetBNPtr(other), *result; \ VALUE obj; \ GetBN(self, bn1); \ if (!(result = BN_new())) { \ ossl_raise(eBNError, NULL); \ } \ if (!BN_##func(result, bn1, bn2)) { \ BN_free(result); \ ossl_raise(eBNError, NULL); \ } \ WrapBN(CLASS_OF(self), obj, result); \ return obj; \ }
Referenced by BIGNUM_1c().
#define BIGNUM_2c | ( | func | ) |
/* \ * call-seq: \ * bn.##func(bn2) -> aBN \ * \ */ \ static VALUE \ ossl_bn_##func(VALUE self, VALUE other) \ { \ BIGNUM *bn1, *bn2 = GetBNPtr(other), *result; \ VALUE obj; \ GetBN(self, bn1); \ if (!(result = BN_new())) { \ ossl_raise(eBNError, NULL); \ } \ if (!BN_##func(result, bn1, bn2, ossl_bn_ctx)) { \ BN_free(result); \ ossl_raise(eBNError, NULL); \ } \ WrapBN(CLASS_OF(self), obj, result); \ return obj; \ }
Referenced by BIGNUM_1c().
#define BIGNUM_3c | ( | func | ) |
/* \ * call-seq: \ * bn.##func(bn1, bn2) -> aBN \ * \ */ \ static VALUE \ ossl_bn_##func(VALUE self, VALUE other1, VALUE other2) \ { \ BIGNUM *bn1, *bn2 = GetBNPtr(other1); \ BIGNUM *bn3 = GetBNPtr(other2), *result; \ VALUE obj; \ GetBN(self, bn1); \ if (!(result = BN_new())) { \ ossl_raise(eBNError, NULL); \ } \ if (!BN_##func(result, bn1, bn2, bn3, ossl_bn_ctx)) { \ BN_free(result); \ ossl_raise(eBNError, NULL); \ } \ WrapBN(CLASS_OF(self), obj, result); \ return obj; \ }
#define BIGNUM_BIT | ( | func | ) |
#define BIGNUM_BOOL1 | ( | func | ) |
#define BIGNUM_CMP | ( | func | ) |
#define BIGNUM_NUM | ( | func | ) |
#define BIGNUM_RAND | ( | func | ) |
/* \ * call-seq: \ * BN.##func(bits [, fill [, odd]]) -> aBN \ * \ */ \ static VALUE \ ossl_bn_s_##func(int argc, VALUE *argv, VALUE klass) \ { \ BIGNUM *result; \ int bottom = 0, top = 0, b; \ VALUE bits, fill, odd, obj; \ \ switch (rb_scan_args(argc, argv, "12", &bits, &fill, &odd)) { \ case 3: \ bottom = (odd == Qtrue) ? 1 : 0; \ /* FALLTHROUGH */ \ case 2: \ top = NUM2INT(fill); \ } \ b = NUM2INT(bits); \ if (!(result = BN_new())) { \ ossl_raise(eBNError, NULL); \ } \ if (!BN_##func(result, b, top, bottom)) { \ BN_free(result); \ ossl_raise(eBNError, NULL); \ } \ WrapBN(klass, obj, result); \ return obj; \ }
#define BIGNUM_RAND_RANGE | ( | func | ) |
/* \ * call-seq: \ * BN.##func(range) -> aBN \ * \ */ \ static VALUE \ ossl_bn_s_##func##_range(VALUE klass, VALUE range) \ { \ BIGNUM *bn = GetBNPtr(range), *result; \ VALUE obj; \ if (!(result = BN_new())) { \ ossl_raise(eBNError, NULL); \ } \ if (!BN_##func##_range(result, bn)) { \ BN_free(result); \ ossl_raise(eBNError, NULL); \ } \ WrapBN(klass, obj, result); \ return obj; \ }
#define BIGNUM_SELF_SHIFT | ( | func | ) |
#define BIGNUM_SHIFT | ( | func | ) |
/* \ * call-seq: \ * bn.##func(bits) -> aBN \ * \ */ \ static VALUE \ ossl_bn_##func(VALUE self, VALUE bits) \ { \ BIGNUM *bn, *result; \ int b; \ VALUE obj; \ b = NUM2INT(bits); \ GetBN(self, bn); \ if (!(result = BN_new())) { \ ossl_raise(eBNError, NULL); \ } \ if (!BN_##func(result, bn, b)) { \ BN_free(result); \ ossl_raise(eBNError, NULL); \ } \ WrapBN(CLASS_OF(self), obj, result); \ return obj; \ }
#define GetBN | ( | obj, | ||
bn | ||||
) |
do { \ Data_Get_Struct(obj, BIGNUM, bn); \ if (!bn) { \ ossl_raise(rb_eRuntimeError, "BN wasn't initialized!"); \ } \ } while (0)
Definition at line 21 of file ossl_bn.c.
Referenced by BIGNUM_1c(), GetBNPtr(), ossl_bn_initialize(), ossl_bn_to_i(), and ossl_bn_to_s().
#define SafeGetBN | ( | obj, | ||
bn | ||||
) |
do { \ OSSL_Check_Kind(obj, cBN); \ GetBN(obj, bn); \ } while (0)
#define WrapBN | ( | klass, | ||
obj, | ||||
bn | ||||
) |
do { \ if (!bn) { \ ossl_raise(rb_eRuntimeError, "BN wasn't initialized!"); \ } \ obj = Data_Wrap_Struct(klass, 0, BN_clear_free, bn); \ } while (0)
Definition at line 14 of file ossl_bn.c.
Referenced by GetBNPtr(), ossl_bn_alloc(), and ossl_bn_new().
BIGNUM_1c | ( | sqr | ) |
Definition at line 293 of file ossl_bn.c.
References BIGNUM_2, BIGNUM_2c, eBNError, GetBN, GetBNPtr(), NULL, and ossl_raise().
BIGNUM* GetBNPtr | ( | VALUE | obj | ) |
Definition at line 58 of file ossl_bn.c.
References cBN, eBNError, GetBN, NULL, ossl_raise(), rb_eTypeError, rb_obj_is_kind_of(), rb_String(), RTEST, StringValuePtr, T_BIGNUM, T_FIXNUM, TYPE, and WrapBN.
Referenced by BIGNUM_1c(), num_to_asn1integer(), and ossl_dh_compute_key().
void Init_ossl_bn | ( | void | ) |
Definition at line 684 of file ossl_bn.c.
Referenced by Init_openssl().
Definition at line 241 of file ossl_bn.c.
References cBN, NULL, ossl_bn_to_i(), ossl_bn_to_s(), ossl_raise(), rb_assoc_new(), rb_eTypeError, rb_obj_is_kind_of(), RTEST, T_BIGNUM, T_FIXNUM, T_STRING, and TYPE.
Definition at line 111 of file ossl_bn.c.
References cBN, eBNError, GetBN, NULL, NUM2INT, ossl_raise(), rb_eArgError, rb_obj_is_kind_of(), rb_scan_args(), RSTRING_LEN, RSTRING_PTR, RTEST, and StringValue.
VALUE ossl_bn_new | ( | const BIGNUM * | bn | ) |
Definition at line 43 of file ossl_bn.c.
References cBN, eBNError, NULL, ossl_raise(), and WrapBN.
Referenced by asn1integer_to_num(), ossl_dh_get_params(), ossl_dsa_get_params(), and ossl_rsa_get_params().
Definition at line 217 of file ossl_bn.c.
References eBNError, GetBN, NULL, ossl_raise(), Qtrue, and rb_cstr_to_inum().
Referenced by ossl_bn_coerce().
Definition at line 173 of file ossl_bn.c.
References buf, eBNError, GetBN, len, NULL, NUM2INT, ossl_buf2str(), ossl_raise(), rb_eArgError, rb_scan_args(), rb_str_new(), and RSTRING_PTR.
Referenced by ossl_bn_coerce().
Definition at line 36 of file ossl_bn.c.
Referenced by GetBNPtr(), ossl_bn_coerce(), ossl_bn_initialize(), and ossl_bn_new().
Definition at line 37 of file ossl_bn.c.
Referenced by BIGNUM_1c(), GetBNPtr(), ossl_bn_alloc(), ossl_bn_initialize(), ossl_bn_new(), ossl_bn_to_i(), and ossl_bn_to_s().
BN_CTX* ossl_bn_ctx |