ob64 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +1 -1
  4. data/lib/ob64/version.rb +1 -1
  5. data/ob64.gemspec +2 -0
  6. data/vendor/libbase64/.gitignore +12 -0
  7. data/vendor/libbase64/.travis.yml +71 -0
  8. data/vendor/libbase64/CMakeLists.txt +264 -0
  9. data/vendor/libbase64/LICENSE +28 -0
  10. data/vendor/libbase64/Makefile +93 -0
  11. data/vendor/libbase64/README.md +474 -0
  12. data/vendor/libbase64/base64-benchmarks.png +0 -0
  13. data/vendor/libbase64/bin/base64.c +132 -0
  14. data/vendor/libbase64/cmake/Modules/TargetArch.cmake +29 -0
  15. data/vendor/libbase64/cmake/Modules/TargetSIMDInstructionSet.cmake +34 -0
  16. data/vendor/libbase64/cmake/base64-config.cmake.in +5 -0
  17. data/vendor/libbase64/cmake/config.h.in +25 -0
  18. data/vendor/libbase64/cmake/test-arch.c +35 -0
  19. data/vendor/libbase64/include/libbase64.h +145 -0
  20. data/vendor/libbase64/lib/arch/avx/codec.c +42 -0
  21. data/vendor/libbase64/lib/arch/avx2/codec.c +42 -0
  22. data/vendor/libbase64/lib/arch/avx2/dec_loop.c +110 -0
  23. data/vendor/libbase64/lib/arch/avx2/dec_reshuffle.c +34 -0
  24. data/vendor/libbase64/lib/arch/avx2/enc_loop.c +89 -0
  25. data/vendor/libbase64/lib/arch/avx2/enc_reshuffle.c +83 -0
  26. data/vendor/libbase64/lib/arch/avx2/enc_translate.c +30 -0
  27. data/vendor/libbase64/lib/arch/generic/32/dec_loop.c +86 -0
  28. data/vendor/libbase64/lib/arch/generic/32/enc_loop.c +73 -0
  29. data/vendor/libbase64/lib/arch/generic/64/enc_loop.c +77 -0
  30. data/vendor/libbase64/lib/arch/generic/codec.c +39 -0
  31. data/vendor/libbase64/lib/arch/generic/dec_head.c +37 -0
  32. data/vendor/libbase64/lib/arch/generic/dec_tail.c +91 -0
  33. data/vendor/libbase64/lib/arch/generic/enc_head.c +24 -0
  34. data/vendor/libbase64/lib/arch/generic/enc_tail.c +34 -0
  35. data/vendor/libbase64/lib/arch/neon32/codec.c +72 -0
  36. data/vendor/libbase64/lib/arch/neon32/dec_loop.c +106 -0
  37. data/vendor/libbase64/lib/arch/neon32/enc_loop.c +58 -0
  38. data/vendor/libbase64/lib/arch/neon32/enc_reshuffle.c +54 -0
  39. data/vendor/libbase64/lib/arch/neon32/enc_translate.c +57 -0
  40. data/vendor/libbase64/lib/arch/neon64/codec.c +70 -0
  41. data/vendor/libbase64/lib/arch/neon64/dec_loop.c +129 -0
  42. data/vendor/libbase64/lib/arch/neon64/enc_loop.c +66 -0
  43. data/vendor/libbase64/lib/arch/neon64/enc_reshuffle.c +54 -0
  44. data/vendor/libbase64/lib/arch/sse41/codec.c +42 -0
  45. data/vendor/libbase64/lib/arch/sse42/codec.c +42 -0
  46. data/vendor/libbase64/lib/arch/ssse3/codec.c +42 -0
  47. data/vendor/libbase64/lib/arch/ssse3/dec_loop.c +173 -0
  48. data/vendor/libbase64/lib/arch/ssse3/dec_reshuffle.c +33 -0
  49. data/vendor/libbase64/lib/arch/ssse3/enc_loop.c +67 -0
  50. data/vendor/libbase64/lib/arch/ssse3/enc_reshuffle.c +48 -0
  51. data/vendor/libbase64/lib/arch/ssse3/enc_translate.c +33 -0
  52. data/vendor/libbase64/lib/codec_choose.c +281 -0
  53. data/vendor/libbase64/lib/codecs.h +65 -0
  54. data/vendor/libbase64/lib/env.h +67 -0
  55. data/vendor/libbase64/lib/exports.txt +7 -0
  56. data/vendor/libbase64/lib/lib.c +164 -0
  57. data/vendor/libbase64/lib/lib_openmp.c +149 -0
  58. data/vendor/libbase64/lib/tables/.gitignore +1 -0
  59. data/vendor/libbase64/lib/tables/Makefile +17 -0
  60. data/vendor/libbase64/lib/tables/table_dec_32bit.h +393 -0
  61. data/vendor/libbase64/lib/tables/table_enc_12bit.h +1031 -0
  62. data/vendor/libbase64/lib/tables/table_enc_12bit.py +45 -0
  63. data/vendor/libbase64/lib/tables/table_generator.c +184 -0
  64. data/vendor/libbase64/lib/tables/tables.c +40 -0
  65. data/vendor/libbase64/lib/tables/tables.h +23 -0
  66. metadata +64 -4
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/python3
2
+
3
+ def tr(x):
4
+ """Translate a 6-bit value to the Base64 alphabet."""
5
+ s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' \
6
+ + 'abcdefghijklmnopqrstuvwxyz' \
7
+ + '0123456789' \
8
+ + '+/'
9
+ return ord(s[x])
10
+
11
+ def table(fn):
12
+ """Generate a 12-bit lookup table."""
13
+ ret = []
14
+ for n in range(0, 2**12):
15
+ pre = "\n\t" if n % 8 == 0 else " "
16
+ pre = "\t" if n == 0 else pre
17
+ ret.append("{}0x{:04X}U,".format(pre, fn(n)))
18
+ return "".join(ret)
19
+
20
+ def table_be():
21
+ """Generate a 12-bit big-endian lookup table."""
22
+ return table(lambda n: (tr(n & 0x3F) << 0) | (tr(n >> 6) << 8))
23
+
24
+ def table_le():
25
+ """Generate a 12-bit little-endian lookup table."""
26
+ return table(lambda n: (tr(n >> 6) << 0) | (tr(n & 0x3F) << 8))
27
+
28
+ def main():
29
+ """Entry point."""
30
+ lines = [
31
+ "#include <stdint.h>",
32
+ "",
33
+ "const uint16_t base64_table_enc_12bit[] = {",
34
+ "#if BASE64_LITTLE_ENDIAN",
35
+ table_le(),
36
+ "#else",
37
+ table_be(),
38
+ "#endif",
39
+ "};"
40
+ ]
41
+ for line in lines:
42
+ print(line)
43
+
44
+ if __name__ == "__main__":
45
+ main()
@@ -0,0 +1,184 @@
1
+ /**
2
+ *
3
+ * Copyright 2005, 2006 Nick Galbreath -- nickg [at] modp [dot] com
4
+ * Copyright 2017 Matthieu Darbois
5
+ * All rights reserved.
6
+ *
7
+ * http://modp.com/release/base64
8
+ *
9
+ * Redistribution and use in source and binary forms, with or without
10
+ * modification, are permitted provided that the following conditions are
11
+ * met:
12
+ *
13
+ * - Redistributions of source code must retain the above copyright notice,
14
+ * this list of conditions and the following disclaimer.
15
+ *
16
+ * - Redistributions in binary form must reproduce the above copyright
17
+ * notice, this list of conditions and the following disclaimer in the
18
+ * documentation and/or other materials provided with the distribution.
19
+ *
20
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
26
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ *
32
+ */
33
+
34
+ /****************************/
35
+
36
+ #include <stdint.h>
37
+ #include <stdio.h>
38
+ #include <stdlib.h>
39
+ #include <string.h>
40
+ #include <inttypes.h>
41
+
42
+ static uint8_t b64chars[64] = {
43
+ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
44
+ 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
45
+ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
46
+ 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
47
+ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
48
+ };
49
+
50
+ static uint8_t padchar = '=';
51
+
52
+ static void printStart(void)
53
+ {
54
+ printf("#include <stdint.h>\n");
55
+ printf("#define CHAR62 '%c'\n", b64chars[62]);
56
+ printf("#define CHAR63 '%c'\n", b64chars[63]);
57
+ printf("#define CHARPAD '%c'\n", padchar);
58
+ }
59
+
60
+ static void clearDecodeTable(uint32_t* ary)
61
+ {
62
+ int i = 0;
63
+ for (i = 0; i < 256; ++i) {
64
+ ary[i] = 0xFFFFFFFF;
65
+ }
66
+ }
67
+
68
+ /* dump uint32_t as hex digits */
69
+ void uint32_array_to_c_hex(const uint32_t* ary, size_t sz, const char* name)
70
+ {
71
+ size_t i = 0;
72
+
73
+ printf("const uint32_t %s[%d] = {\n", name, (int)sz);
74
+ for (;;) {
75
+ printf("0x%08" PRIx32, ary[i]);
76
+ ++i;
77
+ if (i == sz)
78
+ break;
79
+ if (i % 6 == 0) {
80
+ printf(",\n");
81
+ } else {
82
+ printf(", ");
83
+ }
84
+ }
85
+ printf("\n};\n");
86
+ }
87
+
88
+ int main(int argc, char** argv)
89
+ {
90
+ uint32_t x;
91
+ uint32_t i = 0;
92
+ uint32_t ary[256];
93
+
94
+ /* over-ride standard alphabet */
95
+ if (argc == 2) {
96
+ uint8_t* replacements = (uint8_t*)argv[1];
97
+ if (strlen((char*)replacements) != 3) {
98
+ fprintf(stderr, "input must be a string of 3 characters '-', '.' or '_'\n");
99
+ exit(1);
100
+ }
101
+ fprintf(stderr, "fusing '%s' as replacements in base64 encoding\n", replacements);
102
+ b64chars[62] = replacements[0];
103
+ b64chars[63] = replacements[1];
104
+ padchar = replacements[2];
105
+ }
106
+
107
+ printStart();
108
+
109
+ printf("\n\n#if BASE64_LITTLE_ENDIAN\n");
110
+
111
+ printf("\n\n/* SPECIAL DECODE TABLES FOR LITTLE ENDIAN (INTEL) CPUS */\n\n");
112
+
113
+ clearDecodeTable(ary);
114
+ for (i = 0; i < 64; ++i) {
115
+ x = b64chars[i];
116
+ ary[x] = i << 2;
117
+ }
118
+ uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d0");
119
+ printf("\n\n");
120
+
121
+ clearDecodeTable(ary);
122
+ for (i = 0; i < 64; ++i) {
123
+ x = b64chars[i];
124
+ ary[x] = ((i & 0x30) >> 4) | ((i & 0x0F) << 12);
125
+ }
126
+ uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d1");
127
+ printf("\n\n");
128
+
129
+ clearDecodeTable(ary);
130
+ for (i = 0; i < 64; ++i) {
131
+ x = b64chars[i];
132
+ ary[x] = ((i & 0x03) << 22) | ((i & 0x3c) << 6);
133
+ }
134
+ uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d2");
135
+ printf("\n\n");
136
+
137
+ clearDecodeTable(ary);
138
+ for (i = 0; i < 64; ++i) {
139
+ x = b64chars[i];
140
+ ary[x] = i << 16;
141
+ }
142
+ uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d3");
143
+ printf("\n\n");
144
+
145
+ printf("#else\n");
146
+
147
+ printf("\n\n/* SPECIAL DECODE TABLES FOR BIG ENDIAN (IBM/MOTOROLA/SUN) CPUS */\n\n");
148
+
149
+ clearDecodeTable(ary);
150
+ for (i = 0; i < 64; ++i) {
151
+ x = b64chars[i];
152
+ ary[x] = i << 26;
153
+ }
154
+ uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d0");
155
+ printf("\n\n");
156
+
157
+ clearDecodeTable(ary);
158
+ for (i = 0; i < 64; ++i) {
159
+ x = b64chars[i];
160
+ ary[x] = i << 20;
161
+ }
162
+ uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d1");
163
+ printf("\n\n");
164
+
165
+ clearDecodeTable(ary);
166
+ for (i = 0; i < 64; ++i) {
167
+ x = b64chars[i];
168
+ ary[x] = i << 14;
169
+ }
170
+ uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d2");
171
+ printf("\n\n");
172
+
173
+ clearDecodeTable(ary);
174
+ for (i = 0; i < 64; ++i) {
175
+ x = b64chars[i];
176
+ ary[x] = i << 8;
177
+ }
178
+ uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d3");
179
+ printf("\n\n");
180
+
181
+ printf("#endif\n");
182
+
183
+ return 0;
184
+ }
@@ -0,0 +1,40 @@
1
+ #include "tables.h"
2
+
3
+ const uint8_t
4
+ base64_table_enc_6bit[] =
5
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
6
+ "abcdefghijklmnopqrstuvwxyz"
7
+ "0123456789"
8
+ "+/";
9
+
10
+ // In the lookup table below, note that the value for '=' (character 61) is
11
+ // 254, not 255. This character is used for in-band signaling of the end of
12
+ // the datastream, and we will use that later. The characters A-Z, a-z, 0-9
13
+ // and + / are mapped to their "decoded" values. The other bytes all map to
14
+ // the value 255, which flags them as "invalid input".
15
+
16
+ const uint8_t
17
+ base64_table_dec_8bit[] =
18
+ {
19
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, // 0..15
20
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, // 16..31
21
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62, 255, 255, 255, 63, // 32..47
22
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 255, 255, 255, 254, 255, 255, // 48..63
23
+ 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, // 64..79
24
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255, // 80..95
25
+ 255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, // 96..111
26
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 255, 255, 255, 255, 255, // 112..127
27
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, // 128..143
28
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
29
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
30
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
31
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
32
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
33
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
34
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
35
+ };
36
+
37
+ #if BASE64_WORDSIZE >= 32
38
+ # include "table_dec_32bit.h"
39
+ # include "table_enc_12bit.h"
40
+ #endif
@@ -0,0 +1,23 @@
1
+ #ifndef BASE64_TABLES_H
2
+ #define BASE64_TABLES_H
3
+
4
+ #include <stdint.h>
5
+
6
+ #include "../env.h"
7
+
8
+ // These tables are used by all codecs for fallback plain encoding/decoding:
9
+ extern const uint8_t base64_table_enc_6bit[];
10
+ extern const uint8_t base64_table_dec_8bit[];
11
+
12
+ // These tables are used for the 32-bit and 64-bit generic decoders:
13
+ #if BASE64_WORDSIZE >= 32
14
+ extern const uint32_t base64_table_dec_32bit_d0[];
15
+ extern const uint32_t base64_table_dec_32bit_d1[];
16
+ extern const uint32_t base64_table_dec_32bit_d2[];
17
+ extern const uint32_t base64_table_dec_32bit_d3[];
18
+
19
+ // This table is used by the 32 and 64-bit generic encoders:
20
+ extern const uint16_t base64_table_enc_12bit[];
21
+ #endif
22
+
23
+ #endif // BASE64_TABLES_H
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ob64
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - João Fernandes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-28 00:00:00.000000000 Z
11
+ date: 2021-09-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A fast Base64 encoder and decoder that makes use of SIMD extensions.
14
14
  email:
