Module: Base58
- Defined in:
- lib/b58.rb,
lib/b58/version.rb,
ext/b58/b58.c
Defined Under Namespace
Classes: EncodeError, Error
Constant Summary
collapse
- VERSION =
"0.1.0"
Class Method Summary
collapse
Class Method Details
.check_58(str) ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
# File 'ext/b58/b58.c', line 83
VALUE rb_mBase58_check_58(VALUE self, VALUE str) {
Check_Type(str, T_STRING);
size_t input_size;
input_size = RSTRING_LEN(str);
size_t output_size;
output_size = input_size * 2;
char outbuf[output_size];
char *plaintxt;
plaintxt = RSTRING_PTR(str);
int version;
version = plaintxt[0];
bool rv;
rv =
b58check_enc(outbuf, &output_size, version, &plaintxt[1], input_size - 1);
if (rv) {
return Qtrue;
} else {
return Qfalse;
}
}
|
.decode_58(str) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'ext/b58/b58.c', line 27
VALUE rb_mBase58_decode_58(VALUE self, VALUE str) {
Check_Type(str, T_STRING);
size_t input_size;
input_size = RSTRING_LEN(str);
size_t output_size;
output_size = input_size * 733 / 1000 + 1;
char outbuf[output_size];
char *plaintxt;
plaintxt = RSTRING_PTR(str);
bool rv;
rv = b58tobin(outbuf, &output_size, plaintxt, input_size);
if (!rv) {
rb_raise(rb_mBase58_EncodeError, "Could not encode string in base58");
return Qnil;
}
// Account for null termination
VALUE outstring;
outstring = rb_str_new(outbuf, output_size);
return outstring;
}
|
.encode_58(str) ⇒ Object
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'ext/b58/b58.c', line 56
VALUE rb_mBase58_encode_58(VALUE self, VALUE str) {
Check_Type(str, T_STRING);
size_t input_size;
input_size = RSTRING_LEN(str);
size_t output_size;
output_size = input_size * 2;
char outbuf[output_size];
char *plaintxt;
plaintxt = RSTRING_PTR(str);
bool rv;
rv = b58enc(outbuf, &output_size, plaintxt, input_size);
if (!rv) {
rb_raise(rb_mBase58_EncodeError, "Could not encode string in base58");
return Qnil;
}
// Account for null termination
return rb_str_new(outbuf, output_size - 1);
}
|