Module: B32
- Defined in:
- lib/b32/version.rb,
ext/b32/b32.c
Defined Under Namespace
Classes: DecodeError
Constant Summary collapse
- VERSION =
"1.0.0"
Class Method Summary collapse
Class Method Details
.decode(*args) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'ext/b32/b32.c', line 31
static VALUE
b32_decode(int argc, VALUE *argv, VALUE self)
{
VALUE input;
const unsigned char* src;
size_t input_len, estimate_len;
rb_scan_args(argc, argv, "1", &input);
if (TYPE(input) != T_STRING) {
rb_raise(rb_eTypeError, "expected a String");
}
src = (unsigned char*) StringValueCStr(input);
input_len = RSTRING_LEN(input);
estimate_len = UNBASE32_LEN(input_len);
unsigned char out[estimate_len];
base32_decode(src, out);
return rb_utf8_str_new_cstr((const char*) out);
}
|
.encode(*args) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'ext/b32/b32.c', line 11
static VALUE
b32_encode(int argc, VALUE* argv, VALUE self)
{
VALUE input;
const unsigned char* src;
size_t srclen;
rb_scan_args(argc, argv, "1", &input);
if (TYPE(input) != T_STRING) {
rb_raise(rb_eTypeError, "expected a String");
}
src = (unsigned char*) StringValueCStr(input);
srclen = BASE32_LEN(RSTRING_LEN(input));
unsigned char dest[srclen];
base32_encode(src, RSTRING_LEN(input), dest);
return rb_utf8_str_new((const char*) dest, srclen );
}
|