@@ -46,14 +46,74 @@ files:
46
46
  - lib/ob64/core_ext.rb
47
47
  - lib/ob64/version.rb
48
48
  - ob64.gemspec
49
+ - vendor/libbase64/.gitignore
50
+ - vendor/libbase64/.travis.yml
51
+ - vendor/libbase64/CMakeLists.txt
52
+ - vendor/libbase64/LICENSE
53
+ - vendor/libbase64/Makefile
54
+ - vendor/libbase64/README.md
55
+ - vendor/libbase64/base64-benchmarks.png
56
+ - vendor/libbase64/bin/base64.c
57
+ - vendor/libbase64/cmake/Modules/TargetArch.cmake
58
+ - vendor/libbase64/cmake/Modules/TargetSIMDInstructionSet.cmake
59
+ - vendor/libbase64/cmake/base64-config.cmake.in
60
+ - vendor/libbase64/cmake/config.h.in
61
+ - vendor/libbase64/cmake/test-arch.c
62
+ - vendor/libbase64/include/libbase64.h
63
+ - vendor/libbase64/lib/arch/avx/codec.c
64
+ - vendor/libbase64/lib/arch/avx2/codec.c
65
+ - vendor/libbase64/lib/arch/avx2/dec_loop.c
66
+ - vendor/libbase64/lib/arch/avx2/dec_reshuffle.c
67
+ - vendor/libbase64/lib/arch/avx2/enc_loop.c
68
+ - vendor/libbase64/lib/arch/avx2/enc_reshuffle.c
69
+ - vendor/libbase64/lib/arch/avx2/enc_translate.c
70
+ - vendor/libbase64/lib/arch/generic/32/dec_loop.c
71
+ - vendor/libbase64/lib/arch/generic/32/enc_loop.c
72
+ - vendor/libbase64/lib/arch/generic/64/enc_loop.c
73
+ - vendor/libbase64/lib/arch/generic/codec.c
74
+ - vendor/libbase64/lib/arch/generic/dec_head.c
75
+ - vendor/libbase64/lib/arch/generic/dec_tail.c
76
+ - vendor/libbase64/lib/arch/generic/enc_head.c
77
+ - vendor/libbase64/lib/arch/generic/enc_tail.c
78
+ - vendor/libbase64/lib/arch/neon32/codec.c
79
+ - vendor/libbase64/lib/arch/neon32/dec_loop.c
80
+ - vendor/libbase64/lib/arch/neon32/enc_loop.c
81
+ - vendor/libbase64/lib/arch/neon32/enc_reshuffle.c
82
+ - vendor/libbase64/lib/arch/neon32/enc_translate.c
83
+ - vendor/libbase64/lib/arch/neon64/codec.c
84
+ - vendor/libbase64/lib/arch/neon64/dec_loop.c
85
+ - vendor/libbase64/lib/arch/neon64/enc_loop.c
86
+ - vendor/libbase64/lib/arch/neon64/enc_reshuffle.c
87
+ - vendor/libbase64/lib/arch/sse41/codec.c
88
+ - vendor/libbase64/lib/arch/sse42/codec.c
89
+ - vendor/libbase64/lib/arch/ssse3/codec.c
90
+ - vendor/libbase64/lib/arch/ssse3/dec_loop.c
91
+ - vendor/libbase64/lib/arch/ssse3/dec_reshuffle.c
92
+ - vendor/libbase64/lib/arch/ssse3/enc_loop.c
93
+ - vendor/libbase64/lib/arch/ssse3/enc_reshuffle.c
94
+ - vendor/libbase64/lib/arch/ssse3/enc_translate.c
95
+ - vendor/libbase64/lib/codec_choose.c
96
+ - vendor/libbase64/lib/codecs.h
97
+ - vendor/libbase64/lib/env.h
98
+ - vendor/libbase64/lib/exports.txt
99
+ - vendor/libbase64/lib/lib.c
100
+ - vendor/libbase64/lib/lib_openmp.c
101
+ - vendor/libbase64/lib/tables/.gitignore
102
+ - vendor/libbase64/lib/tables/Makefile
103
+ - vendor/libbase64/lib/tables/table_dec_32bit.h
104
+ - vendor/libbase64/lib/tables/table_enc_12bit.h
105
+ - vendor/libbase64/lib/tables/table_enc_12bit.py
106
+ - vendor/libbase64/lib/tables/table_generator.c
107
+ - vendor/libbase64/lib/tables/tables.c
108
+ - vendor/libbase64/lib/tables/tables.h
49
109
  homepage: https://github.com/jcmfernandes/ob64
50
110
  licenses:
51
111
  - MIT
52
112
  metadata:
53
113
  homepage_uri: https://github.com/jcmfernandes/ob64
54
114
  changelog_uri: https://github.com/jcmfernandes/ob64/blob/master/CHANGELOG.md
55
- documentation_uri: https://www.rubydoc.info/gems/ob64/0.4.0
56
- source_code_uri: https://github.com/jcmfernandes/ob64/tree/v0.4.0
115
+ documentation_uri: https://www.rubydoc.info/gems/ob64/0.5.0
116
+ source_code_uri: https://github.com/jcmfernandes/ob64/tree/v0.5.0
57
117
  post_install_message:
58
118
  rdoc_options: []
59
119
  require_paths: