mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-02-04 22:43:48 +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 {
|
pub const Mark = struct {
|
||||||
_proto: *Entry,
|
_proto: *Entry,
|
||||||
_detail: ?js.Object.Global,
|
_detail: ?js.Value.Global,
|
||||||
|
|
||||||
const Options = struct {
|
const Options = struct {
|
||||||
detail: ?js.Object = null,
|
detail: ?js.Value = null,
|
||||||
startTime: ?f64 = null,
|
startTime: ?f64 = null,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -362,10 +362,10 @@ pub const Mark = struct {
|
|||||||
|
|
||||||
pub const Measure = struct {
|
pub const Measure = struct {
|
||||||
_proto: *Entry,
|
_proto: *Entry,
|
||||||
_detail: ?js.Object.Global,
|
_detail: ?js.Value.Global,
|
||||||
|
|
||||||
const Options = struct {
|
const Options = struct {
|
||||||
detail: ?js.Object = null,
|
detail: ?js.Value = null,
|
||||||
start: ?TimestampOrMark,
|
start: ?TimestampOrMark,
|
||||||
end: ?TimestampOrMark,
|
end: ?TimestampOrMark,
|
||||||
duration: ?f64 = null,
|
duration: ?f64 = null,
|
||||||
@@ -378,7 +378,7 @@ pub const Measure = struct {
|
|||||||
|
|
||||||
pub fn init(
|
pub fn init(
|
||||||
name: []const u8,
|
name: []const u8,
|
||||||
maybe_detail: ?js.Object,
|
maybe_detail: ?js.Value,
|
||||||
start_timestamp: f64,
|
start_timestamp: f64,
|
||||||
end_timestamp: f64,
|
end_timestamp: f64,
|
||||||
maybe_duration: ?f64,
|
maybe_duration: ?f64,
|
||||||
@@ -405,7 +405,7 @@ pub const Measure = struct {
|
|||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn getDetail(self: *const Measure) ?js.Object.Global {
|
pub fn getDetail(self: *const Measure) ?js.Value.Global {
|
||||||
return self._detail;
|
return self._detail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -95,10 +95,10 @@ pub fn generateKey(
|
|||||||
page: *Page,
|
page: *Page,
|
||||||
) !js.Promise {
|
) !js.Promise {
|
||||||
const key_or_pair = CryptoKey.init(algorithm, extractable, key_usages, page) catch |err| {
|
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
|
/// 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")) {
|
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
|
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 });
|
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.
|
/// Derive a secret key from a master key.
|
||||||
@@ -139,14 +139,14 @@ pub fn deriveBits(
|
|||||||
.ecdh_or_x25519 => |p| {
|
.ecdh_or_x25519 => |p| {
|
||||||
const name = p.name;
|
const name = p.name;
|
||||||
if (std.mem.eql(u8, name, "X25519")) {
|
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")) {
|
if (std.mem.eql(u8, name, "ECDH")) {
|
||||||
log.warn(.not_implemented, "SubtleCrypto.deriveBits", .{ .name = name });
|
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 => {
|
.hmac => {
|
||||||
// Verify algorithm.
|
// Verify algorithm.
|
||||||
if (!algorithm.isHMAC()) {
|
if (!algorithm.isHMAC()) {
|
||||||
return page.js.rejectPromise(@errorName(error.InvalidAccessError));
|
return page.js.local.?.rejectPromise(@errorName(error.InvalidAccessError));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Call sign for HMAC.
|
// Call sign for HMAC.
|
||||||
const result = key.signHMAC(data, page) catch |err| {
|
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 => {
|
else => {
|
||||||
log.warn(.not_implemented, "SubtleCrypto.sign", .{ .key_type = key._type });
|
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) {
|
if (signed != null) {
|
||||||
// CRYPTO_memcmp compare in constant time so prohibits time-based attacks.
|
// CRYPTO_memcmp compare in constant time so prohibits time-based attacks.
|
||||||
const res = crypto.CRYPTO_memcmp(signed, @ptrCast(signature.ptr), signature.len);
|
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.
|
// X25519.
|
||||||
|
|||||||
Reference in New Issue
Block a user