pub(crate) trait SubtleCryptoMethods<D: DomTypes> {
// Required methods
fn Encrypt(
&self,
cx: SafeJSContext,
algorithm: ObjectOrString,
key: &D::CryptoKey,
data: ArrayBufferViewOrArrayBuffer,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
fn Decrypt(
&self,
cx: SafeJSContext,
algorithm: ObjectOrString,
key: &D::CryptoKey,
data: ArrayBufferViewOrArrayBuffer,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
fn Sign(
&self,
cx: SafeJSContext,
algorithm: ObjectOrString,
key: &D::CryptoKey,
data: ArrayBufferViewOrArrayBuffer,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
fn Verify(
&self,
cx: SafeJSContext,
algorithm: ObjectOrString,
key: &D::CryptoKey,
signature: ArrayBufferViewOrArrayBuffer,
data: ArrayBufferViewOrArrayBuffer,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
fn Digest(
&self,
cx: SafeJSContext,
algorithm: ObjectOrString,
data: ArrayBufferViewOrArrayBuffer,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
fn GenerateKey(
&self,
cx: SafeJSContext,
algorithm: ObjectOrString,
extractable: bool,
keyUsages: Vec<KeyUsage>,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
fn DeriveKey(
&self,
cx: SafeJSContext,
algorithm: ObjectOrString,
baseKey: &D::CryptoKey,
derivedKeyType: ObjectOrString,
extractable: bool,
keyUsages: Vec<KeyUsage>,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
fn DeriveBits(
&self,
cx: SafeJSContext,
algorithm: ObjectOrString,
baseKey: &D::CryptoKey,
length: Option<u32>,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
fn ImportKey(
&self,
cx: SafeJSContext,
format: KeyFormat,
keyData: ArrayBufferViewOrArrayBufferOrJsonWebKey,
algorithm: ObjectOrString,
extractable: bool,
keyUsages: Vec<KeyUsage>,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
fn ExportKey(
&self,
format: KeyFormat,
key: &D::CryptoKey,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
fn WrapKey(
&self,
cx: SafeJSContext,
format: KeyFormat,
key: &D::CryptoKey,
wrappingKey: &D::CryptoKey,
wrapAlgorithm: ObjectOrString,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
fn UnwrapKey(
&self,
cx: SafeJSContext,
format: KeyFormat,
wrappedKey: ArrayBufferViewOrArrayBuffer,
unwrappingKey: &D::CryptoKey,
unwrapAlgorithm: ObjectOrString,
unwrappedKeyAlgorithm: ObjectOrString,
extractable: bool,
keyUsages: Vec<KeyUsage>,
_comp: InRealm<'_>,
_can_gc: CanGc,
) -> Rc<D::Promise>;
}