Actually fixed encryption for passwords

After messing with my home system for a bit, I realized that the encryption was not actually working and my password was getting rejected. I found a different decompiler which generated different (more sensible) code which is now generating the same password as the desktop Pentair app and is able to remotely login. This code needs a lot of manual deobfuscation.
This commit is contained in:
2019-02-21 12:16:10 -06:00
parent 9d2ba55047
commit fa550d073e

View File

@ -13,7 +13,7 @@ namespace ScreenLogicConnect
readonly int[] a = new int[8];
private bool bKeyInit;
int iROUNDS;
private readonly byte[] sm_S = new byte[] { 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x1, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x4, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x5, 0x9a, 0x7, 0x12, 0x0, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x9, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x80, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x2, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0xc, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0xb, 0xdb, 0xe0, 0x32, 0x3a, 0xa, 0x49, 0x6, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x8, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x3, 0xf6, 0xe, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0xd, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0xf, 0xb0, 0x54, 0xbb, 0x16 };
private readonly byte[] sm_S = new byte[] { 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x1, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x4, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x5, 0x9a, 0x7, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x9, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x0, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x2, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0xc, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0xb, 0xdb, 0xe0, 0x32, 0x3a, 0xa, 0x49, 0x6, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x8, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x3, 0xf6, 0xe, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0xd, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0xf, 0xb0, 0x54, 0xbb, 0x16 };
private readonly int[] sm_T1 = new int[] { -966564955, -126059388, -294160487, -159679603, -855539, -697603139, -563122255, -1849309868, 1613770832, 33620227, -832084055, 1445669757, -402719207, -1244145822, 1303096294, -327780710, -1882535355, 528646813, -1983264448, -92439161, -268764651, -1302767125, -1907931191, -68095989, 1101901292, -1277897625, 1604494077, 1169141738, 597466303, 1403299063, -462261610, -1681866661, 1974974402, -503448292, 1033081774, 1277568618, 1815492186, 2118074177, -168298750, -2083730353, 1748251740, 1369810420, -773462732, -101584632, -495881837, -1411852173, 1647391059, 706024767, 134480908, -1782069422, 1176707941, -1648114850, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, -538779075, -840176858, 1311188841, 2142417613, -361400929, 302582043, 495158174, 1479289972, 874125870, 907746093, -596742478, -1269146898, 1537253627, -1538108682, 1983593293, -1210657183, 2108928974, 1378429307, -572267714, 1580150641, 327451799, -1504488459, -1177431704, 0, -1041371860, 1075847264, -469959649, 2041688520, -1235526675, -731223362, -1916023994, 1740553945, 1916352843, -1807070498, -1739830060, -1336387352, -2049978550, -1143943061, -974131414, 1336584933, -302253290, -2042412091, -1706209833, 1714631509, 293963156, -1975171633, -369493744, 67240454, -25198719, -1605349136, 2017213508, 631218106, 1269344483, -1571728909, 1571005438, -2143272768, 93294474, 1066570413, 563977660, 1882732616, -235539196, 1673313503, 2008463041, -1344611723, 1109467491, 537923632, -436207846, -34344178, -1076702611, -2117218996, 403442708, 638784309, -1007883217, -1101045791, 899127202, -2008791860, 773265209, -1815821225, 1437050866, -58818942, 2050833735, -932944724, -1168286233, 840505643, -428641387, -1067425632, 427917720, -1638969391, -1545806721, 1143087718, 1412049534, 999329963, 193497219, -1941551414, -940642775, 1807268051, 672404540, -1478566279, -1134666014, 369822493, -1378100362, -606019525, 1681011286, 1949973070, 336202270, -1840690725, 201721354, 1210328172, -1201906460, -1614626211, -1110191250, 1135389935, -1000185178, 965841320, 831886756, -739974089, -226920053, -706222286, -1949775805, 1849112409, -630362697, 26054028, -1311386268, -1672589614, 1235855840, -663982924, -1403627782, -202050553, -806688219, -899324497, -193299826, 1202630377, 268961816, 1874508501, -260540280, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, -1748580783, -873928669, -1579295364, -395021156, 1042226977, -1773450275, 1639824860, 227249030, 260737669, -529502064, 2084453954, 1907733956, -865704278, -1874310952, 100860677, -134810111, 470683154, -1033805405, 1781871967, -1370007559, 1773779408, 394692241, -1715355304, 974986535, 664706745, -639508168, -336005101, 731420851, 571543859, -764843589, -1445340816, 126783113, 865375399, 765172662, 1008606754, 361203602, -907417312, -2016489911, -1437248001, 1344809080, -1512054918, 59542671, 1503764984, 160008576, 437062935, 1707065306, -672733647, -2076032314, -798463816, -2109652541, 697932208, 1512910199, 504303377, 2075177163, -1470868228, 1841019862, 739644986 };
private readonly int[] sm_T2 = new int[] { -1513725085, -2064089988, -1712425097, -1913226373, 234877682, -1110021269, -1310822545, 1418839493, 1348481072, 50462977, -1446090905, 2102799147, 434634494, 1656084439, -431117397, -1695779210, 1167051466, -1658879358, 1082771913, -2013627011, 368048890, -340633255, -913422521, 201060592, -331240019, 1739838676, -44064094, -364531793, -1088185188, -145513308, -1763413390, 1536934080, -1032472649, 484572669, -1371696237, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, -195975771, 886171109, 150598129, -1813876367, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, -1590192490, 252314885, -1255171430, 151914247, 908333586, -1692696448, 1038082786, 651029483, 1766729511, -847269198, -1612024459, 454166793, -1642232957, 1951935532, 775166490, 758520603, -1294176658, -290170278, -77881184, -157003182, 1299594043, 1639438038, -830622797, 2068982057, 1054729187, 1901997871, -1760328572, -173649069, 1757008337, 0, 750906861, 1614815264, 535035132, -931548751, -306816165, -1093375382, 1183697867, -647512386, 1265776953, -560706998, -728216500, -391096232, 1250283471, 1807470800, 717615087, -447763798, 384695291, -981056701, -677753523, 1432761139, -1810791035, -813021883, 283769337, 100925954, -2114027649, -257929136, 1148730428, -1171939425, -481580888, -207466159, -27417693, -1065336768, -1979347057, -1388342638, -1138647651, 1215313976, 82966005, -547111748, -1049119050, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, -507617441, -1573546089, -863484860, 959321879, 1469301956, -229267545, -2097381762, 1199193405, -1396153244, -407216803, 724703513, -1780059277, -1598005152, -1743158911, -778154161, 2141445340, 1715741218, 2119445034, -1422159728, -2096396152, -896776634, 700968686, -747915080, 1009259540, 2041044702, -490971554, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, -611169975, 168560134, 1816667172, -457679780, 1570751170, 1857934291, -280777556, -1497079198, -1472622191, -1540254315, 936633572, -1947043463, 852879335, 1133234376, 1500395319, -1210421907, -1946055283, 1689376213, -761508274, -532043351, -1260884884, -89369002, 133428468, 634383082, -1345690267, -1896580486, -381178194, 403703816, -714097990, -1997506440, 1867130149, 1918643758, 607656988, -245913946, -948718412, 1368901318, 600565992, 2090982877, -1662487436, 557719327, -577352885, -597574211, -2045932661, -2062579062, -1864339344, 1115438654, -999180875, -1429445018, -661632952, 84280067, 33027830, 303828494, -1547542175, 1600795957, -106014889, -798377543, -1860729210, 1486471617, 658119965, -1188585826, 953803233, 334231800, -1288988520, 857870609, -1143838359, 1890179545, -1995993458, -1489791852, -1238525029, 574365214, -1844082809, 550103529, 1233637070, -5614251, 2018519080, 2057691103, -1895592820, -128343647, -2146858615, 387583245, -630865985, 836232934, -964410814, -1194301336, -1014873791, -1339450983, 2002398509, 287182607, -881086288, -56077228, -697451589, 975967766 };
private readonly int[] sm_T3 = new int[] { 1671808611, 2089089148, 2006576759, 2072901243, -233963534, 1807603307, 1873927791, -984313403, 810573872, 16974337, 1739181671, 729634347, -31856642, -681396777, -1410970197, 1989864566, -901410870, -2103631998, -918517303, 2106063485, -99225606, 1508618841, 1204391495, -267650064, -1377025619, -731401260, -1560453214, -1343601233, -1665195108, -1527295068, 1922491506, -1067738176, -1211992649, -48438787, -1817297517, 644500518, 911895606, 1061256767, -150800905, -867204148, 878471220, -1510714971, -449523227, -251069967, 1905517169, -663508008, 827548209, 356461077, 67897348, -950889017, 593839651, -1017209405, 405286936, -1767819370, 84871685, -1699401830, 118033927, 305538066, -2137318528, -499261470, -349778453, 661212711, -1295155278, 1973414517, 152769033, -2086789757, 745822252, 439235610, 455947803, 1857215598, 1525593178, -1594139744, 1391895634, 994932283, -698239018, -1278313037, 695947817, -482419229, 795958831, -2070473852, 1408607827, -781665839, 0, -315833875, 543178784, -65018884, -1312261711, 1542305371, 1790891114, -884568629, -1093048386, 961245753, 1256100938, 1289001036, 1491644504, -817199665, -798245936, -282409489, -1427812438, -82383365, 1137018435, 1305975373, 861234739, -2053893755, 1171229253, -116332039, 33948674, 2139225727, 1357946960, 1011120188, -1615190625, -1461498968, 1374921297, -1543610973, 1086357568, -1886780017, -1834139758, -1648615011, 944271416, -184225291, -1126210628, -1228834890, -629821478, 560153121, 271589392, -15014401, -217121293, -764559406, -850624051, 202643468, 322250259, -332413972, 1608629855, -1750977129, 1154254916, 389623319, -1000893500, -1477290585, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, -2120738431, 1339137615, -595614756, 577127458, 712922154, -1867826288, -2004677752, 1187679302, -299251730, -1194103880, 339486740, -562452514, 1591917662, 186455563, -612979237, -532948000, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, -1034051646, -747717165, -1393605716, 1655096418, -1851246191, -1784401515, -466103324, 2039214713, -416098841, -935097400, 928607799, 1840765549, -1920204403, -714821163, 1322425422, -1444918871, 1823791212, 1459268694, -200805388, -366620694, 1706019429, 2056189050, -1360443474, 135794696, -1160417350, 2022240376, 628050469, 779246638, 472135708, -1494132826, -1261997132, -967731258, -400307224, -579034659, 1956440180, 522272287, 1272813131, -1109630531, -1954148981, -1970991222, 1888542832, 1044544574, -1245417035, 1722469478, 1222152264, 50660867, -167643146, 236067854, 1638122081, 895445557, 1475980887, -1177523783, -2037311610, -1051158079, 489110045, -1632032866, -516367903, -132912136, -1733088360, 288563729, 1773916777, -646927911, -1903622258, -1800981612, -1682559589, 505560094, -2020469369, -383727127, -834041906, 1442818645, 678973480, -545610273, -1936784500, -1577559647, -1988097655, 219617805, -1076206145, -432941082, 1120306242, 1756942440, 1103331905, -1716508263, 762796589, 252780047, -1328841808, 1425844308, -1143575109, 372911126 };
@ -90,7 +90,7 @@ namespace ScreenLogicConnect
private void MakeKey(string sChallengeStr)
{
MakeKeyFromBlock(MakeBlock(sChallengeStr, (byte)0));
MakeKeyFromBlock(MakeBlock(sChallengeStr, 0));
}
private void MakeKeyFromBlock(byte[] pass)
@ -99,7 +99,7 @@ namespace ScreenLogicConnect
{
return;
}
if (pass.Length == BLOCK_SIZE || pass.Length == 24 || pass.Length == 32)
if (pass.Length == 16 || pass.Length == 24 || pass.Length == 32)
{
int i;
int j;
@ -231,46 +231,89 @@ namespace ScreenLogicConnect
{
return null;
}
int t0 = ((((block[0] << 24) | (block[1] << 16)) | (block[2] << 8)) | block[3]) ^ this.Ke[0, 0];
int t1 = ((((block[4] << 24) | (block[5] << 16)) | (block[6] << 8)) | block[7]) ^ this.Ke[0, 1];
int t2 = ((((block[8] << 24) | (block[9] << 16)) | (block[10] << 8)) | block[11]) ^ this.Ke[0, 2];
int t3 = ((((block[12] << 24) | (block[13] << 16)) | (block[14] << 8)) | block[15]) ^ this.Ke[0, 3];
for (int r = 1; r < this.iROUNDS; r++)
int i10 = 0 + 1;
int i8 = block[0];
int i9 = i10 + 1;
i10 = block[i10];
int i11 = i9 + 1;
int i12 = block[i9];
i9 = i11 + 1;
i11 = (i8 << 24 | i10 << 16 | i12 << 8 | (byte)block[i11]) ^ this.Ke[0, 0];
i12 = i9 + 1;
i8 = block[i9];
i10 = i12 + 1;
i9 = block[i12];
i12 = i10 + 1;
int i13 = block[i10];
i10 = i12 + 1;
i9 = (i8 << 24 | i9 << 16 | i13 << 8 | (byte)block[i12]) ^ this.Ke[0, 1];
i12 = i10 + 1;
i8 = block[i10];
i10 = i12 + 1;
i12 = block[i12];
i13 = i10 + 1;
int i14 = block[i10];
i10 = i13 + 1;
i8 = (i8 << 24 | i12 << 16 | i14 << 8 | (byte)block[i13]) ^ this.Ke[0, 2];
i13 = i10 + 1;
i10 = block[i10];
i12 = i13 + 1;
i13 = block[i13];
i14 = i12 + 1;
i12 = (i10 << 24 | i13 << 16 | block[i12] << 8 | (byte)block[i14]) ^ this.Ke[0, 3];
i10 = 1;
while (i10 < this.iROUNDS)
{
t0 = (((this.sm_T1[(t0 >> 24) & 255] ^ this.sm_T2[(t1 >> 16) & 255]) ^ this.sm_T3[(t2 >> 8) & 255]) ^ this.sm_T4[t3 & 255]) ^ this.Ke[r, 0];
t1 = (((this.sm_T1[(t1 >> 24) & 255] ^ this.sm_T2[(t2 >> 16) & 255]) ^ this.sm_T3[(t3 >> 8) & 255]) ^ this.sm_T4[t0 & 255]) ^ this.Ke[r, 1];
t2 = (((this.sm_T1[(t2 >> 24) & 255] ^ this.sm_T2[(t3 >> 16) & 255]) ^ this.sm_T3[(t0 >> 8) & 255]) ^ this.sm_T4[t1 & 255]) ^ this.Ke[r, 2];
t3 = (((this.sm_T1[(t3 >> 24) & 255] ^ this.sm_T2[(t0 >> 16) & 255]) ^ this.sm_T3[(t1 >> 8) & 255]) ^ this.sm_T4[t2 & 255]) ^ this.Ke[r, 3];
int i24 = this.sm_T1[(i11 >> 24 & 0xFF)];
int i25 = this.sm_T2[(i9 >> 16 & 0xFF)];
int i26 = this.sm_T3[(i8 >> 8 & 0xFF)];
int i27 = this.sm_T4[(i12 & 0xFF)];
int i28 = this.Ke[i10, 0];
int i18 = this.sm_T1[(i9 >> 24 & 0xFF)];
int i19 = this.sm_T2[(i8 >> 16 & 0xFF)];
int i20 = this.sm_T3[(i12 >> 8 & 0xFF)];
int i21 = this.sm_T4[(i11 & 0xFF)];
int i22 = this.Ke[i10, 1];
i13 = this.sm_T1[(i8 >> 24 & 0xFF)];
i14 = this.sm_T2[(i12 >> 16 & 0xFF)];
int i15 = this.sm_T3[(i11 >> 8 & 0xFF)];
int i16 = this.sm_T4[(i9 & 0xFF)];
int i17 = this.Ke[i10, 2];
i12 = this.sm_T1[(i12 >> 24 & 0xFF)];
int i23 = this.sm_T2[(i11 >> 16 & 0xFF)];
int i29 = this.sm_T3[(i9 >> 8 & 0xFF)];
int i30 = this.sm_T4[(i8 & 0xFF)];
int i31 = this.Ke[i10, 3];
i11 = i24 ^ i25 ^ i26 ^ i27 ^ i28;
i9 = i18 ^ i19 ^ i20 ^ i21 ^ i22;
i8 = i13 ^ i14 ^ i15 ^ i16 ^ i17;
i12 = i12 ^ i23 ^ i29 ^ i30 ^ i31;
i10 += 1;
}
byte[] btResult = new byte[16];
int tt = this.Ke[this.iROUNDS, 0];
btResult[0] = (byte)(this.sm_S[(t0 >> 24) & 255] ^ (tt >> 24));
btResult[1] = (byte)(this.sm_S[(t1 >> 16) & 255] ^ (tt >> 16));
btResult[2] = (byte)(this.sm_S[(t2 >> 8) & 255] ^ (tt >> 8));
btResult[3] = (byte)(this.sm_S[t3 & 255] ^ tt);
tt = this.Ke[this.iROUNDS, 1];
btResult[4] = (byte)(this.sm_S[(t1 >> 24) & 255] ^ (tt >> 24));
btResult[5] = (byte)(this.sm_S[(t2 >> 16) & 255] ^ (tt >> 16));
btResult[6] = (byte)(this.sm_S[(t3 >> 8) & 255] ^ (tt >> 8));
btResult[7] = (byte)(this.sm_S[t0 & 255] ^ tt);
tt = this.Ke[this.iROUNDS, 2];
btResult[8] = (byte)(this.sm_S[(t2 >> 24) & 255] ^ (tt >> 24));
btResult[9] = (byte)(this.sm_S[(t3 >> 16) & 255] ^ (tt >> 16));
btResult[10] = (byte)(this.sm_S[(t0 >> 8) & 255] ^ (tt >> 8));
btResult[11] = (byte)(this.sm_S[t1 & 255] ^ tt);
tt = this.Ke[this.iROUNDS, 3];
btResult[12] = (byte)(this.sm_S[(t3 >> 24) & 255] ^ (tt >> 24));
btResult[13] = (byte)(this.sm_S[(t0 >> 16) & 255] ^ (tt >> 16));
btResult[14] = (byte)(this.sm_S[(t1 >> 8) & 255] ^ (tt >> 8));
btResult[15] = (byte)(this.sm_S[t2 & 255] ^ tt);
return btResult;
i10 = this.Ke[this.iROUNDS, 0];
byte i = (byte)(this.sm_S[(i11 >> 24 & 0xFF)] ^ i10 >> 24);
byte j = (byte)(this.sm_S[(i9 >> 16 & 0xFF)] ^ i10 >> 16);
byte k = (byte)(this.sm_S[(i8 >> 8 & 0xFF)] ^ i10 >> 8);
byte m = (byte)(this.sm_S[(i12 & 0xFF)] ^ i10);
i10 = this.Ke[this.iROUNDS, 1];
byte n = (byte)(this.sm_S[(i9 >> 24 & 0xFF)] ^ i10 >> 24);
byte i1 = (byte)(this.sm_S[(i8 >> 16 & 0xFF)] ^ i10 >> 16);
byte i2 = (byte)(this.sm_S[(i12 >> 8 & 0xFF)] ^ i10 >> 8);
byte i3 = (byte)(this.sm_S[(i11 & 0xFF)] ^ i10);
i10 = this.Ke[this.iROUNDS, 2];
byte i4 = (byte)(this.sm_S[(i8 >> 24 & 0xFF)] ^ i10 >> 24);
byte i5 = (byte)(this.sm_S[(i12 >> 16 & 0xFF)] ^ i10 >> 16);
byte i6 = (byte)(this.sm_S[(i11 >> 8 & 0xFF)] ^ i10 >> 8);
byte i7 = (byte)(this.sm_S[(i9 & 0xFF)] ^ i10);
i10 = this.Ke[this.iROUNDS, 3];
return new byte[] { i, j, k, m, n, i1, i2, i3, i4, i5, i6, i7, (byte)(this.sm_S[(i12 >> 24 & 0xFF)] ^ i10 >> 24), (byte)(this.sm_S[(i11 >> 16 & 0xFF)] ^ i10 >> 16), (byte)(this.sm_S[(i9 >> 8 & 0xFF)] ^ i10 >> 8), (byte)(this.sm_S[(i8 & 0xFF)] ^ i10) };
}
byte[] Encrypt(string sString)
{
if (this.bKeyInit)
{
return EncryptData(MakeBlock(sString, (byte)0));
return EncryptData(MakeBlock(sString, 0));
}
return null;
}
@ -279,7 +322,7 @@ namespace ScreenLogicConnect
{
if (this.bKeyInit)
{
return EncryptData(MakeBlock(source, (byte)0));
return EncryptData(MakeBlock(source, 0));
}
return null;
}