Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  var f = function (s) {
  2.     var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,
  3.         b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,
  4.         b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,
  5.         b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;
  6.     for (n = 0; n < 48; n += 2) {
  7.       c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];
  8.       c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];
  9.       c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];
  10.       c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];
  11.       c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];
  12.       c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];
  13.       c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];
  14.       c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];
  15.       c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];
  16.       c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];
  17.  
  18.       h = c8 ^ ((c2 << 1) | (c3 >>> 31));
  19.       l = c9 ^ ((c3 << 1) | (c2 >>> 31));
  20.       s[0] ^= h;
  21.       s[1] ^= l;
  22.       s[10] ^= h;
  23.       s[11] ^= l;
  24.       s[20] ^= h;
  25.       s[21] ^= l;
  26.       s[30] ^= h;
  27.       s[31] ^= l;
  28.       s[40] ^= h;
  29.       s[41] ^= l;
  30.       h = c0 ^ ((c4 << 1) | (c5 >>> 31));
  31.       l = c1 ^ ((c5 << 1) | (c4 >>> 31));
  32.       s[2] ^= h;
  33.       s[3] ^= l;
  34.       s[12] ^= h;
  35.       s[13] ^= l;
  36.       s[22] ^= h;
  37.       s[23] ^= l;
  38.       s[32] ^= h;
  39.       s[33] ^= l;
  40.       s[42] ^= h;
  41.       s[43] ^= l;
  42.       h = c2 ^ ((c6 << 1) | (c7 >>> 31));
  43.       l = c3 ^ ((c7 << 1) | (c6 >>> 31));
  44.       s[4] ^= h;
  45.       s[5] ^= l;
  46.       s[14] ^= h;
  47.       s[15] ^= l;
  48.       s[24] ^= h;
  49.       s[25] ^= l;
  50.       s[34] ^= h;
  51.       s[35] ^= l;
  52.       s[44] ^= h;
  53.       s[45] ^= l;
  54.       h = c4 ^ ((c8 << 1) | (c9 >>> 31));
  55.       l = c5 ^ ((c9 << 1) | (c8 >>> 31));
  56.       s[6] ^= h;
  57.       s[7] ^= l;
  58.       s[16] ^= h;
  59.       s[17] ^= l;
  60.       s[26] ^= h;
  61.       s[27] ^= l;
  62.       s[36] ^= h;
  63.       s[37] ^= l;
  64.       s[46] ^= h;
  65.       s[47] ^= l;
  66.       h = c6 ^ ((c0 << 1) | (c1 >>> 31));
  67.       l = c7 ^ ((c1 << 1) | (c0 >>> 31));
  68.       s[8] ^= h;
  69.       s[9] ^= l;
  70.       s[18] ^= h;
  71.       s[19] ^= l;
  72.       s[28] ^= h;
  73.       s[29] ^= l;
  74.       s[38] ^= h;
  75.       s[39] ^= l;
  76.       s[48] ^= h;
  77.       s[49] ^= l;
  78.  
  79.       b0 = s[0];
  80.       b1 = s[1];
  81.       b32 = (s[11] << 4) | (s[10] >>> 28);
  82.       b33 = (s[10] << 4) | (s[11] >>> 28);
  83.       b14 = (s[20] << 3) | (s[21] >>> 29);
  84.       b15 = (s[21] << 3) | (s[20] >>> 29);
  85.       b46 = (s[31] << 9) | (s[30] >>> 23);
  86.       b47 = (s[30] << 9) | (s[31] >>> 23);
  87.       b28 = (s[40] << 18) | (s[41] >>> 14);
  88.       b29 = (s[41] << 18) | (s[40] >>> 14);
  89.       b20 = (s[2] << 1) | (s[3] >>> 31);
  90.       b21 = (s[3] << 1) | (s[2] >>> 31);
  91.       b2 = (s[13] << 12) | (s[12] >>> 20);
  92.       b3 = (s[12] << 12) | (s[13] >>> 20);
  93.       b34 = (s[22] << 10) | (s[23] >>> 22);
  94.       b35 = (s[23] << 10) | (s[22] >>> 22);
  95.       b16 = (s[33] << 13) | (s[32] >>> 19);
  96.       b17 = (s[32] << 13) | (s[33] >>> 19);
  97.       b48 = (s[42] << 2) | (s[43] >>> 30);
  98.       b49 = (s[43] << 2) | (s[42] >>> 30);
  99.       b40 = (s[5] << 30) | (s[4] >>> 2);
  100.       b41 = (s[4] << 30) | (s[5] >>> 2);
  101.       b22 = (s[14] << 6) | (s[15] >>> 26);
  102.       b23 = (s[15] << 6) | (s[14] >>> 26);
  103.       b4 = (s[25] << 11) | (s[24] >>> 21);
  104.       b5 = (s[24] << 11) | (s[25] >>> 21);
  105.       b36 = (s[34] << 15) | (s[35] >>> 17);
  106.       b37 = (s[35] << 15) | (s[34] >>> 17);
  107.       b18 = (s[45] << 29) | (s[44] >>> 3);
  108.       b19 = (s[44] << 29) | (s[45] >>> 3);
  109.       b10 = (s[6] << 28) | (s[7] >>> 4);
  110.       b11 = (s[7] << 28) | (s[6] >>> 4);
  111.       b42 = (s[17] << 23) | (s[16] >>> 9);
  112.       b43 = (s[16] << 23) | (s[17] >>> 9);
  113.       b24 = (s[26] << 25) | (s[27] >>> 7);
  114.       b25 = (s[27] << 25) | (s[26] >>> 7);
  115.       b6 = (s[36] << 21) | (s[37] >>> 11);
  116.       b7 = (s[37] << 21) | (s[36] >>> 11);
  117.       b38 = (s[47] << 24) | (s[46] >>> 8);
  118.       b39 = (s[46] << 24) | (s[47] >>> 8);
  119.       b30 = (s[8] << 27) | (s[9] >>> 5);
  120.       b31 = (s[9] << 27) | (s[8] >>> 5);
  121.       b12 = (s[18] << 20) | (s[19] >>> 12);
  122.       b13 = (s[19] << 20) | (s[18] >>> 12);
  123.       b44 = (s[29] << 7) | (s[28] >>> 25);
  124.       b45 = (s[28] << 7) | (s[29] >>> 25);
  125.       b26 = (s[38] << 8) | (s[39] >>> 24);
  126.       b27 = (s[39] << 8) | (s[38] >>> 24);
  127.       b8 = (s[48] << 14) | (s[49] >>> 18);
  128.       b9 = (s[49] << 14) | (s[48] >>> 18);
  129.  
  130.       s[0] = b0 ^ (~b2 & b4);
  131.       s[1] = b1 ^ (~b3 & b5);
  132.       s[10] = b10 ^ (~b12 & b14);
  133.       s[11] = b11 ^ (~b13 & b15);
  134.       s[20] = b20 ^ (~b22 & b24);
  135.       s[21] = b21 ^ (~b23 & b25);
  136.       s[30] = b30 ^ (~b32 & b34);
  137.       s[31] = b31 ^ (~b33 & b35);
  138.       s[40] = b40 ^ (~b42 & b44);
  139.       s[41] = b41 ^ (~b43 & b45);
  140.       s[2] = b2 ^ (~b4 & b6);
  141.       s[3] = b3 ^ (~b5 & b7);
  142.       s[12] = b12 ^ (~b14 & b16);
  143.       s[13] = b13 ^ (~b15 & b17);
  144.       s[22] = b22 ^ (~b24 & b26);
  145.       s[23] = b23 ^ (~b25 & b27);
  146.       s[32] = b32 ^ (~b34 & b36);
  147.       s[33] = b33 ^ (~b35 & b37);
  148.       s[42] = b42 ^ (~b44 & b46);
  149.       s[43] = b43 ^ (~b45 & b47);
  150.       s[4] = b4 ^ (~b6 & b8);
  151.       s[5] = b5 ^ (~b7 & b9);
  152.       s[14] = b14 ^ (~b16 & b18);
  153.       s[15] = b15 ^ (~b17 & b19);
  154.       s[24] = b24 ^ (~b26 & b28);
  155.       s[25] = b25 ^ (~b27 & b29);
  156.       s[34] = b34 ^ (~b36 & b38);
  157.       s[35] = b35 ^ (~b37 & b39);
  158.       s[44] = b44 ^ (~b46 & b48);
  159.       s[45] = b45 ^ (~b47 & b49);
  160.       s[6] = b6 ^ (~b8 & b0);
  161.       s[7] = b7 ^ (~b9 & b1);
  162.       s[16] = b16 ^ (~b18 & b10);
  163.       s[17] = b17 ^ (~b19 & b11);
  164.       s[26] = b26 ^ (~b28 & b20);
  165.       s[27] = b27 ^ (~b29 & b21);
  166.       s[36] = b36 ^ (~b38 & b30);
  167.       s[37] = b37 ^ (~b39 & b31);
  168.       s[46] = b46 ^ (~b48 & b40);
  169.       s[47] = b47 ^ (~b49 & b41);
  170.       s[8] = b8 ^ (~b0 & b2);
  171.       s[9] = b9 ^ (~b1 & b3);
  172.       s[18] = b18 ^ (~b10 & b12);
  173.       s[19] = b19 ^ (~b11 & b13);
  174.       s[28] = b28 ^ (~b20 & b22);
  175.       s[29] = b29 ^ (~b21 & b23);
  176.       s[38] = b38 ^ (~b30 & b32);
  177.       s[39] = b39 ^ (~b31 & b33);
  178.       s[48] = b48 ^ (~b40 & b42);
  179.       s[49] = b49 ^ (~b41 & b43);
  180.  
  181.       s[0] ^= RC[n];
  182.       s[1] ^= RC[n + 1];
  183.     }
  184.   };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement