CryptoBindings.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Copyright (c) 2023, stelar7 <dudedbz@gmail.com>
  3. * Copyright (c) 2024, Andrew Kaster <akaster@serenityos.org>
  4. *
  5. * SPDX-License-Identifier: BSD-2-Clause
  6. */
  7. #pragma once
  8. #include <AK/Optional.h>
  9. #include <AK/String.h>
  10. #include <AK/Vector.h>
  11. #include <LibCrypto/BigInt/UnsignedBigInteger.h>
  12. // FIXME: Generate these from IDL
  13. namespace Web::Bindings {
  14. // https://w3c.github.io/webcrypto/#JsonWebKey-dictionary
  15. struct RsaOtherPrimesInfo {
  16. Optional<String> r;
  17. Optional<String> d;
  18. Optional<String> t;
  19. };
  20. // https://w3c.github.io/webcrypto/#JsonWebKey-dictionary
  21. struct JsonWebKey {
  22. Optional<String> kty;
  23. Optional<String> use;
  24. Optional<Vector<String>> key_ops;
  25. Optional<String> alg;
  26. Optional<bool> ext;
  27. Optional<String> crv;
  28. Optional<String> x;
  29. Optional<String> y;
  30. Optional<String> d;
  31. Optional<String> n;
  32. Optional<String> e;
  33. Optional<String> p;
  34. Optional<String> q;
  35. Optional<String> dp;
  36. Optional<String> dq;
  37. Optional<String> qi;
  38. Optional<Vector<RsaOtherPrimesInfo>> oth;
  39. Optional<String> k;
  40. JS::ThrowCompletionOr<JS::NonnullGCPtr<JS::Object>> to_object(JS::Realm&);
  41. };
  42. }