common_crypto_sha256.mjs raw

   1  // Package common/crypto/sha256
   2  // Generated by TinyJS — TinyGo JavaScript backend
   3  
   4  import * as $rt from './$runtime/index.mjs';
   5  
   6  // Package-level variables
   7  export let k = { $value: $rt.builtin.makeSlice(64, 64, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
   8  export let init0 = { $value: $rt.builtin.makeSlice(8, 8, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
   9  
  10  $rt.types.registerType('common/crypto/sha256.digest', {
  11    id: 'common/crypto/sha256.digest',
  12    kind: 'struct',
  13    methods: new Map(),
  14    fields: [
  15      { name: 'h', type: '[8]uint32', tag: '', embedded: false },
  16      { name: 'buf', type: '[64]byte', tag: '', embedded: false },
  17      { name: 'len', type: 'int', tag: '', embedded: false },
  18      { name: 'tot', type: 'uint64', tag: '', embedded: false },
  19    ],
  20    zero: () => ({ h: $rt.builtin.makeSlice(8, 8, 0), buf: $rt.builtin.makeSlice(64, 64, 0), len: 0, tot: 0 }),
  21  });
  22  export function init() {
  23    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, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72;
  24    $t0_1 = k.$get().addr(0);
  25    $t1_2 = k.$get().addr(1);
  26    $t2_3 = k.$get().addr(2);
  27    $t3_4 = k.$get().addr(3);
  28    $t4_5 = k.$get().addr(4);
  29    $t5_6 = k.$get().addr(5);
  30    $t6_7 = k.$get().addr(6);
  31    $t7_8 = k.$get().addr(7);
  32    $t8_9 = k.$get().addr(8);
  33    $t9_10 = k.$get().addr(9);
  34    $t10_11 = k.$get().addr(10);
  35    $t11_12 = k.$get().addr(11);
  36    $t12_13 = k.$get().addr(12);
  37    $t13_14 = k.$get().addr(13);
  38    $t14_15 = k.$get().addr(14);
  39    $t15_16 = k.$get().addr(15);
  40    $t16_17 = k.$get().addr(16);
  41    $t17_18 = k.$get().addr(17);
  42    $t18_19 = k.$get().addr(18);
  43    $t19_20 = k.$get().addr(19);
  44    $t20_21 = k.$get().addr(20);
  45    $t21_22 = k.$get().addr(21);
  46    $t22_23 = k.$get().addr(22);
  47    $t23_24 = k.$get().addr(23);
  48    $t24_25 = k.$get().addr(24);
  49    $t25_26 = k.$get().addr(25);
  50    $t26_27 = k.$get().addr(26);
  51    $t27_28 = k.$get().addr(27);
  52    $t28_29 = k.$get().addr(28);
  53    $t29_30 = k.$get().addr(29);
  54    $t30_31 = k.$get().addr(30);
  55    $t31_32 = k.$get().addr(31);
  56    $t32_33 = k.$get().addr(32);
  57    $t33_34 = k.$get().addr(33);
  58    $t34_35 = k.$get().addr(34);
  59    $t35_36 = k.$get().addr(35);
  60    $t36_37 = k.$get().addr(36);
  61    $t37_38 = k.$get().addr(37);
  62    $t38_39 = k.$get().addr(38);
  63    $t39_40 = k.$get().addr(39);
  64    $t40_41 = k.$get().addr(40);
  65    $t41_42 = k.$get().addr(41);
  66    $t42_43 = k.$get().addr(42);
  67    $t43_44 = k.$get().addr(43);
  68    $t44_45 = k.$get().addr(44);
  69    $t45_46 = k.$get().addr(45);
  70    $t46_47 = k.$get().addr(46);
  71    $t47_48 = k.$get().addr(47);
  72    $t48_49 = k.$get().addr(48);
  73    $t49_50 = k.$get().addr(49);
  74    $t50_51 = k.$get().addr(50);
  75    $t51_52 = k.$get().addr(51);
  76    $t52_53 = k.$get().addr(52);
  77    $t53_54 = k.$get().addr(53);
  78    $t54_55 = k.$get().addr(54);
  79    $t55_56 = k.$get().addr(55);
  80    $t56_57 = k.$get().addr(56);
  81    $t57_58 = k.$get().addr(57);
  82    $t58_59 = k.$get().addr(58);
  83    $t59_60 = k.$get().addr(59);
  84    $t60_61 = k.$get().addr(60);
  85    $t61_62 = k.$get().addr(61);
  86    $t62_63 = k.$get().addr(62);
  87    $t63_64 = k.$get().addr(63);
  88    $t0_1.$set(1116352408);
  89    $t1_2.$set(1899447441);
  90    $t2_3.$set(3049323471);
  91    $t3_4.$set(3921009573);
  92    $t4_5.$set(961987163);
  93    $t5_6.$set(1508970993);
  94    $t6_7.$set(2453635748);
  95    $t7_8.$set(2870763221);
  96    $t8_9.$set(3624381080);
  97    $t9_10.$set(310598401);
  98    $t10_11.$set(607225278);
  99    $t11_12.$set(1426881987);
 100    $t12_13.$set(1925078388);
 101    $t13_14.$set(2162078206);
 102    $t14_15.$set(2614888103);
 103    $t15_16.$set(3248222580);
 104    $t16_17.$set(3835390401);
 105    $t17_18.$set(4022224774);
 106    $t18_19.$set(264347078);
 107    $t19_20.$set(604807628);
 108    $t20_21.$set(770255983);
 109    $t21_22.$set(1249150122);
 110    $t22_23.$set(1555081692);
 111    $t23_24.$set(1996064986);
 112    $t24_25.$set(2554220882);
 113    $t25_26.$set(2821834349);
 114    $t26_27.$set(2952996808);
 115    $t27_28.$set(3210313671);
 116    $t28_29.$set(3336571891);
 117    $t29_30.$set(3584528711);
 118    $t30_31.$set(113926993);
 119    $t31_32.$set(338241895);
 120    $t32_33.$set(666307205);
 121    $t33_34.$set(773529912);
 122    $t34_35.$set(1294757372);
 123    $t35_36.$set(1396182291);
 124    $t36_37.$set(1695183700);
 125    $t37_38.$set(1986661051);
 126    $t38_39.$set(2177026350);
 127    $t39_40.$set(2456956037);
 128    $t40_41.$set(2730485921);
 129    $t41_42.$set(2820302411);
 130    $t42_43.$set(3259730800);
 131    $t43_44.$set(3345764771);
 132    $t44_45.$set(3516065817);
 133    $t45_46.$set(3600352804);
 134    $t46_47.$set(4094571909);
 135    $t47_48.$set(275423344);
 136    $t48_49.$set(430227734);
 137    $t49_50.$set(506948616);
 138    $t50_51.$set(659060556);
 139    $t51_52.$set(883997877);
 140    $t52_53.$set(958139571);
 141    $t53_54.$set(1322822218);
 142    $t54_55.$set(1537002063);
 143    $t55_56.$set(1747873779);
 144    $t56_57.$set(1955562222);
 145    $t57_58.$set(2024104815);
 146    $t58_59.$set(2227730452);
 147    $t59_60.$set(2361852424);
 148    $t60_61.$set(2428436474);
 149    $t61_62.$set(2756734187);
 150    $t62_63.$set(3204031479);
 151    $t63_64.$set(3329325298);
 152    $t64_65 = init0.$get().addr(0);
 153    $t65_66 = init0.$get().addr(1);
 154    $t66_67 = init0.$get().addr(2);
 155    $t67_68 = init0.$get().addr(3);
 156    $t68_69 = init0.$get().addr(4);
 157    $t69_70 = init0.$get().addr(5);
 158    $t70_71 = init0.$get().addr(6);
 159    $t71_72 = init0.$get().addr(7);
 160    $t64_65.$set(1779033703);
 161    $t65_66.$set(3144134277);
 162    $t66_67.$set(1013904242);
 163    $t67_68.$set(2773480762);
 164    $t68_69.$set(1359893119);
 165    $t69_70.$set(2600822924);
 166    $t70_71.$set(528734635);
 167    $t71_72.$set(1541459225);
 168    return;
 169  }
 170  
 171  export function Sum(data) {
 172    let $t0_1, $t1_2, $t2_3, $t3_4;
 173    $t0_1 = { $value: { h: $rt.builtin.makeSlice(8, 8, 0), buf: $rt.builtin.makeSlice(64, 64, 0), len: 0, tot: 0 }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
 174    $t1_2 = digest$Reset($t0_1);
 175    $t2_3 = digest$Write($t0_1, data);
 176    $t3_4 = digest$Sum($t0_1);
 177    return $t3_4;
 178  }
 179  
 180  export function SumHex(data) {
 181    let $t0_1, $t1_2, $t2_3, $t3_4;
 182    $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 183    $t1_2 = Sum(data);
 184    $t0_1.$set($rt.builtin.cloneValue($t1_2));
 185    $t2_3 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
 186    $t3_4 = bytesToHex($t2_3);
 187    return $t3_4;
 188  }
 189  
 190  export function block(h, data) {
 191    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, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97, $t97_98, $t98_99, $t99_100, $t100_101, $t101_102, $t102_103, $t103_104, $t104_105, $t105_106, $t106_107, $t107_108, $t108_109, $t109_110, $t110_111, $t111_112, $t112_113, $t113_114, $t114_115, $t115_116, $t116_117, $t117_118, $t118_119, $t119_120, $t120_121, $t121_122, $t122_123, $t123_124, $t124_125, $t125_126, $t126_127, $t127_128, $t128_129, $t129_130, $t130_131, $t131_132, $t132_133, $t133_134, $t134_135, $t135_136, $t136_137, $t137_138, $t138_139, $t139_140, $t140_141, $t141_142, $t142_143, $t143_144, $t144_145, $t145_146, $t146_147, $t147_148, $t148_149, $t149_150, $t150_151, $t151_152, $t152_153, $t153_154, $t154_155, $t155_156, $t156_157;
 192    let $block = 0;
 193    while (true) {
 194      switch ($block) {
 195        case 0: {
 196          $t0_1 = { $value: $rt.builtin.makeSlice(64, 64, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 197          $t1_2 = 0;
 198          $block = 1; break;
 199          break;
 200        }
 201        case 1: {
 202          $t2_3 = ($t1_2 < 16);
 203          if ($t2_3) {
 204            $block = 2; break;
 205          }
 206          else {
 207            $block = 3; break;
 208          }
 209          break;
 210        }
 211        case 2: {
 212          $t3_4 = ($t1_2 * 4);
 213          $t4_5 = data.addr($t3_4);
 214          $t5_6 = $t4_5.$get();
 215          $t6_7 = ($t5_6 >>> 0);
 216          $t7_8 = (($t6_7 << 24) >>> 0);
 217          $t8_9 = ($t3_4 + 1);
 218          $t9_10 = data.addr($t8_9);
 219          $t10_11 = $t9_10.$get();
 220          $t11_12 = ($t10_11 >>> 0);
 221          $t12_13 = (($t11_12 << 16) >>> 0);
 222          $t13_14 = (($t7_8 | $t12_13) >>> 0);
 223          $t14_15 = ($t3_4 + 2);
 224          $t15_16 = data.addr($t14_15);
 225          $t16_17 = $t15_16.$get();
 226          $t17_18 = ($t16_17 >>> 0);
 227          $t18_19 = (($t17_18 << 8) >>> 0);
 228          $t19_20 = (($t13_14 | $t18_19) >>> 0);
 229          $t20_21 = ($t3_4 + 3);
 230          $t21_22 = data.addr($t20_21);
 231          $t22_23 = $t21_22.$get();
 232          $t23_24 = ($t22_23 >>> 0);
 233          $t24_25 = (($t19_20 | $t23_24) >>> 0);
 234          $t25_26 = $t0_1.$get().addr($t1_2);
 235          $t25_26.$set($t24_25);
 236          $t26_27 = ($t1_2 + 1);
 237          $t1_2 = $t26_27;
 238          $block = 1; break;
 239          break;
 240        }
 241        case 3: {
 242          $t27_28 = 16;
 243          $block = 4; break;
 244          break;
 245        }
 246        case 4: {
 247          $t28_29 = ($t27_28 < 64);
 248          if ($t28_29) {
 249            $block = 5; break;
 250          }
 251          else {
 252            $block = 6; break;
 253          }
 254          break;
 255        }
 256        case 5: {
 257          $t29_30 = ($t27_28 - 15);
 258          $t30_31 = $t0_1.$get().addr($t29_30);
 259          $t31_32 = $t30_31.$get();
 260          $t32_33 = rotr($t31_32, 7);
 261          $t33_34 = ($t27_28 - 15);
 262          $t34_35 = $t0_1.$get().addr($t33_34);
 263          $t35_36 = $t34_35.$get();
 264          $t36_37 = rotr($t35_36, 18);
 265          $t37_38 = (($t32_33 ^ $t36_37) >>> 0);
 266          $t38_39 = ($t27_28 - 15);
 267          $t39_40 = $t0_1.$get().addr($t38_39);
 268          $t40_41 = $t39_40.$get();
 269          $t41_42 = ($t40_41 >>> 3);
 270          $t42_43 = (($t37_38 ^ $t41_42) >>> 0);
 271          $t43_44 = ($t27_28 - 2);
 272          $t44_45 = $t0_1.$get().addr($t43_44);
 273          $t45_46 = $t44_45.$get();
 274          $t46_47 = rotr($t45_46, 17);
 275          $t47_48 = ($t27_28 - 2);
 276          $t48_49 = $t0_1.$get().addr($t47_48);
 277          $t49_50 = $t48_49.$get();
 278          $t50_51 = rotr($t49_50, 19);
 279          $t51_52 = (($t46_47 ^ $t50_51) >>> 0);
 280          $t52_53 = ($t27_28 - 2);
 281          $t53_54 = $t0_1.$get().addr($t52_53);
 282          $t54_55 = $t53_54.$get();
 283          $t55_56 = ($t54_55 >>> 10);
 284          $t56_57 = (($t51_52 ^ $t55_56) >>> 0);
 285          $t57_58 = ($t27_28 - 16);
 286          $t58_59 = $t0_1.$get().addr($t57_58);
 287          $t59_60 = $t58_59.$get();
 288          $t60_61 = (($t59_60 + $t42_43) >>> 0);
 289          $t61_62 = ($t27_28 - 7);
 290          $t62_63 = $t0_1.$get().addr($t61_62);
 291          $t63_64 = $t62_63.$get();
 292          $t64_65 = (($t60_61 + $t63_64) >>> 0);
 293          $t65_66 = (($t64_65 + $t56_57) >>> 0);
 294          $t66_67 = $t0_1.$get().addr($t27_28);
 295          $t66_67.$set($t65_66);
 296          $t67_68 = ($t27_28 + 1);
 297          $t27_28 = $t67_68;
 298          $block = 4; break;
 299          break;
 300        }
 301        case 6: {
 302          $t68_69 = h.$get().addr(0);
 303          $t69_70 = $t68_69.$get();
 304          $t70_71 = h.$get().addr(1);
 305          $t71_72 = $t70_71.$get();
 306          $t72_73 = h.$get().addr(2);
 307          $t73_74 = $t72_73.$get();
 308          $t74_75 = h.$get().addr(3);
 309          $t75_76 = $t74_75.$get();
 310          $t76_77 = h.$get().addr(4);
 311          $t77_78 = $t76_77.$get();
 312          $t78_79 = h.$get().addr(5);
 313          $t79_80 = $t78_79.$get();
 314          $t80_81 = h.$get().addr(6);
 315          $t81_82 = $t80_81.$get();
 316          $t82_83 = h.$get().addr(7);
 317          $t83_84 = $t82_83.$get();
 318          $t84_85 = $t69_70;
 319          $t85_86 = $t71_72;
 320          $t86_87 = $t73_74;
 321          $t87_88 = $t75_76;
 322          $t88_89 = $t77_78;
 323          $t89_90 = $t79_80;
 324          $t90_91 = $t81_82;
 325          $t91_92 = $t83_84;
 326          $t92_93 = 0;
 327          $block = 7; break;
 328          break;
 329        }
 330        case 7: {
 331          $t93_94 = ($t92_93 < 64);
 332          if ($t93_94) {
 333            $block = 8; break;
 334          }
 335          else {
 336            $block = 9; break;
 337          }
 338          break;
 339        }
 340        case 8: {
 341          $t94_95 = rotr($t88_89, 6);
 342          $t95_96 = rotr($t88_89, 11);
 343          $t96_97 = (($t94_95 ^ $t95_96) >>> 0);
 344          $t97_98 = rotr($t88_89, 25);
 345          $t98_99 = (($t96_97 ^ $t97_98) >>> 0);
 346          $t99_100 = (($t88_89 & $t89_90) >>> 0);
 347          $t100_101 = ~$t88_89;
 348          $t101_102 = (($t100_101 & $t90_91) >>> 0);
 349          $t102_103 = (($t99_100 ^ $t101_102) >>> 0);
 350          $t103_104 = (($t91_92 + $t98_99) >>> 0);
 351          $t104_105 = (($t103_104 + $t102_103) >>> 0);
 352          $t105_106 = k.$get().addr($t92_93);
 353          $t106_107 = $t105_106.$get();
 354          $t107_108 = (($t104_105 + $t106_107) >>> 0);
 355          $t108_109 = $t0_1.$get().addr($t92_93);
 356          $t109_110 = $t108_109.$get();
 357          $t110_111 = (($t107_108 + $t109_110) >>> 0);
 358          $t111_112 = rotr($t84_85, 2);
 359          $t112_113 = rotr($t84_85, 13);
 360          $t113_114 = (($t111_112 ^ $t112_113) >>> 0);
 361          $t114_115 = rotr($t84_85, 22);
 362          $t115_116 = (($t113_114 ^ $t114_115) >>> 0);
 363          $t116_117 = (($t84_85 & $t85_86) >>> 0);
 364          $t117_118 = (($t84_85 & $t86_87) >>> 0);
 365          $t118_119 = (($t116_117 ^ $t117_118) >>> 0);
 366          $t119_120 = (($t85_86 & $t86_87) >>> 0);
 367          $t120_121 = (($t118_119 ^ $t119_120) >>> 0);
 368          $t121_122 = (($t115_116 + $t120_121) >>> 0);
 369          $t122_123 = (($t87_88 + $t110_111) >>> 0);
 370          $t123_124 = (($t110_111 + $t121_122) >>> 0);
 371          $t124_125 = ($t92_93 + 1);
 372          let $phi0 = $t123_124;
 373          let $phi1 = $t84_85;
 374          let $phi2 = $t85_86;
 375          let $phi3 = $t86_87;
 376          let $phi4 = $t122_123;
 377          let $phi5 = $t88_89;
 378          let $phi6 = $t89_90;
 379          let $phi7 = $t90_91;
 380          let $phi8 = $t124_125;
 381          $t84_85 = $phi0;
 382          $t85_86 = $phi1;
 383          $t86_87 = $phi2;
 384          $t87_88 = $phi3;
 385          $t88_89 = $phi4;
 386          $t89_90 = $phi5;
 387          $t90_91 = $phi6;
 388          $t91_92 = $phi7;
 389          $t92_93 = $phi8;
 390          $block = 7; break;
 391          break;
 392        }
 393        case 9: {
 394          $t125_126 = h.$get().addr(0);
 395          $t126_127 = $t125_126.$get();
 396          $t127_128 = (($t126_127 + $t84_85) >>> 0);
 397          $t128_129 = h.$get().addr(0);
 398          $t128_129.$set($t127_128);
 399          $t129_130 = h.$get().addr(1);
 400          $t130_131 = $t129_130.$get();
 401          $t131_132 = (($t130_131 + $t85_86) >>> 0);
 402          $t132_133 = h.$get().addr(1);
 403          $t132_133.$set($t131_132);
 404          $t133_134 = h.$get().addr(2);
 405          $t134_135 = $t133_134.$get();
 406          $t135_136 = (($t134_135 + $t86_87) >>> 0);
 407          $t136_137 = h.$get().addr(2);
 408          $t136_137.$set($t135_136);
 409          $t137_138 = h.$get().addr(3);
 410          $t138_139 = $t137_138.$get();
 411          $t139_140 = (($t138_139 + $t87_88) >>> 0);
 412          $t140_141 = h.$get().addr(3);
 413          $t140_141.$set($t139_140);
 414          $t141_142 = h.$get().addr(4);
 415          $t142_143 = $t141_142.$get();
 416          $t143_144 = (($t142_143 + $t88_89) >>> 0);
 417          $t144_145 = h.$get().addr(4);
 418          $t144_145.$set($t143_144);
 419          $t145_146 = h.$get().addr(5);
 420          $t146_147 = $t145_146.$get();
 421          $t147_148 = (($t146_147 + $t89_90) >>> 0);
 422          $t148_149 = h.$get().addr(5);
 423          $t148_149.$set($t147_148);
 424          $t149_150 = h.$get().addr(6);
 425          $t150_151 = $t149_150.$get();
 426          $t151_152 = (($t150_151 + $t90_91) >>> 0);
 427          $t152_153 = h.$get().addr(6);
 428          $t152_153.$set($t151_152);
 429          $t153_154 = h.$get().addr(7);
 430          $t154_155 = $t153_154.$get();
 431          $t155_156 = (($t154_155 + $t91_92) >>> 0);
 432          $t156_157 = h.$get().addr(7);
 433          $t156_157.$set($t155_156);
 434          return;
 435          break;
 436        }
 437      }
 438    }
 439  }
 440  
 441  export function rotr(x, n) {
 442    let $t0_1, $t1_2, $t2_3, $t3_4;
 443    $t0_1 = (x >>> n);
 444    $t1_2 = (32 - n);
 445    $t2_3 = ((x << $t1_2) >>> 0);
 446    $t3_4 = (($t0_1 | $t2_3) >>> 0);
 447    return $t3_4;
 448  }
 449  
 450  export function bytesToHex(b) {
 451    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;
 452    let $block = 0;
 453    while (true) {
 454      switch ($block) {
 455        case 0: {
 456          $t0_1 = $rt.builtin.len(b);
 457          $t1_2 = ($t0_1 * 2);
 458          $t2_3 = $rt.builtin.makeSlice($t1_2, $t1_2, 0);
 459          $t3_4 = $rt.builtin.len(b);
 460          $t4_5 = -1;
 461          $block = 1; break;
 462          break;
 463        }
 464        case 1: {
 465          $t5_6 = ($t4_5 + 1);
 466          $t6_7 = ($t5_6 < $t3_4);
 467          if ($t6_7) {
 468            $block = 2; break;
 469          }
 470          else {
 471            $block = 3; break;
 472          }
 473          break;
 474        }
 475        case 2: {
 476          $t7_8 = b.addr($t5_6);
 477          $t8_9 = $t7_8.$get();
 478          $t9_10 = ($t5_6 * 2);
 479          $t10_11 = (($t8_9 & 0xFF) >> 4);
 480          $rt.runtime.boundsCheck($t10_11, $rt.builtin.byteLen('0123456789abcdef'));
 481          $t11_12 = $rt.builtin.stringByteAt('0123456789abcdef', $t10_11);
 482          $t12_13 = $t2_3.addr($t9_10);
 483          $t12_13.$set($t11_12);
 484          $t13_14 = ($t5_6 * 2);
 485          $t14_15 = ($t13_14 + 1);
 486          $t15_16 = ($t8_9 & 15);
 487          $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen('0123456789abcdef'));
 488          $t16_17 = $rt.builtin.stringByteAt('0123456789abcdef', $t15_16);
 489          $t17_18 = $t2_3.addr($t14_15);
 490          $t17_18.$set($t16_17);
 491          $t4_5 = $t5_6;
 492          $block = 1; break;
 493          break;
 494        }
 495        case 3: {
 496          $t18_19 = $rt.builtin.bytesToString($t2_3);
 497          return $t18_19;
 498          break;
 499        }
 500      }
 501    }
 502  }
 503  
 504  export function digest$Reset(d) {
 505    let $t0_1, $t1_2, $t2_3, $t3_4;
 506    $t0_1 = init0.$get();
 507    $t1_2 = { $get() { return d.$get().h; }, $set(v) { const obj = d.$get(); obj.h = v; d.$set(obj); } };
 508    $t1_2.$set($rt.builtin.cloneValue($t0_1));
 509    $t2_3 = { $get() { return d.$get().len; }, $set(v) { const obj = d.$get(); obj.len = v; d.$set(obj); } };
 510    $t2_3.$set(0);
 511    $t3_4 = { $get() { return d.$get().tot; }, $set(v) { const obj = d.$get(); obj.tot = v; d.$set(obj); } };
 512    $t3_4.$set(0);
 513    return;
 514  }
 515  
 516  $rt.types.getType('common/crypto/sha256.digest')?.methods?.set('Reset', digest$Reset);
 517  export function digest$Sum(d) {
 518    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, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79;
 519    let $block = 0;
 520    while (true) {
 521      switch ($block) {
 522        case 0: {
 523          $t0_1 = { $value: $rt.builtin.makeSlice(64, 64, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 524          $t1_2 = $t0_1.$get().addr(0);
 525          $t1_2.$set(128);
 526          $t2_3 = { $get() { return d.$get().tot; }, $set(v) { const obj = d.$get(); obj.tot = v; d.$set(obj); } };
 527          $t3_4 = $t2_3.$get();
 528          $t4_5 = ($t3_4 * 8);
 529          $t5_6 = { $get() { return d.$get().len; }, $set(v) { const obj = d.$get(); obj.len = v; d.$set(obj); } };
 530          $t6_7 = $t5_6.$get();
 531          $t7_8 = ($t6_7 < 56);
 532          if ($t7_8) {
 533            $block = 1; break;
 534          }
 535          else {
 536            $block = 3; break;
 537          }
 538          break;
 539        }
 540        case 1: {
 541          $t8_9 = { $get() { return d.$get().len; }, $set(v) { const obj = d.$get(); obj.len = v; d.$set(obj); } };
 542          $t9_10 = $t8_9.$get();
 543          $t10_11 = (56 - $t9_10);
 544          $t11_12 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, $t10_11, undefined);
 545          $t12_13 = digest$Write(d, $t11_12);
 546          $block = 2; break;
 547          break;
 548        }
 549        case 2: {
 550          $t13_14 = { $value: $rt.builtin.makeSlice(8, 8, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 551          $t14_15 = Math.trunc($t4_5 / (2 ** 56));
 552          $t15_16 = ($t14_15 & 0xFF);
 553          $t16_17 = $t13_14.$get().addr(0);
 554          $t16_17.$set($t15_16);
 555          $t17_18 = Math.trunc($t4_5 / (2 ** 48));
 556          $t18_19 = ($t17_18 & 0xFF);
 557          $t19_20 = $t13_14.$get().addr(1);
 558          $t19_20.$set($t18_19);
 559          $t20_21 = Math.trunc($t4_5 / (2 ** 40));
 560          $t21_22 = ($t20_21 & 0xFF);
 561          $t22_23 = $t13_14.$get().addr(2);
 562          $t22_23.$set($t21_22);
 563          $t23_24 = Math.trunc($t4_5 / (2 ** 32));
 564          $t24_25 = ($t23_24 & 0xFF);
 565          $t25_26 = $t13_14.$get().addr(3);
 566          $t25_26.$set($t24_25);
 567          $t26_27 = Math.trunc($t4_5 / (2 ** 24));
 568          $t27_28 = ($t26_27 & 0xFF);
 569          $t28_29 = $t13_14.$get().addr(4);
 570          $t28_29.$set($t27_28);
 571          $t29_30 = Math.trunc($t4_5 / (2 ** 16));
 572          $t30_31 = ($t29_30 & 0xFF);
 573          $t31_32 = $t13_14.$get().addr(5);
 574          $t31_32.$set($t30_31);
 575          $t32_33 = Math.trunc($t4_5 / (2 ** 8));
 576          $t33_34 = ($t32_33 & 0xFF);
 577          $t34_35 = $t13_14.$get().addr(6);
 578          $t34_35.$set($t33_34);
 579          $t35_36 = ($t4_5 & 0xFF);
 580          $t36_37 = $t13_14.$get().addr(7);
 581          $t36_37.$set($t35_36);
 582          $t37_38 = $rt.builtin.sliceSlice($t13_14.$get(), undefined, undefined, undefined);
 583          $t38_39 = digest$Write(d, $t37_38);
 584          $t39_40 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 585          $t45_46 = 0;
 586          $block = 4; break;
 587          break;
 588        }
 589        case 3: {
 590          $t40_41 = { $get() { return d.$get().len; }, $set(v) { const obj = d.$get(); obj.len = v; d.$set(obj); } };
 591          $t41_42 = $t40_41.$get();
 592          $t42_43 = (120 - $t41_42);
 593          $t43_44 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, $t42_43, undefined);
 594          $t44_45 = digest$Write(d, $t43_44);
 595          $block = 2; break;
 596          break;
 597        }
 598        case 4: {
 599          $t46_47 = ($t45_46 < 8);
 600          if ($t46_47) {
 601            $block = 5; break;
 602          }
 603          else {
 604            $block = 6; break;
 605          }
 606          break;
 607        }
 608        case 5: {
 609          $t47_48 = ($t45_46 * 4);
 610          $t48_49 = { $get() { return d.$get().h; }, $set(v) { const obj = d.$get(); obj.h = v; d.$set(obj); } };
 611          $t49_50 = $t48_49.$get().addr($t45_46);
 612          $t50_51 = $t49_50.$get();
 613          $t51_52 = ($t50_51 >>> 24);
 614          $t52_53 = ($t51_52 & 0xFF);
 615          $t53_54 = $t39_40.$get().addr($t47_48);
 616          $t53_54.$set($t52_53);
 617          $t54_55 = ($t45_46 * 4);
 618          $t55_56 = ($t54_55 + 1);
 619          $t56_57 = { $get() { return d.$get().h; }, $set(v) { const obj = d.$get(); obj.h = v; d.$set(obj); } };
 620          $t57_58 = $t56_57.$get().addr($t45_46);
 621          $t58_59 = $t57_58.$get();
 622          $t59_60 = ($t58_59 >>> 16);
 623          $t60_61 = ($t59_60 & 0xFF);
 624          $t61_62 = $t39_40.$get().addr($t55_56);
 625          $t61_62.$set($t60_61);
 626          $t62_63 = ($t45_46 * 4);
 627          $t63_64 = ($t62_63 + 2);
 628          $t64_65 = { $get() { return d.$get().h; }, $set(v) { const obj = d.$get(); obj.h = v; d.$set(obj); } };
 629          $t65_66 = $t64_65.$get().addr($t45_46);
 630          $t66_67 = $t65_66.$get();
 631          $t67_68 = ($t66_67 >>> 8);
 632          $t68_69 = ($t67_68 & 0xFF);
 633          $t69_70 = $t39_40.$get().addr($t63_64);
 634          $t69_70.$set($t68_69);
 635          $t70_71 = ($t45_46 * 4);
 636          $t71_72 = ($t70_71 + 3);
 637          $t72_73 = { $get() { return d.$get().h; }, $set(v) { const obj = d.$get(); obj.h = v; d.$set(obj); } };
 638          $t73_74 = $t72_73.$get().addr($t45_46);
 639          $t74_75 = $t73_74.$get();
 640          $t75_76 = ($t74_75 & 0xFF);
 641          $t76_77 = $t39_40.$get().addr($t71_72);
 642          $t76_77.$set($t75_76);
 643          $t77_78 = ($t45_46 + 1);
 644          $t45_46 = $t77_78;
 645          $block = 4; break;
 646          break;
 647        }
 648        case 6: {
 649          $t78_79 = $t39_40.$get();
 650          return $t78_79;
 651          break;
 652        }
 653      }
 654    }
 655  }
 656  
 657  $rt.types.getType('common/crypto/sha256.digest')?.methods?.set('Sum', digest$Sum);
 658  export function digest$Write(d, p) {
 659    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;
 660    let $block = 0;
 661    while (true) {
 662      switch ($block) {
 663        case 0: {
 664          $t0_1 = $rt.builtin.len(p);
 665          $t1_2 = $t0_1;
 666          $t2_3 = { $get() { return d.$get().tot; }, $set(v) { const obj = d.$get(); obj.tot = v; d.$set(obj); } };
 667          $t3_4 = $t2_3.$get();
 668          $t4_5 = ($t3_4 + $t1_2);
 669          $t5_6 = { $get() { return d.$get().tot; }, $set(v) { const obj = d.$get(); obj.tot = v; d.$set(obj); } };
 670          $t5_6.$set($t4_5);
 671          $t6_7 = { $get() { return d.$get().len; }, $set(v) { const obj = d.$get(); obj.len = v; d.$set(obj); } };
 672          $t7_8 = $t6_7.$get();
 673          $t8_9 = ($t7_8 > 0);
 674          if ($t8_9) {
 675            $block = 1; break;
 676          }
 677          else {
 678            $t33_34 = p;
 679            $block = 5; break;
 680          }
 681          break;
 682        }
 683        case 1: {
 684          $t9_10 = { $get() { return d.$get().buf; }, $set(v) { const obj = d.$get(); obj.buf = v; d.$set(obj); } };
 685          $t10_11 = { $get() { return d.$get().len; }, $set(v) { const obj = d.$get(); obj.len = v; d.$set(obj); } };
 686          $t11_12 = $t10_11.$get();
 687          $t12_13 = $rt.builtin.sliceSlice($t9_10.$get(), $t11_12, undefined, undefined);
 688          $t13_14 = $rt.builtin.copy($t12_13, p);
 689          $t14_15 = { $get() { return d.$get().len; }, $set(v) { const obj = d.$get(); obj.len = v; d.$set(obj); } };
 690          $t15_16 = $t14_15.$get();
 691          $t16_17 = ($t15_16 + $t13_14);
 692          $t17_18 = { $get() { return d.$get().len; }, $set(v) { const obj = d.$get(); obj.len = v; d.$set(obj); } };
 693          $t17_18.$set($t16_17);
 694          $t18_19 = $rt.builtin.sliceSlice(p, $t13_14, undefined, undefined);
 695          $t19_20 = { $get() { return d.$get().len; }, $set(v) { const obj = d.$get(); obj.len = v; d.$set(obj); } };
 696          $t20_21 = $t19_20.$get();
 697          $t21_22 = ($t20_21 === 64);
 698          if ($t21_22) {
 699            $block = 2; break;
 700          }
 701          else {
 702            $t33_34 = $t18_19;
 703            $block = 5; break;
 704          }
 705          break;
 706        }
 707        case 2: {
 708          $t22_23 = { $get() { return d.$get().h; }, $set(v) { const obj = d.$get(); obj.h = v; d.$set(obj); } };
 709          $t23_24 = { $get() { return d.$get().buf; }, $set(v) { const obj = d.$get(); obj.buf = v; d.$set(obj); } };
 710          $t24_25 = $rt.builtin.sliceSlice($t23_24.$get(), undefined, undefined, undefined);
 711          $t25_26 = block($t22_23, $t24_25);
 712          $t26_27 = { $get() { return d.$get().len; }, $set(v) { const obj = d.$get(); obj.len = v; d.$set(obj); } };
 713          $t26_27.$set(0);
 714          $t33_34 = $t18_19;
 715          $block = 5; break;
 716          break;
 717        }
 718        case 3: {
 719          $t27_28 = { $get() { return d.$get().h; }, $set(v) { const obj = d.$get(); obj.h = v; d.$set(obj); } };
 720          $t28_29 = $rt.builtin.sliceSlice($t33_34, undefined, 64, undefined);
 721          $t29_30 = block($t27_28, $t28_29);
 722          $t30_31 = $rt.builtin.sliceSlice($t33_34, 64, undefined, undefined);
 723          $t33_34 = $t30_31;
 724          $block = 5; break;
 725          break;
 726        }
 727        case 4: {
 728          $t31_32 = $rt.builtin.len($t33_34);
 729          $t32_33 = ($t31_32 > 0);
 730          if ($t32_33) {
 731            $block = 6; break;
 732          }
 733          else {
 734            $block = 7; break;
 735          }
 736          break;
 737        }
 738        case 5: {
 739          $t34_35 = $rt.builtin.len($t33_34);
 740          $t35_36 = ($t34_35 >= 64);
 741          if ($t35_36) {
 742            $block = 3; break;
 743          }
 744          else {
 745            $block = 4; break;
 746          }
 747          break;
 748        }
 749        case 6: {
 750          $t36_37 = { $get() { return d.$get().buf; }, $set(v) { const obj = d.$get(); obj.buf = v; d.$set(obj); } };
 751          $t37_38 = $rt.builtin.sliceSlice($t36_37.$get(), undefined, undefined, undefined);
 752          $t38_39 = $rt.builtin.copy($t37_38, $t33_34);
 753          $t39_40 = { $get() { return d.$get().len; }, $set(v) { const obj = d.$get(); obj.len = v; d.$set(obj); } };
 754          $t39_40.$set($t38_39);
 755          $block = 7; break;
 756          break;
 757        }
 758        case 7: {
 759          return;
 760          break;
 761        }
 762      }
 763    }
 764  }
 765  
 766  $rt.types.getType('common/crypto/sha256.digest')?.methods?.set('Write', digest$Write);
 767