smesh_lol_web_common_crypto_hmac.mjs raw
1 // Package smesh.lol/web/common/crypto/hmac
2 // Generated by MoxieJS — Moxie JavaScript backend
3
4 import * as $rt from './$runtime/index.mjs';
5
6 import * as smesh$lol$web$common$jsbridge$schnorr from './smesh_lol_web_common_jsbridge_schnorr.mjs';
7
8 // Package-level variables
9
10 export function init() {
11 return;
12 }
13
14 export function Sum(key, message) {
15 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41;
16 let $block = 0;
17 while (true) {
18 switch ($block) {
19 case 0: {
20 $t0_1 = { $value: $rt.builtin.makeSlice(64, 64, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
21 $t1_2 = $rt.builtin.len(key);
22 $t2_3 = ($t1_2 > 64);
23 if ($t2_3) {
24 $block = 1; break;
25 }
26 else {
27 $block = 3; break;
28 }
29 break;
30 }
31 case 1: {
32 $t3_4 = smesh$lol$web$common$jsbridge$schnorr.SHA256Sum(key);
33 $t4_5 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
34 $t5_6 = $rt.builtin.copy($t4_5, $t3_4);
35 $block = 2; break;
36 break;
37 }
38 case 2: {
39 $t6_7 = { $value: $rt.builtin.makeSlice(64, 64, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
40 $t7_8 = { $value: $rt.builtin.makeSlice(64, 64, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
41 $t10_11 = 0;
42 $block = 4; break;
43 break;
44 }
45 case 3: {
46 $t8_9 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
47 $t9_10 = $rt.builtin.copy($t8_9, key);
48 $block = 2; break;
49 break;
50 }
51 case 4: {
52 $t11_12 = ($t10_11 < 64);
53 if ($t11_12) {
54 $block = 5; break;
55 }
56 else {
57 $block = 6; break;
58 }
59 break;
60 }
61 case 5: {
62 $t12_13 = $t0_1.$get().addr($t10_11);
63 $t13_14 = $t12_13.$get();
64 $t14_15 = ($t13_14 ^ 54);
65 $t15_16 = $t6_7.$get().addr($t10_11);
66 $t15_16.$set($t14_15);
67 $t16_17 = $t0_1.$get().addr($t10_11);
68 $t17_18 = $t16_17.$get();
69 $t18_19 = ($t17_18 ^ 92);
70 $t19_20 = $t7_8.$get().addr($t10_11);
71 $t19_20.$set($t18_19);
72 $t20_21 = ($t10_11 + 1);
73 $t10_11 = $t20_21;
74 $block = 4; break;
75 break;
76 }
77 case 6: {
78 $t21_22 = $rt.builtin.len(message);
79 $t22_23 = (64 + $t21_22);
80 $t23_24 = $rt.builtin.makeSlice($t22_23, $t22_23, 0);
81 $t24_25 = $rt.builtin.sliceSlice($t6_7.$get(), undefined, undefined, undefined);
82 $t25_26 = $rt.builtin.copy($t23_24, $t24_25);
83 $t26_27 = $rt.builtin.sliceSlice($t23_24, 64, undefined, undefined);
84 $t27_28 = $rt.builtin.copy($t26_27, message);
85 $t28_29 = smesh$lol$web$common$jsbridge$schnorr.SHA256Sum($t23_24);
86 $t29_30 = { $value: $rt.builtin.makeSlice(96, 96, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
87 $t30_31 = $rt.builtin.sliceSlice($t29_30.$get(), undefined, 96, undefined);
88 $t31_32 = $rt.builtin.sliceSlice($t30_31, undefined, 64, undefined);
89 $t32_33 = $rt.builtin.sliceSlice($t7_8.$get(), undefined, undefined, undefined);
90 $t33_34 = $rt.builtin.copy($t31_32, $t32_33);
91 $t34_35 = $rt.builtin.sliceSlice($t30_31, 64, undefined, undefined);
92 $t35_36 = $rt.builtin.copy($t34_35, $t28_29);
93 $t36_37 = smesh$lol$web$common$jsbridge$schnorr.SHA256Sum($t30_31);
94 $t37_38 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
95 $t38_39 = $rt.builtin.sliceSlice($t37_38.$get(), undefined, undefined, undefined);
96 $t39_40 = $rt.builtin.copy($t38_39, $t36_37);
97 $t40_41 = $t37_38.$get();
98 return $t40_41;
99 break;
100 }
101 }
102 }
103 }
104
105