/* * Copyright (C) 2013 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. */ #pragma once #include "CryptoAlgorithmIdentifier.h" #include "CryptoKeyFormat.h" #include "CryptoKeyPair.h" #include "CryptoKeyUsage.h" #include "ExceptionOr.h" #include "JsonWebKey.h" #include #include #include #include #include #if ENABLE(WEB_CRYPTO) namespace WebCore { class CryptoAlgorithmParameters; class CryptoKey; class ScriptExecutionContext; using KeyData = std::variant, JsonWebKey>; using KeyOrKeyPair = std::variant, CryptoKeyPair>; class CryptoAlgorithm : public ThreadSafeRefCounted { public: virtual ~CryptoAlgorithm() = default; virtual CryptoAlgorithmIdentifier identifier() const = 0; using BoolCallback = Function; using KeyCallback = Function; using KeyOrKeyPairCallback = Function; // FIXME: https://bugs.webkit.org/show_bug.cgi?id=169395 using VectorCallback = Function&)>; using VoidCallback = Function; using ExceptionCallback = Function; using KeyDataCallback = Function; virtual void encrypt(const CryptoAlgorithmParameters&, Ref&&, Vector&&, VectorCallback&&, ExceptionCallback&&, ScriptExecutionContext&, WorkQueue&); virtual void decrypt(const CryptoAlgorithmParameters&, Ref&&, Vector&&, VectorCallback&&, ExceptionCallback&&, ScriptExecutionContext&, WorkQueue&); virtual void sign(const CryptoAlgorithmParameters&, Ref&&, Vector&&, VectorCallback&&, ExceptionCallback&&, ScriptExecutionContext&, WorkQueue&); virtual void verify(const CryptoAlgorithmParameters&, Ref&&, Vector&& signature, Vector&&, BoolCallback&&, ExceptionCallback&&, ScriptExecutionContext&, WorkQueue&); virtual void digest(Vector&&, VectorCallback&&, ExceptionCallback&&, ScriptExecutionContext&, WorkQueue&); virtual void generateKey(const CryptoAlgorithmParameters&, bool extractable, CryptoKeyUsageBitmap, KeyOrKeyPairCallback&&, ExceptionCallback&&, ScriptExecutionContext&); virtual void deriveBits(const CryptoAlgorithmParameters&, Ref&&, size_t length, VectorCallback&&, ExceptionCallback&&, ScriptExecutionContext&, WorkQueue&); // FIXME: https://bugs.webkit.org/show_bug.cgi?id=169262 virtual void importKey(CryptoKeyFormat, KeyData&&, const CryptoAlgorithmParameters&, bool extractable, CryptoKeyUsageBitmap, KeyCallback&&, ExceptionCallback&&); virtual void exportKey(CryptoKeyFormat, Ref&&, KeyDataCallback&&, ExceptionCallback&&); virtual void wrapKey(Ref&&, Vector&&, VectorCallback&&, ExceptionCallback&&); virtual void unwrapKey(Ref&&, Vector&&, VectorCallback&&, ExceptionCallback&&); virtual ExceptionOr getKeyLength(const CryptoAlgorithmParameters&); static void dispatchOperationInWorkQueue(WorkQueue&, ScriptExecutionContext&, VectorCallback&&, ExceptionCallback&&, Function>()>&&); static void dispatchOperationInWorkQueue(WorkQueue&, ScriptExecutionContext&, BoolCallback&&, ExceptionCallback&&, Function()>&&); }; } // namespace WebCore #endif // ENABLE(WEB_CRYPTO) alue='eventstream'>eventstream Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)AuthorFilesLines
2021-10-05analytics is good enough for nowGravatar Jarred Sumner 14-145/+440
2021-10-05Async analytics works nowGravatar Jarred Sumner 5-25/+51
2021-10-05[fetch] Fix bug with HTTP request bodiesGravatar Jarred Sumner 1-5/+13
2021-10-05Add `BUN_DISABLE_ANALYTICS` flag to disable analytics and automatically disab...Gravatar Jarred Sumner 6-1896/+2048
2021-10-05Simple analyticsGravatar Jarred Sumner 8-1/+1070
2021-10-04Statically link libicu on Linux so it doesn't require installing icu separately.Gravatar Jarred SUmner 2-2/+7
2021-10-04memfd experiment did not yield perf gains on Linuxjarred/fix-bunbun-on-wslGravatar Jarred SUmner 2-5/+4
2021-10-04Don't pass O_EXCLGravatar Jarred Sumner 1-2/+2
2021-10-04O_TMPFILEGravatar Jarred Sumner 1-4/+2
2021-10-04memfd_create does not actually make it fasterGravatar Jarred Sumner 2-31/+8
2021-10-04Attempt to optimize `bun bun` on Linux by using memfd_create and copying the ...Gravatar Jarred Sumner 3-18/+135
2021-10-04Fix moving files across mount pointsGravatar Jarred Sumner 2-1/+29
2021-10-04BumpGravatar Jarred Sumner 3-3/+3
2021-10-04Bumpbun-v0.0.31Gravatar Jarred Sumner 3-3/+3
2021-10-04Bumpbun-v0.0.30bun-v0.0.29Gravatar Jarred Sumner 1-1/+1
2021-10-04Improve Bun's performance by 5%Gravatar Jarred Sumner 7-58/+46
2021-10-03Use covid19 exampleGravatar Jarred SUmner 1-2/+2
2021-10-03BumpGravatar Jarred SUmner 2-1/+1
2021-10-03Update MakefileGravatar Jarred Sumner 1-6/+8
2021-10-03Update MakefileGravatar Jarred Sumner 1-0/+2
2021-10-03Update MakefileGravatar Jarred Sumner 1-2/+2
2021-10-03Update MakefileGravatar Jarred Sumner 1-8/+13
2021-10-03Update MakefileGravatar Jarred Sumner 1-5/+5
2021-10-03Update MakefileGravatar Jarred Sumner 1-2/+4
2021-10-03Fix tmpdir on linuxGravatar Jarred Sumner 1-8/+10
2021-10-03Update linux build instructionsGravatar Jarred Sumner 30-113/+180
2021-10-03Create separate profile binary and strip debug symbolsbun-v0.0.28Gravatar Jarred Sumner 5-1/+21
2021-10-03llvm-stripGravatar Jarred Sumner 1-1/+7
2021-10-03Fix makefile issueGravatar Jarred Sumner 1-4/+7
2021-10-03Fix various macOS-specific compile errors and run `zig fmt`Gravatar Jarred Sumner 13-2118/+3310
2021-10-031% perf improvements on Linuxjarred/linuxGravatar Jarred SUmner 28-118/+170
2021-10-03Add Three.js benchmarkGravatar Jarred SUmner 5-14/+33
2021-10-02Linux works now.Gravatar Jarred SUmner 21-100/+320
2021-10-01Add support for INotify-based filesystem watcherGravatar Jarred Sumner 6-93/+287
2021-10-01Build stuffGravatar Jarred SUmner 9-1371/+71
2021-10-01Bump webkitGravatar Jarred Sumner 1-0/+0
2021-10-01Split out the macOS specific partsGravatar Jarred Sumner 4-207/+238
2021-09-30Update README.mdGravatar Jarred Sumner 1-1/+1
2021-09-30Update README.mdGravatar Jarred Sumner 1-1/+1
2021-09-30Update README.mdGravatar Jarred Sumner 1-1/+1
2021-09-30Update README.mdGravatar Jarred Sumner 1-5/+5
2021-09-30Fix up readmeGravatar Jarred Sumner 2-9/+24
2021-09-30Bump versionGravatar Jarred Sumner 3-3/+3
2021-09-30Add a readmeGravatar Jarred Sumner 3-3/+119
2021-09-30Bump build-idbun-v0.0.27jarred/relayGravatar Jarred Sumner 1-1/+1
2021-09-30runtime.versionGravatar Jarred Sumner 1-1/+1
2021-09-30SnapshotsGravatar Jarred Sumner 9-36/+63