aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-07-16 22:42:19 -0700
committerGravatar GitHub <noreply@github.com> 2023-07-16 22:42:19 -0700
commit7917ebd58f852685f5b8abc50541747bfbb2ee13 (patch)
tree8b07c61945b428583e8f2cdd9d59d3399811e8e4 /src
parenta86d00c6728f0fdab2f9302c3e02bc712df4ba0c (diff)
downloadbun-7917ebd58f852685f5b8abc50541747bfbb2ee13.tar.gz
bun-7917ebd58f852685f5b8abc50541747bfbb2ee13.tar.zst
bun-7917ebd58f852685f5b8abc50541747bfbb2ee13.zip
Fixes base64url encoding for crypto (#3654)
* Fixes base64url encoding for crypto * :green_apple: * Update nodejs-apis.md --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/bun.js/node/types.zig17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig
index e035c01a6..0b19c7fcc 100644
--- a/src/bun.js/node/types.zig
+++ b/src/bun.js/node/types.zig
@@ -528,12 +528,10 @@ pub const Encoding = enum(u8) {
return JSC.ZigString.init(base64[0..len]).toValueGC(globalThis);
},
.base64url => {
- var buf: [std.base64.url_safe.Encoder.calcSize(size) + "data:;base64,".len]u8 = undefined;
- var encoded = std.base64.url_safe.Encoder.encode(buf["data:;base64,".len..], input);
- buf[0.."data:;base64,".len].* = "data:;base64,".*;
+ var buf: [std.base64.url_safe_no_pad.Encoder.calcSize(size)]u8 = undefined;
+ var encoded = std.base64.url_safe_no_pad.Encoder.encode(&buf, input);
- const result = JSC.ZigString.init(buf[0 .. "data:;base64,".len + encoded.len]).toValueGC(globalThis);
- return result;
+ return JSC.ZigString.init(buf[0..encoded.len]).toValueGC(globalThis);
},
.hex => {
var buf: [size * 4]u8 = undefined;
@@ -566,13 +564,10 @@ pub const Encoding = enum(u8) {
return result;
},
.base64url => {
- var buf_: [std.base64.url_safe.Encoder.calcSize(max_size) + "data:;base64,".len]u8 = undefined;
- var buf = buf_[0 .. std.base64.url_safe.Encoder.calcSize(size) + "data:;base64,".len];
- var encoded = std.base64.url_safe.Encoder.encode(buf["data:;base64,".len..], input);
- buf[0.."data:;base64,".len].* = "data:;base64,".*;
+ var buf: [std.base64.url_safe_no_pad.Encoder.calcSize(max_size)]u8 = undefined;
+ var encoded = std.base64.url_safe_no_pad.Encoder.encode(&buf, input);
- const result = JSC.ZigString.init(buf[0 .. "data:;base64,".len + encoded.len]).toValueGC(globalThis);
- return result;
+ return JSC.ZigString.init(buf[0..encoded.len]).toValueGC(globalThis);
},
.hex => {
var buf: [max_size * 4]u8 = undefined;