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