method
to_s
v2_6_3 -
Show latest stable
- Class:
OpenSSL::BN
to_s(p1 = v1)public
Parameters
-
base - Integer Valid values:
-
0 - MPI
-
2 - binary
-
10 - the default
-
16 - hex
-
static VALUE
ossl_bn_to_s(int argc, VALUE *argv, VALUE self)
{
BIGNUM *bn;
VALUE str, bs;
int base = 10, len;
char *buf;
if (rb_scan_args(argc, argv, "01", &bs) == 1) {
base = NUM2INT(bs);
}
GetBN(self, bn);
switch (base) {
case 0:
len = BN_bn2mpi(bn, NULL);
str = rb_str_new(0, len);
if (BN_bn2mpi(bn, (unsigned char *)RSTRING_PTR(str)) != len)
ossl_raise(eBNError, NULL);
break;
case 2:
len = BN_num_bytes(bn);
str = rb_str_new(0, len);
if (BN_bn2bin(bn, (unsigned char *)RSTRING_PTR(str)) != len)
ossl_raise(eBNError, NULL);
break;
case 10:
if (!(buf = BN_bn2dec(bn))) ossl_raise(eBNError, NULL);
str = ossl_buf2str(buf, rb_long2int(strlen(buf)));
break;
case 16:
if (!(buf = BN_bn2hex(bn))) ossl_raise(eBNError, NULL);
str = ossl_buf2str(buf, rb_long2int(strlen(buf)));
break;
default:
ossl_raise(rb_eArgError, "invalid radix %d", base);
}
return str;
} Related methods
- Instance methods
- %
- *
- **
- +
- +@
- -
- -@
- /
- <<
- <=>
- ==
- ===
- >>
- bit_set?
- clear_bit!
- cmp
- coerce
- copy
- eql?
- gcd
- hash
- initialize_copy
- lshift!
- mod_add
- mod_exp
- mod_inverse
- mod_mul
- mod_sqr
- mod_sub
- negative?
- num_bits
- num_bytes
- odd?
- one?
- pretty_print
- prime?
- prime_fasttest?
- rshift!
- set_bit!
- sqr
- to_bn
- to_i
- to_int
- to_s
- ucmp
- zero?
- Class methods
- generate_prime
- new
- pseudo_rand
- pseudo_rand_range
- rand
- rand_range