@golocalinteractive/golocal-cloud-wrapper 1.0.54 → 1.0.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/golocal-cloud-wrapper.css +2 -1
- package/dist/golocal-cloud-wrapper.es.js +88 -17632
- package/dist/golocal-cloud-wrapper.es10.js +66 -0
- package/dist/golocal-cloud-wrapper.es100.js +4 -0
- package/dist/golocal-cloud-wrapper.es101.js +62 -0
- package/dist/golocal-cloud-wrapper.es102.js +77 -0
- package/dist/golocal-cloud-wrapper.es103.js +4 -0
- package/dist/golocal-cloud-wrapper.es104.js +41 -0
- package/dist/golocal-cloud-wrapper.es105.js +4 -0
- package/dist/golocal-cloud-wrapper.es106.js +106 -0
- package/dist/golocal-cloud-wrapper.es107.js +148 -0
- package/dist/golocal-cloud-wrapper.es108.js +28 -0
- package/dist/golocal-cloud-wrapper.es109.js +51 -0
- package/dist/golocal-cloud-wrapper.es11.js +233 -0
- package/dist/golocal-cloud-wrapper.es110.js +25 -0
- package/dist/golocal-cloud-wrapper.es111.js +30 -0
- package/dist/golocal-cloud-wrapper.es112.js +82 -0
- package/dist/golocal-cloud-wrapper.es113.js +125 -0
- package/dist/golocal-cloud-wrapper.es114.js +39 -0
- package/dist/golocal-cloud-wrapper.es115.js +38 -0
- package/dist/golocal-cloud-wrapper.es116.js +7 -0
- package/dist/golocal-cloud-wrapper.es117.js +4 -0
- package/dist/golocal-cloud-wrapper.es118.js +4 -0
- package/dist/golocal-cloud-wrapper.es119.js +4 -0
- package/dist/golocal-cloud-wrapper.es12.js +23 -0
- package/dist/golocal-cloud-wrapper.es120.js +208 -0
- package/dist/golocal-cloud-wrapper.es121.js +145 -0
- package/dist/golocal-cloud-wrapper.es122.js +58 -0
- package/dist/golocal-cloud-wrapper.es123.js +34 -0
- package/dist/golocal-cloud-wrapper.es124.js +4 -0
- package/dist/golocal-cloud-wrapper.es125.js +39 -0
- package/dist/golocal-cloud-wrapper.es126.js +4 -0
- package/dist/golocal-cloud-wrapper.es127.js +4 -0
- package/dist/golocal-cloud-wrapper.es128.js +224 -0
- package/dist/golocal-cloud-wrapper.es129.js +4 -0
- package/dist/golocal-cloud-wrapper.es13.js +24 -0
- package/dist/golocal-cloud-wrapper.es130.js +4 -0
- package/dist/golocal-cloud-wrapper.es131.js +35 -0
- package/dist/golocal-cloud-wrapper.es132.js +4 -0
- package/dist/golocal-cloud-wrapper.es133.js +23 -0
- package/dist/golocal-cloud-wrapper.es134.js +123 -0
- package/dist/golocal-cloud-wrapper.es135.js +469 -0
- package/dist/golocal-cloud-wrapper.es136.js +46 -0
- package/dist/golocal-cloud-wrapper.es137.js +71 -0
- package/dist/golocal-cloud-wrapper.es138.js +66 -0
- package/dist/golocal-cloud-wrapper.es139.js +4 -0
- package/dist/golocal-cloud-wrapper.es14.js +115 -0
- package/dist/golocal-cloud-wrapper.es140.js +27 -0
- package/dist/golocal-cloud-wrapper.es141.js +66 -0
- package/dist/golocal-cloud-wrapper.es142.js +27 -0
- package/dist/golocal-cloud-wrapper.es143.js +5 -0
- package/dist/golocal-cloud-wrapper.es144.js +650 -0
- package/dist/golocal-cloud-wrapper.es145.js +301 -0
- package/dist/golocal-cloud-wrapper.es146.js +90 -0
- package/dist/golocal-cloud-wrapper.es147.js +83 -0
- package/dist/golocal-cloud-wrapper.es148.js +65 -0
- package/dist/golocal-cloud-wrapper.es149.js +1230 -0
- package/dist/golocal-cloud-wrapper.es15.js +641 -0
- package/dist/golocal-cloud-wrapper.es150.js +8 -0
- package/dist/golocal-cloud-wrapper.es151.js +15 -0
- package/dist/golocal-cloud-wrapper.es152.js +139 -0
- package/dist/golocal-cloud-wrapper.es153.js +23 -0
- package/dist/golocal-cloud-wrapper.es154.js +132 -0
- package/dist/golocal-cloud-wrapper.es155.js +19 -0
- package/dist/golocal-cloud-wrapper.es156.js +37 -0
- package/dist/golocal-cloud-wrapper.es157.js +49 -0
- package/dist/golocal-cloud-wrapper.es158.js +10 -0
- package/dist/golocal-cloud-wrapper.es159.js +5 -0
- package/dist/golocal-cloud-wrapper.es16.js +17 -0
- package/dist/golocal-cloud-wrapper.es160.js +35 -0
- package/dist/golocal-cloud-wrapper.es161.js +174 -0
- package/dist/golocal-cloud-wrapper.es162.js +21 -0
- package/dist/golocal-cloud-wrapper.es163.js +4 -0
- package/dist/golocal-cloud-wrapper.es164.js +330 -0
- package/dist/golocal-cloud-wrapper.es165.js +4 -0
- package/dist/golocal-cloud-wrapper.es166.js +34 -0
- package/dist/golocal-cloud-wrapper.es167.js +40 -0
- package/dist/golocal-cloud-wrapper.es168.js +30 -0
- package/dist/golocal-cloud-wrapper.es169.js +62 -0
- package/dist/golocal-cloud-wrapper.es17.js +26 -0
- package/dist/golocal-cloud-wrapper.es170.js +4 -0
- package/dist/golocal-cloud-wrapper.es171.js +340 -0
- package/dist/golocal-cloud-wrapper.es172.js +4 -0
- package/dist/golocal-cloud-wrapper.es173.js +4 -0
- package/dist/golocal-cloud-wrapper.es174.js +4 -0
- package/dist/golocal-cloud-wrapper.es175.js +4 -0
- package/dist/golocal-cloud-wrapper.es176.js +4 -0
- package/dist/golocal-cloud-wrapper.es177.js +24 -0
- package/dist/golocal-cloud-wrapper.es178.js +4 -0
- package/dist/golocal-cloud-wrapper.es179.js +24 -0
- package/dist/golocal-cloud-wrapper.es18.js +5 -0
- package/dist/golocal-cloud-wrapper.es180.js +98 -0
- package/dist/golocal-cloud-wrapper.es181.js +4 -0
- package/dist/golocal-cloud-wrapper.es182.js +46 -0
- package/dist/golocal-cloud-wrapper.es183.js +35 -0
- package/dist/golocal-cloud-wrapper.es184.js +61 -0
- package/dist/golocal-cloud-wrapper.es185.js +4 -0
- package/dist/golocal-cloud-wrapper.es186.js +4 -0
- package/dist/golocal-cloud-wrapper.es187.js +4 -0
- package/dist/golocal-cloud-wrapper.es188.js +23 -0
- package/dist/golocal-cloud-wrapper.es189.js +4 -0
- package/dist/golocal-cloud-wrapper.es19.js +110 -0
- package/dist/golocal-cloud-wrapper.es190.js +4 -0
- package/dist/golocal-cloud-wrapper.es191.js +720 -0
- package/dist/golocal-cloud-wrapper.es192.js +153 -0
- package/dist/golocal-cloud-wrapper.es193.js +166 -0
- package/dist/golocal-cloud-wrapper.es194.js +49 -0
- package/dist/golocal-cloud-wrapper.es195.js +71 -0
- package/dist/golocal-cloud-wrapper.es196.js +25 -0
- package/dist/golocal-cloud-wrapper.es197.js +5 -0
- package/dist/golocal-cloud-wrapper.es198.js +118 -0
- package/dist/golocal-cloud-wrapper.es199.js +16 -0
- package/dist/golocal-cloud-wrapper.es20.js +12 -0
- package/dist/golocal-cloud-wrapper.es200.js +4 -0
- package/dist/golocal-cloud-wrapper.es201.js +429 -0
- package/dist/golocal-cloud-wrapper.es202.js +335 -0
- package/dist/golocal-cloud-wrapper.es203.js +235 -0
- package/dist/golocal-cloud-wrapper.es204.js +38 -0
- package/dist/golocal-cloud-wrapper.es205.js +88 -0
- package/dist/golocal-cloud-wrapper.es206.js +47 -0
- package/dist/golocal-cloud-wrapper.es207.js +13 -0
- package/dist/golocal-cloud-wrapper.es208.js +19 -0
- package/dist/golocal-cloud-wrapper.es209.js +102 -0
- package/dist/golocal-cloud-wrapper.es21.js +185 -0
- package/dist/golocal-cloud-wrapper.es210.js +4 -0
- package/dist/golocal-cloud-wrapper.es211.js +4 -0
- package/dist/golocal-cloud-wrapper.es212.js +24 -0
- package/dist/golocal-cloud-wrapper.es213.js +30 -0
- package/dist/golocal-cloud-wrapper.es214.js +30 -0
- package/dist/golocal-cloud-wrapper.es215.js +34 -0
- package/dist/golocal-cloud-wrapper.es216.js +4 -0
- package/dist/golocal-cloud-wrapper.es217.js +4 -0
- package/dist/golocal-cloud-wrapper.es218.js +48 -0
- package/dist/golocal-cloud-wrapper.es219.js +33 -0
- package/dist/golocal-cloud-wrapper.es22.js +23 -0
- package/dist/golocal-cloud-wrapper.es220.js +30 -0
- package/dist/golocal-cloud-wrapper.es221.js +4 -0
- package/dist/golocal-cloud-wrapper.es222.js +4 -0
- package/dist/golocal-cloud-wrapper.es223.js +78 -0
- package/dist/golocal-cloud-wrapper.es224.js +4 -0
- package/dist/golocal-cloud-wrapper.es225.js +4 -0
- package/dist/golocal-cloud-wrapper.es226.js +4 -0
- package/dist/golocal-cloud-wrapper.es227.js +4 -0
- package/dist/golocal-cloud-wrapper.es228.js +4 -0
- package/dist/golocal-cloud-wrapper.es229.js +24 -0
- package/dist/golocal-cloud-wrapper.es23.js +38 -0
- package/dist/golocal-cloud-wrapper.es230.js +4 -0
- package/dist/golocal-cloud-wrapper.es231.js +4 -0
- package/dist/golocal-cloud-wrapper.es232.js +202 -0
- package/dist/golocal-cloud-wrapper.es233.js +97 -0
- package/dist/golocal-cloud-wrapper.es234.js +4 -0
- package/dist/golocal-cloud-wrapper.es235.js +173 -0
- package/dist/golocal-cloud-wrapper.es236.js +4 -0
- package/dist/golocal-cloud-wrapper.es237.js +21 -0
- package/dist/golocal-cloud-wrapper.es238.js +30 -0
- package/dist/golocal-cloud-wrapper.es239.js +154 -0
- package/dist/golocal-cloud-wrapper.es24.js +16 -0
- package/dist/golocal-cloud-wrapper.es240.js +131 -0
- package/dist/golocal-cloud-wrapper.es241.js +61 -0
- package/dist/golocal-cloud-wrapper.es242.js +42 -0
- package/dist/golocal-cloud-wrapper.es243.js +89 -0
- package/dist/golocal-cloud-wrapper.es244.js +24 -0
- package/dist/golocal-cloud-wrapper.es245.js +19 -0
- package/dist/golocal-cloud-wrapper.es246.js +127 -0
- package/dist/golocal-cloud-wrapper.es247.js +24 -0
- package/dist/golocal-cloud-wrapper.es248.js +33 -0
- package/dist/golocal-cloud-wrapper.es249.js +12 -0
- package/dist/golocal-cloud-wrapper.es25.js +17 -0
- package/dist/golocal-cloud-wrapper.es250.js +24 -0
- package/dist/golocal-cloud-wrapper.es251.js +17 -0
- package/dist/golocal-cloud-wrapper.es252.js +78 -0
- package/dist/golocal-cloud-wrapper.es253.js +19 -0
- package/dist/golocal-cloud-wrapper.es254.js +102 -0
- package/dist/golocal-cloud-wrapper.es255.js +29 -0
- package/dist/golocal-cloud-wrapper.es256.js +151 -0
- package/dist/golocal-cloud-wrapper.es257.js +4 -0
- package/dist/golocal-cloud-wrapper.es258.js +76 -0
- package/dist/golocal-cloud-wrapper.es259.js +92 -0
- package/dist/golocal-cloud-wrapper.es26.js +102 -0
- package/dist/golocal-cloud-wrapper.es260.js +71 -0
- package/dist/golocal-cloud-wrapper.es261.js +124 -0
- package/dist/golocal-cloud-wrapper.es262.js +35 -0
- package/dist/golocal-cloud-wrapper.es263.js +7 -0
- package/dist/golocal-cloud-wrapper.es264.js +23 -0
- package/dist/golocal-cloud-wrapper.es265.js +102 -0
- package/dist/golocal-cloud-wrapper.es266.js +106 -0
- package/dist/golocal-cloud-wrapper.es267.js +4 -0
- package/dist/golocal-cloud-wrapper.es268.js +4 -0
- package/dist/golocal-cloud-wrapper.es269.js +38 -0
- package/dist/golocal-cloud-wrapper.es27.js +45 -0
- package/dist/golocal-cloud-wrapper.es270.js +4 -0
- package/dist/golocal-cloud-wrapper.es271.js +4 -0
- package/dist/golocal-cloud-wrapper.es272.js +4 -0
- package/dist/golocal-cloud-wrapper.es273.js +4 -0
- package/dist/golocal-cloud-wrapper.es274.js +4 -0
- package/dist/golocal-cloud-wrapper.es275.js +4 -0
- package/dist/golocal-cloud-wrapper.es276.js +4 -0
- package/dist/golocal-cloud-wrapper.es277.js +11 -0
- package/dist/golocal-cloud-wrapper.es278.js +29 -0
- package/dist/golocal-cloud-wrapper.es279.js +4 -0
- package/dist/golocal-cloud-wrapper.es28.js +8 -0
- package/dist/golocal-cloud-wrapper.es280.js +4 -0
- package/dist/golocal-cloud-wrapper.es281.js +4 -0
- package/dist/golocal-cloud-wrapper.es282.js +4 -0
- package/dist/golocal-cloud-wrapper.es283.js +5 -0
- package/dist/golocal-cloud-wrapper.es284.js +36 -0
- package/dist/golocal-cloud-wrapper.es285.js +46 -0
- package/dist/golocal-cloud-wrapper.es286.js +55 -0
- package/dist/golocal-cloud-wrapper.es287.js +41 -0
- package/dist/golocal-cloud-wrapper.es288.js +70 -0
- package/dist/golocal-cloud-wrapper.es289.js +20 -0
- package/dist/golocal-cloud-wrapper.es29.js +13 -0
- package/dist/golocal-cloud-wrapper.es290.js +8 -0
- package/dist/golocal-cloud-wrapper.es291.js +4 -0
- package/dist/golocal-cloud-wrapper.es292.js +58 -0
- package/dist/golocal-cloud-wrapper.es293.js +31 -0
- package/dist/golocal-cloud-wrapper.es294.js +6 -0
- package/dist/golocal-cloud-wrapper.es295.js +11 -0
- package/dist/golocal-cloud-wrapper.es296.js +24 -0
- package/dist/golocal-cloud-wrapper.es297.js +32 -0
- package/dist/golocal-cloud-wrapper.es298.js +12 -0
- package/dist/golocal-cloud-wrapper.es299.js +10 -0
- package/dist/golocal-cloud-wrapper.es3.js +22 -0
- package/dist/golocal-cloud-wrapper.es30.js +13 -0
- package/dist/golocal-cloud-wrapper.es300.js +10 -0
- package/dist/golocal-cloud-wrapper.es301.js +159 -0
- package/dist/golocal-cloud-wrapper.es302.js +24 -0
- package/dist/golocal-cloud-wrapper.es303.js +21 -0
- package/dist/golocal-cloud-wrapper.es304.js +16 -0
- package/dist/golocal-cloud-wrapper.es305.js +48 -0
- package/dist/golocal-cloud-wrapper.es306.js +9 -0
- package/dist/golocal-cloud-wrapper.es307.js +37 -0
- package/dist/golocal-cloud-wrapper.es308.js +8 -0
- package/dist/golocal-cloud-wrapper.es309.js +9 -0
- package/dist/golocal-cloud-wrapper.es31.js +299 -0
- package/dist/golocal-cloud-wrapper.es310.js +15 -0
- package/dist/golocal-cloud-wrapper.es32.js +13 -0
- package/dist/golocal-cloud-wrapper.es33.js +13 -0
- package/dist/golocal-cloud-wrapper.es34.js +30 -0
- package/dist/golocal-cloud-wrapper.es35.js +342 -0
- package/dist/golocal-cloud-wrapper.es36.js +16 -0
- package/dist/golocal-cloud-wrapper.es37.js +16 -0
- package/dist/golocal-cloud-wrapper.es38.js +16 -0
- package/dist/golocal-cloud-wrapper.es39.js +491 -0
- package/dist/golocal-cloud-wrapper.es4.js +20 -0
- package/dist/golocal-cloud-wrapper.es40.js +17 -0
- package/dist/golocal-cloud-wrapper.es41.js +4 -0
- package/dist/golocal-cloud-wrapper.es42.js +41 -0
- package/dist/golocal-cloud-wrapper.es43.js +274 -0
- package/dist/golocal-cloud-wrapper.es44.js +4 -0
- package/dist/golocal-cloud-wrapper.es45.js +30 -0
- package/dist/golocal-cloud-wrapper.es46.js +22 -0
- package/dist/golocal-cloud-wrapper.es47.js +16 -0
- package/dist/golocal-cloud-wrapper.es48.js +18 -0
- package/dist/golocal-cloud-wrapper.es49.js +22 -0
- package/dist/golocal-cloud-wrapper.es5.js +12 -0
- package/dist/golocal-cloud-wrapper.es50.js +22 -0
- package/dist/golocal-cloud-wrapper.es51.js +26 -0
- package/dist/golocal-cloud-wrapper.es52.js +22 -0
- package/dist/golocal-cloud-wrapper.es53.js +17 -0
- package/dist/golocal-cloud-wrapper.es54.js +4 -0
- package/dist/golocal-cloud-wrapper.es55.js +4 -0
- package/dist/golocal-cloud-wrapper.es56.js +39 -0
- package/dist/golocal-cloud-wrapper.es57.js +17 -0
- package/dist/golocal-cloud-wrapper.es58.js +2959 -0
- package/dist/golocal-cloud-wrapper.es59.js +417 -0
- package/dist/golocal-cloud-wrapper.es6.js +68 -0
- package/dist/golocal-cloud-wrapper.es60.js +25 -0
- package/dist/golocal-cloud-wrapper.es61.js +28 -0
- package/dist/golocal-cloud-wrapper.es62.js +32 -0
- package/dist/golocal-cloud-wrapper.es63.js +41 -0
- package/dist/golocal-cloud-wrapper.es64.js +20 -0
- package/dist/golocal-cloud-wrapper.es65.js +11 -0
- package/dist/golocal-cloud-wrapper.es66.js +81 -0
- package/dist/golocal-cloud-wrapper.es67.js +14 -0
- package/dist/golocal-cloud-wrapper.es68.js +71 -0
- package/dist/golocal-cloud-wrapper.es69.js +212 -0
- package/dist/golocal-cloud-wrapper.es7.js +16 -0
- package/dist/golocal-cloud-wrapper.es70.js +208 -0
- package/dist/golocal-cloud-wrapper.es71.js +18 -0
- package/dist/golocal-cloud-wrapper.es72.js +129 -0
- package/dist/golocal-cloud-wrapper.es73.js +43 -0
- package/dist/golocal-cloud-wrapper.es74.js +29 -0
- package/dist/golocal-cloud-wrapper.es75.js +11 -0
- package/dist/golocal-cloud-wrapper.es76.js +122 -0
- package/dist/golocal-cloud-wrapper.es77.js +880 -0
- package/dist/golocal-cloud-wrapper.es78.js +288 -0
- package/dist/golocal-cloud-wrapper.es79.js +36 -0
- package/dist/golocal-cloud-wrapper.es8.js +48 -0
- package/dist/golocal-cloud-wrapper.es80.js +12 -0
- package/dist/golocal-cloud-wrapper.es81.js +334 -0
- package/dist/golocal-cloud-wrapper.es82.js +5 -0
- package/dist/golocal-cloud-wrapper.es83.js +8 -0
- package/dist/golocal-cloud-wrapper.es84.js +58 -0
- package/dist/golocal-cloud-wrapper.es85.js +5 -0
- package/dist/golocal-cloud-wrapper.es86.js +104 -0
- package/dist/golocal-cloud-wrapper.es87.js +468 -0
- package/dist/golocal-cloud-wrapper.es88.js +10 -0
- package/dist/golocal-cloud-wrapper.es89.js +6 -0
- package/dist/golocal-cloud-wrapper.es9.js +90 -0
- package/dist/golocal-cloud-wrapper.es90.js +14 -0
- package/dist/golocal-cloud-wrapper.es91.js +17 -0
- package/dist/golocal-cloud-wrapper.es92.js +70 -0
- package/dist/golocal-cloud-wrapper.es93.js +10 -0
- package/dist/golocal-cloud-wrapper.es94.js +227 -0
- package/dist/golocal-cloud-wrapper.es95.js +297 -0
- package/dist/golocal-cloud-wrapper.es96.js +25 -0
- package/dist/golocal-cloud-wrapper.es97.js +39 -0
- package/dist/golocal-cloud-wrapper.es98.js +616 -0
- package/dist/golocal-cloud-wrapper.es99.js +17 -0
- package/package.json +1 -1
- package/dist/golocal-cloud-wrapper.umd.js +0 -197
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import crypto from "./golocal-cloud-wrapper.es294.js";
|
|
2
|
+
import { JOSENotSupported } from "./golocal-cloud-wrapper.es240.js";
|
|
3
|
+
const findOid = (keyData, oid, from = 0) => {
|
|
4
|
+
if (from === 0) {
|
|
5
|
+
oid.unshift(oid.length);
|
|
6
|
+
oid.unshift(6);
|
|
7
|
+
}
|
|
8
|
+
const i = keyData.indexOf(oid[0], from);
|
|
9
|
+
if (i === -1)
|
|
10
|
+
return false;
|
|
11
|
+
const sub = keyData.subarray(i, i + oid.length);
|
|
12
|
+
if (sub.length !== oid.length)
|
|
13
|
+
return false;
|
|
14
|
+
return sub.every((value, index) => value === oid[index]) || findOid(keyData, oid, i + 1);
|
|
15
|
+
};
|
|
16
|
+
const getNamedCurve = (keyData) => {
|
|
17
|
+
switch (true) {
|
|
18
|
+
case findOid(keyData, [42, 134, 72, 206, 61, 3, 1, 7]):
|
|
19
|
+
return "P-256";
|
|
20
|
+
case findOid(keyData, [43, 129, 4, 0, 34]):
|
|
21
|
+
return "P-384";
|
|
22
|
+
case findOid(keyData, [43, 129, 4, 0, 35]):
|
|
23
|
+
return "P-521";
|
|
24
|
+
case findOid(keyData, [43, 101, 110]):
|
|
25
|
+
return "X25519";
|
|
26
|
+
case findOid(keyData, [43, 101, 111]):
|
|
27
|
+
return "X448";
|
|
28
|
+
case findOid(keyData, [43, 101, 112]):
|
|
29
|
+
return "Ed25519";
|
|
30
|
+
case findOid(keyData, [43, 101, 113]):
|
|
31
|
+
return "Ed448";
|
|
32
|
+
default:
|
|
33
|
+
throw new JOSENotSupported("Invalid or unsupported EC Key Curve or OKP Key Sub Type");
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const genericImport = async (replace, keyFormat, pem, alg, options) => {
|
|
37
|
+
let algorithm;
|
|
38
|
+
let keyUsages;
|
|
39
|
+
const keyData = new Uint8Array(atob(pem.replace(replace, "")).split("").map((c) => c.charCodeAt(0)));
|
|
40
|
+
switch (alg) {
|
|
41
|
+
case "PS256":
|
|
42
|
+
case "PS384":
|
|
43
|
+
case "PS512":
|
|
44
|
+
algorithm = { name: "RSA-PSS", hash: `SHA-${alg.slice(-3)}` };
|
|
45
|
+
keyUsages = ["sign"];
|
|
46
|
+
break;
|
|
47
|
+
case "RS256":
|
|
48
|
+
case "RS384":
|
|
49
|
+
case "RS512":
|
|
50
|
+
algorithm = { name: "RSASSA-PKCS1-v1_5", hash: `SHA-${alg.slice(-3)}` };
|
|
51
|
+
keyUsages = ["sign"];
|
|
52
|
+
break;
|
|
53
|
+
case "RSA-OAEP":
|
|
54
|
+
case "RSA-OAEP-256":
|
|
55
|
+
case "RSA-OAEP-384":
|
|
56
|
+
case "RSA-OAEP-512":
|
|
57
|
+
algorithm = {
|
|
58
|
+
name: "RSA-OAEP",
|
|
59
|
+
hash: `SHA-${parseInt(alg.slice(-3), 10) || 1}`
|
|
60
|
+
};
|
|
61
|
+
keyUsages = ["decrypt", "unwrapKey"];
|
|
62
|
+
break;
|
|
63
|
+
case "ES256":
|
|
64
|
+
algorithm = { name: "ECDSA", namedCurve: "P-256" };
|
|
65
|
+
keyUsages = ["sign"];
|
|
66
|
+
break;
|
|
67
|
+
case "ES384":
|
|
68
|
+
algorithm = { name: "ECDSA", namedCurve: "P-384" };
|
|
69
|
+
keyUsages = ["sign"];
|
|
70
|
+
break;
|
|
71
|
+
case "ES512":
|
|
72
|
+
algorithm = { name: "ECDSA", namedCurve: "P-521" };
|
|
73
|
+
keyUsages = ["sign"];
|
|
74
|
+
break;
|
|
75
|
+
case "ECDH-ES":
|
|
76
|
+
case "ECDH-ES+A128KW":
|
|
77
|
+
case "ECDH-ES+A192KW":
|
|
78
|
+
case "ECDH-ES+A256KW": {
|
|
79
|
+
const namedCurve = getNamedCurve(keyData);
|
|
80
|
+
algorithm = namedCurve.startsWith("P-") ? { name: "ECDH", namedCurve } : { name: namedCurve };
|
|
81
|
+
keyUsages = ["deriveBits"];
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
case "Ed25519":
|
|
85
|
+
algorithm = { name: "Ed25519" };
|
|
86
|
+
keyUsages = ["sign"];
|
|
87
|
+
break;
|
|
88
|
+
case "EdDSA":
|
|
89
|
+
algorithm = { name: getNamedCurve(keyData) };
|
|
90
|
+
keyUsages = ["sign"];
|
|
91
|
+
break;
|
|
92
|
+
default:
|
|
93
|
+
throw new JOSENotSupported('Invalid or unsupported "alg" (Algorithm) value');
|
|
94
|
+
}
|
|
95
|
+
return crypto.subtle.importKey(keyFormat, keyData, algorithm, false, keyUsages);
|
|
96
|
+
};
|
|
97
|
+
const fromPKCS8 = (pem, alg, options) => {
|
|
98
|
+
return genericImport(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g, "pkcs8", pem, alg);
|
|
99
|
+
};
|
|
100
|
+
export {
|
|
101
|
+
fromPKCS8
|
|
102
|
+
};
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import crypto from "./golocal-cloud-wrapper.es294.js";
|
|
2
|
+
import { JOSENotSupported } from "./golocal-cloud-wrapper.es240.js";
|
|
3
|
+
function subtleMapping(jwk) {
|
|
4
|
+
let algorithm;
|
|
5
|
+
let keyUsages;
|
|
6
|
+
switch (jwk.kty) {
|
|
7
|
+
case "RSA": {
|
|
8
|
+
switch (jwk.alg) {
|
|
9
|
+
case "PS256":
|
|
10
|
+
case "PS384":
|
|
11
|
+
case "PS512":
|
|
12
|
+
algorithm = { name: "RSA-PSS", hash: `SHA-${jwk.alg.slice(-3)}` };
|
|
13
|
+
keyUsages = jwk.d ? ["sign"] : ["verify"];
|
|
14
|
+
break;
|
|
15
|
+
case "RS256":
|
|
16
|
+
case "RS384":
|
|
17
|
+
case "RS512":
|
|
18
|
+
algorithm = { name: "RSASSA-PKCS1-v1_5", hash: `SHA-${jwk.alg.slice(-3)}` };
|
|
19
|
+
keyUsages = jwk.d ? ["sign"] : ["verify"];
|
|
20
|
+
break;
|
|
21
|
+
case "RSA-OAEP":
|
|
22
|
+
case "RSA-OAEP-256":
|
|
23
|
+
case "RSA-OAEP-384":
|
|
24
|
+
case "RSA-OAEP-512":
|
|
25
|
+
algorithm = {
|
|
26
|
+
name: "RSA-OAEP",
|
|
27
|
+
hash: `SHA-${parseInt(jwk.alg.slice(-3), 10) || 1}`
|
|
28
|
+
};
|
|
29
|
+
keyUsages = jwk.d ? ["decrypt", "unwrapKey"] : ["encrypt", "wrapKey"];
|
|
30
|
+
break;
|
|
31
|
+
default:
|
|
32
|
+
throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
33
|
+
}
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case "EC": {
|
|
37
|
+
switch (jwk.alg) {
|
|
38
|
+
case "ES256":
|
|
39
|
+
algorithm = { name: "ECDSA", namedCurve: "P-256" };
|
|
40
|
+
keyUsages = jwk.d ? ["sign"] : ["verify"];
|
|
41
|
+
break;
|
|
42
|
+
case "ES384":
|
|
43
|
+
algorithm = { name: "ECDSA", namedCurve: "P-384" };
|
|
44
|
+
keyUsages = jwk.d ? ["sign"] : ["verify"];
|
|
45
|
+
break;
|
|
46
|
+
case "ES512":
|
|
47
|
+
algorithm = { name: "ECDSA", namedCurve: "P-521" };
|
|
48
|
+
keyUsages = jwk.d ? ["sign"] : ["verify"];
|
|
49
|
+
break;
|
|
50
|
+
case "ECDH-ES":
|
|
51
|
+
case "ECDH-ES+A128KW":
|
|
52
|
+
case "ECDH-ES+A192KW":
|
|
53
|
+
case "ECDH-ES+A256KW":
|
|
54
|
+
algorithm = { name: "ECDH", namedCurve: jwk.crv };
|
|
55
|
+
keyUsages = jwk.d ? ["deriveBits"] : [];
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
case "OKP": {
|
|
63
|
+
switch (jwk.alg) {
|
|
64
|
+
case "Ed25519":
|
|
65
|
+
algorithm = { name: "Ed25519" };
|
|
66
|
+
keyUsages = jwk.d ? ["sign"] : ["verify"];
|
|
67
|
+
break;
|
|
68
|
+
case "EdDSA":
|
|
69
|
+
algorithm = { name: jwk.crv };
|
|
70
|
+
keyUsages = jwk.d ? ["sign"] : ["verify"];
|
|
71
|
+
break;
|
|
72
|
+
case "ECDH-ES":
|
|
73
|
+
case "ECDH-ES+A128KW":
|
|
74
|
+
case "ECDH-ES+A192KW":
|
|
75
|
+
case "ECDH-ES+A256KW":
|
|
76
|
+
algorithm = { name: jwk.crv };
|
|
77
|
+
keyUsages = jwk.d ? ["deriveBits"] : [];
|
|
78
|
+
break;
|
|
79
|
+
default:
|
|
80
|
+
throw new JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
81
|
+
}
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
default:
|
|
85
|
+
throw new JOSENotSupported('Invalid or unsupported JWK "kty" (Key Type) Parameter value');
|
|
86
|
+
}
|
|
87
|
+
return { algorithm, keyUsages };
|
|
88
|
+
}
|
|
89
|
+
const parse = async (jwk) => {
|
|
90
|
+
if (!jwk.alg) {
|
|
91
|
+
throw new TypeError('"alg" argument is required when "jwk.alg" is not present');
|
|
92
|
+
}
|
|
93
|
+
const { algorithm, keyUsages } = subtleMapping(jwk);
|
|
94
|
+
const rest = [
|
|
95
|
+
algorithm,
|
|
96
|
+
jwk.ext ?? false,
|
|
97
|
+
jwk.key_ops ?? keyUsages
|
|
98
|
+
];
|
|
99
|
+
const keyData = { ...jwk };
|
|
100
|
+
delete keyData.alg;
|
|
101
|
+
delete keyData.use;
|
|
102
|
+
return crypto.subtle.importKey("jwk", keyData, ...rest);
|
|
103
|
+
};
|
|
104
|
+
export {
|
|
105
|
+
parse as default
|
|
106
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { __exports as parsePath } from "./golocal-cloud-wrapper.es282.js";
|
|
2
|
+
var hasRequiredParsePath;
|
|
3
|
+
function requireParsePath() {
|
|
4
|
+
if (hasRequiredParsePath) return parsePath;
|
|
5
|
+
hasRequiredParsePath = 1;
|
|
6
|
+
(function(exports) {
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
Object.defineProperty(exports, "parsePath", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function() {
|
|
13
|
+
return parsePath2;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
function parsePath2(path) {
|
|
17
|
+
const hashIndex = path.indexOf("#");
|
|
18
|
+
const queryIndex = path.indexOf("?");
|
|
19
|
+
const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);
|
|
20
|
+
if (hasQuery || hashIndex > -1) {
|
|
21
|
+
return {
|
|
22
|
+
pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),
|
|
23
|
+
query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : void 0) : "",
|
|
24
|
+
hash: hashIndex > -1 ? path.slice(hashIndex) : ""
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
pathname: path,
|
|
29
|
+
query: "",
|
|
30
|
+
hash: ""
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
})(parsePath);
|
|
34
|
+
return parsePath;
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
requireParsePath as __require
|
|
38
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { clsx } from "./golocal-cloud-wrapper.es57.js";
|
|
2
|
+
const falsyToString = (value) => typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
|
|
3
|
+
const cx = clsx;
|
|
4
|
+
const cva = (base, config) => (props) => {
|
|
5
|
+
var _config_compoundVariants;
|
|
6
|
+
if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
7
|
+
const { variants, defaultVariants } = config;
|
|
8
|
+
const getVariantClassNames = Object.keys(variants).map((variant) => {
|
|
9
|
+
const variantProp = props === null || props === void 0 ? void 0 : props[variant];
|
|
10
|
+
const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
|
|
11
|
+
if (variantProp === null) return null;
|
|
12
|
+
const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
|
|
13
|
+
return variants[variant][variantKey];
|
|
14
|
+
});
|
|
15
|
+
const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param) => {
|
|
16
|
+
let [key, value] = param;
|
|
17
|
+
if (value === void 0) {
|
|
18
|
+
return acc;
|
|
19
|
+
}
|
|
20
|
+
acc[key] = value;
|
|
21
|
+
return acc;
|
|
22
|
+
}, {});
|
|
23
|
+
const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param) => {
|
|
24
|
+
let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;
|
|
25
|
+
return Object.entries(compoundVariantOptions).every((param2) => {
|
|
26
|
+
let [key, value] = param2;
|
|
27
|
+
return Array.isArray(value) ? value.includes({
|
|
28
|
+
...defaultVariants,
|
|
29
|
+
...propsWithoutUndefined
|
|
30
|
+
}[key]) : {
|
|
31
|
+
...defaultVariants,
|
|
32
|
+
...propsWithoutUndefined
|
|
33
|
+
}[key] === value;
|
|
34
|
+
}) ? [
|
|
35
|
+
...acc,
|
|
36
|
+
cvClass,
|
|
37
|
+
cvClassName
|
|
38
|
+
] : acc;
|
|
39
|
+
}, []);
|
|
40
|
+
return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
41
|
+
};
|
|
42
|
+
export {
|
|
43
|
+
cva,
|
|
44
|
+
cx
|
|
45
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useState } from "react";
|
|
2
|
+
function useCallbackRef(initialValue, callback) {
|
|
3
|
+
var ref = useState(function() {
|
|
4
|
+
return {
|
|
5
|
+
// value
|
|
6
|
+
value: initialValue,
|
|
7
|
+
// last callback
|
|
8
|
+
callback,
|
|
9
|
+
// "memoized" public interface
|
|
10
|
+
facade: {
|
|
11
|
+
get current() {
|
|
12
|
+
return ref.value;
|
|
13
|
+
},
|
|
14
|
+
set current(value) {
|
|
15
|
+
var last = ref.value;
|
|
16
|
+
if (last !== value) {
|
|
17
|
+
ref.value = value;
|
|
18
|
+
ref.callback(value, last);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
})[0];
|
|
24
|
+
ref.callback = callback;
|
|
25
|
+
return ref.facade;
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
useCallbackRef
|
|
29
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import bogusWebCrypto from "./golocal-cloud-wrapper.es308.js";
|
|
2
|
+
import crypto, { isCryptoKey } from "./golocal-cloud-wrapper.es294.js";
|
|
3
|
+
import { checkEncCryptoKey } from "./golocal-cloud-wrapper.es301.js";
|
|
4
|
+
import invalidKeyInput from "./golocal-cloud-wrapper.es297.js";
|
|
5
|
+
import { types } from "./golocal-cloud-wrapper.es298.js";
|
|
6
|
+
function checkKeySize(key, alg) {
|
|
7
|
+
if (key.algorithm.length !== parseInt(alg.slice(1, 4), 10)) {
|
|
8
|
+
throw new TypeError(`Invalid key size for alg: ${alg}`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function getCryptoKey(key, alg, usage) {
|
|
12
|
+
if (isCryptoKey(key)) {
|
|
13
|
+
checkEncCryptoKey(key, alg, usage);
|
|
14
|
+
return key;
|
|
15
|
+
}
|
|
16
|
+
if (key instanceof Uint8Array) {
|
|
17
|
+
return crypto.subtle.importKey("raw", key, "AES-KW", true, [usage]);
|
|
18
|
+
}
|
|
19
|
+
throw new TypeError(invalidKeyInput(key, ...types, "Uint8Array"));
|
|
20
|
+
}
|
|
21
|
+
const wrap = async (alg, key, cek) => {
|
|
22
|
+
const cryptoKey = await getCryptoKey(key, alg, "wrapKey");
|
|
23
|
+
checkKeySize(cryptoKey, alg);
|
|
24
|
+
const cryptoKeyCek = await crypto.subtle.importKey("raw", cek, ...bogusWebCrypto);
|
|
25
|
+
return new Uint8Array(await crypto.subtle.wrapKey("raw", cryptoKeyCek, cryptoKey, "AES-KW"));
|
|
26
|
+
};
|
|
27
|
+
const unwrap = async (alg, key, encryptedKey) => {
|
|
28
|
+
const cryptoKey = await getCryptoKey(key, alg, "unwrapKey");
|
|
29
|
+
checkKeySize(cryptoKey, alg);
|
|
30
|
+
const cryptoKeyCek = await crypto.subtle.unwrapKey("raw", encryptedKey, cryptoKey, "AES-KW", ...bogusWebCrypto);
|
|
31
|
+
return new Uint8Array(await crypto.subtle.exportKey("raw", cryptoKeyCek));
|
|
32
|
+
};
|
|
33
|
+
export {
|
|
34
|
+
unwrap,
|
|
35
|
+
wrap
|
|
36
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { concat, uint32be, lengthAndInput, encoder, concatKdf } from "./golocal-cloud-wrapper.es241.js";
|
|
2
|
+
import crypto, { isCryptoKey } from "./golocal-cloud-wrapper.es294.js";
|
|
3
|
+
import { checkEncCryptoKey } from "./golocal-cloud-wrapper.es301.js";
|
|
4
|
+
import invalidKeyInput from "./golocal-cloud-wrapper.es297.js";
|
|
5
|
+
import { types } from "./golocal-cloud-wrapper.es298.js";
|
|
6
|
+
async function deriveKey(publicKey, privateKey, algorithm, keyLength, apu = new Uint8Array(0), apv = new Uint8Array(0)) {
|
|
7
|
+
if (!isCryptoKey(publicKey)) {
|
|
8
|
+
throw new TypeError(invalidKeyInput(publicKey, ...types));
|
|
9
|
+
}
|
|
10
|
+
checkEncCryptoKey(publicKey, "ECDH");
|
|
11
|
+
if (!isCryptoKey(privateKey)) {
|
|
12
|
+
throw new TypeError(invalidKeyInput(privateKey, ...types));
|
|
13
|
+
}
|
|
14
|
+
checkEncCryptoKey(privateKey, "ECDH", "deriveBits");
|
|
15
|
+
const value = concat(lengthAndInput(encoder.encode(algorithm)), lengthAndInput(apu), lengthAndInput(apv), uint32be(keyLength));
|
|
16
|
+
let length;
|
|
17
|
+
if (publicKey.algorithm.name === "X25519") {
|
|
18
|
+
length = 256;
|
|
19
|
+
} else if (publicKey.algorithm.name === "X448") {
|
|
20
|
+
length = 448;
|
|
21
|
+
} else {
|
|
22
|
+
length = Math.ceil(parseInt(publicKey.algorithm.namedCurve.substr(-3), 10) / 8) << 3;
|
|
23
|
+
}
|
|
24
|
+
const sharedSecret = new Uint8Array(await crypto.subtle.deriveBits({
|
|
25
|
+
name: publicKey.algorithm.name,
|
|
26
|
+
public: publicKey
|
|
27
|
+
}, privateKey, length));
|
|
28
|
+
return concatKdf(sharedSecret, keyLength, value);
|
|
29
|
+
}
|
|
30
|
+
async function generateEpk(key) {
|
|
31
|
+
if (!isCryptoKey(key)) {
|
|
32
|
+
throw new TypeError(invalidKeyInput(key, ...types));
|
|
33
|
+
}
|
|
34
|
+
return crypto.subtle.generateKey(key.algorithm, true, ["deriveBits"]);
|
|
35
|
+
}
|
|
36
|
+
function ecdhAllowed(key) {
|
|
37
|
+
if (!isCryptoKey(key)) {
|
|
38
|
+
throw new TypeError(invalidKeyInput(key, ...types));
|
|
39
|
+
}
|
|
40
|
+
return ["P-256", "P-384", "P-521"].includes(key.algorithm.namedCurve) || key.algorithm.name === "X25519" || key.algorithm.name === "X448";
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
deriveKey,
|
|
44
|
+
ecdhAllowed,
|
|
45
|
+
generateEpk
|
|
46
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import random from "./golocal-cloud-wrapper.es283.js";
|
|
2
|
+
import { p2s } from "./golocal-cloud-wrapper.es241.js";
|
|
3
|
+
import { encode } from "./golocal-cloud-wrapper.es242.js";
|
|
4
|
+
import { wrap, unwrap } from "./golocal-cloud-wrapper.es284.js";
|
|
5
|
+
import checkP2s from "./golocal-cloud-wrapper.es309.js";
|
|
6
|
+
import crypto, { isCryptoKey } from "./golocal-cloud-wrapper.es294.js";
|
|
7
|
+
import { checkEncCryptoKey } from "./golocal-cloud-wrapper.es301.js";
|
|
8
|
+
import invalidKeyInput from "./golocal-cloud-wrapper.es297.js";
|
|
9
|
+
import { types } from "./golocal-cloud-wrapper.es298.js";
|
|
10
|
+
function getCryptoKey(key, alg) {
|
|
11
|
+
if (key instanceof Uint8Array) {
|
|
12
|
+
return crypto.subtle.importKey("raw", key, "PBKDF2", false, ["deriveBits"]);
|
|
13
|
+
}
|
|
14
|
+
if (isCryptoKey(key)) {
|
|
15
|
+
checkEncCryptoKey(key, alg, "deriveBits", "deriveKey");
|
|
16
|
+
return key;
|
|
17
|
+
}
|
|
18
|
+
throw new TypeError(invalidKeyInput(key, ...types, "Uint8Array"));
|
|
19
|
+
}
|
|
20
|
+
async function deriveKey(p2s$1, alg, p2c, key) {
|
|
21
|
+
checkP2s(p2s$1);
|
|
22
|
+
const salt = p2s(alg, p2s$1);
|
|
23
|
+
const keylen = parseInt(alg.slice(13, 16), 10);
|
|
24
|
+
const subtleAlg = {
|
|
25
|
+
hash: `SHA-${alg.slice(8, 11)}`,
|
|
26
|
+
iterations: p2c,
|
|
27
|
+
name: "PBKDF2",
|
|
28
|
+
salt
|
|
29
|
+
};
|
|
30
|
+
const wrapAlg = {
|
|
31
|
+
length: keylen,
|
|
32
|
+
name: "AES-KW"
|
|
33
|
+
};
|
|
34
|
+
const cryptoKey = await getCryptoKey(key, alg);
|
|
35
|
+
if (cryptoKey.usages.includes("deriveBits")) {
|
|
36
|
+
return new Uint8Array(await crypto.subtle.deriveBits(subtleAlg, cryptoKey, keylen));
|
|
37
|
+
}
|
|
38
|
+
if (cryptoKey.usages.includes("deriveKey")) {
|
|
39
|
+
return crypto.subtle.deriveKey(subtleAlg, cryptoKey, wrapAlg, false, ["wrapKey", "unwrapKey"]);
|
|
40
|
+
}
|
|
41
|
+
throw new TypeError('PBKDF2 key "usages" must include "deriveBits" or "deriveKey"');
|
|
42
|
+
}
|
|
43
|
+
const encrypt = async (alg, key, cek, p2c = 2048, p2s2 = random(new Uint8Array(16))) => {
|
|
44
|
+
const derived = await deriveKey(p2s2, alg, p2c, key);
|
|
45
|
+
const encryptedKey = await wrap(alg.slice(-6), derived, cek);
|
|
46
|
+
return { encryptedKey, p2c, p2s: encode(p2s2) };
|
|
47
|
+
};
|
|
48
|
+
const decrypt = async (alg, key, encryptedKey, p2c, p2s2) => {
|
|
49
|
+
const derived = await deriveKey(p2s2, alg, p2c, key);
|
|
50
|
+
return unwrap(alg.slice(-6), derived, encryptedKey);
|
|
51
|
+
};
|
|
52
|
+
export {
|
|
53
|
+
decrypt,
|
|
54
|
+
encrypt
|
|
55
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import subtleRsaEs from "./golocal-cloud-wrapper.es310.js";
|
|
2
|
+
import bogusWebCrypto from "./golocal-cloud-wrapper.es308.js";
|
|
3
|
+
import crypto, { isCryptoKey } from "./golocal-cloud-wrapper.es294.js";
|
|
4
|
+
import { checkEncCryptoKey } from "./golocal-cloud-wrapper.es301.js";
|
|
5
|
+
import checkKeyLength from "./golocal-cloud-wrapper.es295.js";
|
|
6
|
+
import invalidKeyInput from "./golocal-cloud-wrapper.es297.js";
|
|
7
|
+
import { types } from "./golocal-cloud-wrapper.es298.js";
|
|
8
|
+
const encrypt = async (alg, key, cek) => {
|
|
9
|
+
if (!isCryptoKey(key)) {
|
|
10
|
+
throw new TypeError(invalidKeyInput(key, ...types));
|
|
11
|
+
}
|
|
12
|
+
checkEncCryptoKey(key, alg, "encrypt", "wrapKey");
|
|
13
|
+
checkKeyLength(alg, key);
|
|
14
|
+
if (key.usages.includes("encrypt")) {
|
|
15
|
+
return new Uint8Array(await crypto.subtle.encrypt(subtleRsaEs(alg), key, cek));
|
|
16
|
+
}
|
|
17
|
+
if (key.usages.includes("wrapKey")) {
|
|
18
|
+
const cryptoKeyCek = await crypto.subtle.importKey("raw", cek, ...bogusWebCrypto);
|
|
19
|
+
return new Uint8Array(await crypto.subtle.wrapKey("raw", cryptoKeyCek, key, subtleRsaEs(alg)));
|
|
20
|
+
}
|
|
21
|
+
throw new TypeError('RSA-OAEP key "usages" must include "encrypt" or "wrapKey" for this operation');
|
|
22
|
+
};
|
|
23
|
+
const decrypt = async (alg, key, encryptedKey) => {
|
|
24
|
+
if (!isCryptoKey(key)) {
|
|
25
|
+
throw new TypeError(invalidKeyInput(key, ...types));
|
|
26
|
+
}
|
|
27
|
+
checkEncCryptoKey(key, alg, "decrypt", "unwrapKey");
|
|
28
|
+
checkKeyLength(alg, key);
|
|
29
|
+
if (key.usages.includes("decrypt")) {
|
|
30
|
+
return new Uint8Array(await crypto.subtle.decrypt(subtleRsaEs(alg), key, encryptedKey));
|
|
31
|
+
}
|
|
32
|
+
if (key.usages.includes("unwrapKey")) {
|
|
33
|
+
const cryptoKeyCek = await crypto.subtle.unwrapKey("raw", encryptedKey, key, subtleRsaEs(alg), ...bogusWebCrypto);
|
|
34
|
+
return new Uint8Array(await crypto.subtle.exportKey("raw", cryptoKeyCek));
|
|
35
|
+
}
|
|
36
|
+
throw new TypeError('RSA-OAEP key "usages" must include "decrypt" or "unwrapKey" for this operation');
|
|
37
|
+
};
|
|
38
|
+
export {
|
|
39
|
+
decrypt,
|
|
40
|
+
encrypt
|
|
41
|
+
};
|