module B32
Constants
- VERSION
Public Class Methods
decode(p1)
click to toggle source
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(p1)
click to toggle source
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 ); }