mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-02-04 14:33:47 +00:00
fix rebase + migrate SubtleCrypto to new local
This commit is contained in:
@@ -314,10 +314,10 @@ pub const Entry = struct {
|
||||
|
||||
pub const Mark = struct {
|
||||
_proto: *Entry,
|
||||
_detail: ?js.Object.Global,
|
||||
_detail: ?js.Value.Global,
|
||||
|
||||
const Options = struct {
|
||||
detail: ?js.Object = null,
|
||||
detail: ?js.Value = null,
|
||||
startTime: ?f64 = null,
|
||||
};
|
||||
|
||||
@@ -362,10 +362,10 @@ pub const Mark = struct {
|
||||
|
||||
pub const Measure = struct {
|
||||
_proto: *Entry,
|
||||
_detail: ?js.Object.Global,
|
||||
_detail: ?js.Value.Global,
|
||||
|
||||
const Options = struct {
|
||||
detail: ?js.Object = null,
|
||||
detail: ?js.Value = null,
|
||||
start: ?TimestampOrMark,
|
||||
end: ?TimestampOrMark,
|
||||
duration: ?f64 = null,
|
||||
@@ -378,7 +378,7 @@ pub const Measure = struct {
|
||||
|
||||
pub fn init(
|
||||
name: []const u8,
|
||||
maybe_detail: ?js.Object,
|
||||
maybe_detail: ?js.Value,
|
||||
start_timestamp: f64,
|
||||
end_timestamp: f64,
|
||||
maybe_duration: ?f64,
|
||||
@@ -405,7 +405,7 @@ pub const Measure = struct {
|
||||
return m;
|
||||
}
|
||||
|
||||
pub fn getDetail(self: *const Measure) ?js.Object.Global {
|
||||
pub fn getDetail(self: *const Measure) ?js.Value.Global {
|
||||
return self._detail;
|
||||
}
|
||||
|
||||
|
||||
@@ -95,10 +95,10 @@ pub fn generateKey(
|
||||
page: *Page,
|
||||
) !js.Promise {
|
||||
const key_or_pair = CryptoKey.init(algorithm, extractable, key_usages, page) catch |err| {
|
||||
return page.js.rejectPromise(@errorName(err));
|
||||
return page.js.local.?.rejectPromise(@errorName(err));
|
||||
};
|
||||
|
||||
return page.js.resolvePromise(key_or_pair);
|
||||
return page.js.local.?.resolvePromise(key_or_pair);
|
||||
}
|
||||
|
||||
/// Exports a key: that is, it takes as input a CryptoKey object and gives you
|
||||
@@ -114,7 +114,7 @@ pub fn exportKey(
|
||||
}
|
||||
|
||||
if (std.mem.eql(u8, format, "raw")) {
|
||||
return page.js.resolvePromise(js.ArrayBuffer{ .values = key._key });
|
||||
return page.js.local.?.resolvePromise(js.ArrayBuffer{ .values = key._key });
|
||||
}
|
||||
|
||||
const is_unsupported = std.mem.eql(u8, format, "pkcs8") or
|
||||
@@ -124,7 +124,7 @@ pub fn exportKey(
|
||||
log.warn(.not_implemented, "SubtleCrypto.exportKey", .{ .format = format });
|
||||
}
|
||||
|
||||
return page.js.rejectPromise(@errorName(error.NotSupported));
|
||||
return page.js.local.?.rejectPromise(@errorName(error.NotSupported));
|
||||
}
|
||||
|
||||
/// Derive a secret key from a master key.
|
||||
@@ -139,14 +139,14 @@ pub fn deriveBits(
|
||||
.ecdh_or_x25519 => |p| {
|
||||
const name = p.name;
|
||||
if (std.mem.eql(u8, name, "X25519")) {
|
||||
return page.js.resolvePromise(base_key.deriveBitsX25519(p.public, length, page));
|
||||
return page.js.local.?.resolvePromise(base_key.deriveBitsX25519(p.public, length, page));
|
||||
}
|
||||
|
||||
if (std.mem.eql(u8, name, "ECDH")) {
|
||||
log.warn(.not_implemented, "SubtleCrypto.deriveBits", .{ .name = name });
|
||||
}
|
||||
|
||||
return page.js.rejectPromise(@errorName(error.NotSupported));
|
||||
return page.js.local.?.rejectPromise(@errorName(error.NotSupported));
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -183,19 +183,19 @@ pub fn sign(
|
||||
.hmac => {
|
||||
// Verify algorithm.
|
||||
if (!algorithm.isHMAC()) {
|
||||
return page.js.rejectPromise(@errorName(error.InvalidAccessError));
|
||||
return page.js.local.?.rejectPromise(@errorName(error.InvalidAccessError));
|
||||
}
|
||||
|
||||
// Call sign for HMAC.
|
||||
const result = key.signHMAC(data, page) catch |err| {
|
||||
return page.js.rejectPromise(@errorName(err));
|
||||
return page.js.local.?.rejectPromise(@errorName(err));
|
||||
};
|
||||
|
||||
return page.js.resolvePromise(result);
|
||||
return page.js.local.?.resolvePromise(result);
|
||||
},
|
||||
else => {
|
||||
log.warn(.not_implemented, "SubtleCrypto.sign", .{ .key_type = key._type });
|
||||
return page.js.rejectPromise(@errorName(error.InvalidAccessError));
|
||||
return page.js.local.?.rejectPromise(@errorName(error.InvalidAccessError));
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -453,10 +453,10 @@ pub const CryptoKey = struct {
|
||||
if (signed != null) {
|
||||
// CRYPTO_memcmp compare in constant time so prohibits time-based attacks.
|
||||
const res = crypto.CRYPTO_memcmp(signed, @ptrCast(signature.ptr), signature.len);
|
||||
return page.js.resolvePromise(res == 0);
|
||||
return page.js.local.?.resolvePromise(res == 0);
|
||||
}
|
||||
|
||||
return page.js.resolvePromise(false);
|
||||
return page.js.local.?.resolvePromise(false);
|
||||
}
|
||||
|
||||
// X25519.
|
||||
|
||||
Reference in New Issue
Block a user