< Summary

Information
Class: Renci.SshNet.Security.Chaos.NaCl.Internal.Sha512Internal
Assembly: Renci.SshNet
File(s): \home\appveyor\projects\ssh-net\src\Renci.SshNet\Security\Chaos.NaCl\Internal\Sha512Internal.cs
Line coverage
100%
Covered lines: 427
Uncovered lines: 0
Coverable lines: 427
Total lines: 447
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
.cctor()100%1100%
Sha512Init(...)100%1100%
Core(...)100%2100%

File(s)

\home\appveyor\projects\ssh-net\src\Renci.SshNet\Security\Chaos.NaCl\Internal\Sha512Internal.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3
 4namespace Renci.SshNet.Security.Chaos.NaCl.Internal
 5{
 6    internal static class Sha512Internal
 7    {
 48        private static readonly UInt64[] K = new UInt64[]
 49            {
 410                0x428a2f98d728ae22,0x7137449123ef65cd,0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc,
 411                0x3956c25bf348b538,0x59f111f1b605d019,0x923f82a4af194f9b,0xab1c5ed5da6d8118,
 412                0xd807aa98a3030242,0x12835b0145706fbe,0x243185be4ee4b28c,0x550c7dc3d5ffb4e2,
 413                0x72be5d74f27b896f,0x80deb1fe3b1696b1,0x9bdc06a725c71235,0xc19bf174cf692694,
 414                0xe49b69c19ef14ad2,0xefbe4786384f25e3,0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65,
 415                0x2de92c6f592b0275,0x4a7484aa6ea6e483,0x5cb0a9dcbd41fbd4,0x76f988da831153b5,
 416                0x983e5152ee66dfab,0xa831c66d2db43210,0xb00327c898fb213f,0xbf597fc7beef0ee4,
 417                0xc6e00bf33da88fc2,0xd5a79147930aa725,0x06ca6351e003826f,0x142929670a0e6e70,
 418                0x27b70a8546d22ffc,0x2e1b21385c26c926,0x4d2c6dfc5ac42aed,0x53380d139d95b3df,
 419                0x650a73548baf63de,0x766a0abb3c77b2a8,0x81c2c92e47edaee6,0x92722c851482353b,
 420                0xa2bfe8a14cf10364,0xa81a664bbc423001,0xc24b8b70d0f89791,0xc76c51a30654be30,
 421                0xd192e819d6ef5218,0xd69906245565a910,0xf40e35855771202a,0x106aa07032bbd1b8,
 422                0x19a4c116b8d2d0c8,0x1e376c085141ab53,0x2748774cdf8eeb99,0x34b0bcb5e19b48a8,
 423                0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb,0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3,
 424                0x748f82ee5defb2fc,0x78a5636f43172f60,0x84c87814a1f0ab72,0x8cc702081a6439ec,
 425                0x90befffa23631e28,0xa4506cebde82bde9,0xbef9a3f7b2c67915,0xc67178f2e372532b,
 426                0xca273eceea26619c,0xd186b8c721c0c207,0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178,
 427                0x06f067aa72176fba,0x0a637dc5a2c898a6,0x113f9804bef90dae,0x1b710b35131c471b,
 428                0x28db77f523047d84,0x32caab7b40c72493,0x3c9ebe0a15c9bebc,0x431d67c49c100d4c,
 429                0x4cc5d4becb3e42b6,0x597f299cfc657e2a,0x5fcb6fab3ad6faec,0x6c44198c4a475817
 430            };
 31
 32        internal static void Sha512Init(out Array8<UInt64> state)
 1333        {
 1334            state.x0 = 0x6a09e667f3bcc908;
 1335            state.x1 = 0xbb67ae8584caa73b;
 1336            state.x2 = 0x3c6ef372fe94f82b;
 1337            state.x3 = 0xa54ff53a5f1d36f1;
 1338            state.x4 = 0x510e527fade682d1;
 1339            state.x5 = 0x9b05688c2b3e6c1f;
 1340            state.x6 = 0x1f83d9abfb41bd6b;
 1341            state.x7 = 0x5be0cd19137e2179;
 1342        }
 43
 44        internal static void Core(out Array8<UInt64> outputState, ref Array8<UInt64> inputState, ref Array16<UInt64> inp
 1545        {
 46            unchecked
 1547            {
 1548                UInt64 a = inputState.x0;
 1549                UInt64 b = inputState.x1;
 1550                UInt64 c = inputState.x2;
 1551                UInt64 d = inputState.x3;
 1552                UInt64 e = inputState.x4;
 1553                UInt64 f = inputState.x5;
 1554                UInt64 g = inputState.x6;
 1555                UInt64 h = inputState.x7;
 56
 1557                UInt64 w0 = input.x0;
 1558                UInt64 w1 = input.x1;
 1559                UInt64 w2 = input.x2;
 1560                UInt64 w3 = input.x3;
 1561                UInt64 w4 = input.x4;
 1562                UInt64 w5 = input.x5;
 1563                UInt64 w6 = input.x6;
 1564                UInt64 w7 = input.x7;
 1565                UInt64 w8 = input.x8;
 1566                UInt64 w9 = input.x9;
 1567                UInt64 w10 = input.x10;
 1568                UInt64 w11 = input.x11;
 1569                UInt64 w12 = input.x12;
 1570                UInt64 w13 = input.x13;
 1571                UInt64 w14 = input.x14;
 1572                UInt64 w15 = input.x15;
 73
 1574                int t = 0;
 7575                while (true)
 7576                {
 77                    ulong t1, t2;
 78
 7579                    {//0
 7580                        t1 = h +
 7581                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 7582                            //Sigma1(e)
 7583                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 7584                             K[t] + w0;
 7585                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 7586                            //Sigma0(a)
 7587                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 7588                        h = g;
 7589                        g = f;
 7590                        f = e;
 7591                        e = d + t1;
 7592                        d = c;
 7593                        c = b;
 7594                        b = a;
 7595                        a = t1 + t2;
 7596                        t++;
 7597                    }
 7598                    {//1
 7599                        t1 = h +
 75100                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75101                            //Sigma1(e)
 75102                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75103                             K[t] + w1;
 75104                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75105                            //Sigma0(a)
 75106                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75107                        h = g;
 75108                        g = f;
 75109                        f = e;
 75110                        e = d + t1;
 75111                        d = c;
 75112                        c = b;
 75113                        b = a;
 75114                        a = t1 + t2;
 75115                        t++;
 75116                    }
 75117                    {//2
 75118                        t1 = h +
 75119                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75120                            //Sigma1(e)
 75121                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75122                             K[t] + w2;
 75123                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75124                            //Sigma0(a)
 75125                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75126                        h = g;
 75127                        g = f;
 75128                        f = e;
 75129                        e = d + t1;
 75130                        d = c;
 75131                        c = b;
 75132                        b = a;
 75133                        a = t1 + t2;
 75134                        t++;
 75135                    }
 75136                    {//3
 75137                        t1 = h +
 75138                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75139                            //Sigma1(e)
 75140                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75141                             K[t] + w3;
 75142                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75143                            //Sigma0(a)
 75144                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75145                        h = g;
 75146                        g = f;
 75147                        f = e;
 75148                        e = d + t1;
 75149                        d = c;
 75150                        c = b;
 75151                        b = a;
 75152                        a = t1 + t2;
 75153                        t++;
 75154                    }
 75155                    {//4
 75156                        t1 = h +
 75157                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75158                            //Sigma1(e)
 75159                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75160                             K[t] + w4;
 75161                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75162                            //Sigma0(a)
 75163                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75164                        h = g;
 75165                        g = f;
 75166                        f = e;
 75167                        e = d + t1;
 75168                        d = c;
 75169                        c = b;
 75170                        b = a;
 75171                        a = t1 + t2;
 75172                        t++;
 75173                    }
 75174                    {//5
 75175                        t1 = h +
 75176                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75177                            //Sigma1(e)
 75178                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75179                             K[t] + w5;
 75180                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75181                            //Sigma0(a)
 75182                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75183                        h = g;
 75184                        g = f;
 75185                        f = e;
 75186                        e = d + t1;
 75187                        d = c;
 75188                        c = b;
 75189                        b = a;
 75190                        a = t1 + t2;
 75191                        t++;
 75192                    }
 75193                    {//6
 75194                        t1 = h +
 75195                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75196                            //Sigma1(e)
 75197                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75198                             K[t] + w6;
 75199                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75200                            //Sigma0(a)
 75201                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75202                        h = g;
 75203                        g = f;
 75204                        f = e;
 75205                        e = d + t1;
 75206                        d = c;
 75207                        c = b;
 75208                        b = a;
 75209                        a = t1 + t2;
 75210                        t++;
 75211                    }
 75212                    {//7
 75213                        t1 = h +
 75214                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75215                            //Sigma1(e)
 75216                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75217                             K[t] + w7;
 75218                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75219                            //Sigma0(a)
 75220                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75221                        h = g;
 75222                        g = f;
 75223                        f = e;
 75224                        e = d + t1;
 75225                        d = c;
 75226                        c = b;
 75227                        b = a;
 75228                        a = t1 + t2;
 75229                        t++;
 75230                    }
 75231                    {//8
 75232                        t1 = h +
 75233                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75234                            //Sigma1(e)
 75235                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75236                             K[t] + w8;
 75237                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75238                            //Sigma0(a)
 75239                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75240                        h = g;
 75241                        g = f;
 75242                        f = e;
 75243                        e = d + t1;
 75244                        d = c;
 75245                        c = b;
 75246                        b = a;
 75247                        a = t1 + t2;
 75248                        t++;
 75249                    }
 75250                    {//9
 75251                        t1 = h +
 75252                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75253                            //Sigma1(e)
 75254                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75255                             K[t] + w9;
 75256                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75257                            //Sigma0(a)
 75258                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75259                        h = g;
 75260                        g = f;
 75261                        f = e;
 75262                        e = d + t1;
 75263                        d = c;
 75264                        c = b;
 75265                        b = a;
 75266                        a = t1 + t2;
 75267                        t++;
 75268                    }
 75269                    {//10
 75270                        t1 = h +
 75271                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75272                            //Sigma1(e)
 75273                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75274                             K[t] + w10;
 75275                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75276                            //Sigma0(a)
 75277                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75278                        h = g;
 75279                        g = f;
 75280                        f = e;
 75281                        e = d + t1;
 75282                        d = c;
 75283                        c = b;
 75284                        b = a;
 75285                        a = t1 + t2;
 75286                        t++;
 75287                    }
 75288                    {//11
 75289                        t1 = h +
 75290                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75291                            //Sigma1(e)
 75292                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75293                             K[t] + w11;
 75294                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75295                            //Sigma0(a)
 75296                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75297                        h = g;
 75298                        g = f;
 75299                        f = e;
 75300                        e = d + t1;
 75301                        d = c;
 75302                        c = b;
 75303                        b = a;
 75304                        a = t1 + t2;
 75305                        t++;
 75306                    }
 75307                    {//12
 75308                        t1 = h +
 75309                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75310                            //Sigma1(e)
 75311                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75312                             K[t] + w12;
 75313                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75314                            //Sigma0(a)
 75315                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75316                        h = g;
 75317                        g = f;
 75318                        f = e;
 75319                        e = d + t1;
 75320                        d = c;
 75321                        c = b;
 75322                        b = a;
 75323                        a = t1 + t2;
 75324                        t++;
 75325                    }
 75326                    {//13
 75327                        t1 = h +
 75328                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75329                            //Sigma1(e)
 75330                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75331                             K[t] + w13;
 75332                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75333                            //Sigma0(a)
 75334                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75335                        h = g;
 75336                        g = f;
 75337                        f = e;
 75338                        e = d + t1;
 75339                        d = c;
 75340                        c = b;
 75341                        b = a;
 75342                        a = t1 + t2;
 75343                        t++;
 75344                    }
 75345                    {//14
 75346                        t1 = h +
 75347                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75348                            //Sigma1(e)
 75349                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75350                             K[t] + w14;
 75351                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75352                            //Sigma0(a)
 75353                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75354                        h = g;
 75355                        g = f;
 75356                        f = e;
 75357                        e = d + t1;
 75358                        d = c;
 75359                        c = b;
 75360                        b = a;
 75361                        a = t1 + t2;
 75362                        t++;
 75363                    }
 75364                    {//15
 75365                        t1 = h +
 75366                             ((e >> 14) ^ (e << (64 - 14)) ^ (e >> 18) ^ (e << (64 - 18)) ^ (e >> 41) ^ (e << (64 - 41))
 75367                            //Sigma1(e)
 75368                             ((e & f) ^ (~e & g)) + //Ch(e,f,g)
 75369                             K[t] + w15;
 75370                        t2 = ((a >> 28) ^ (a << (64 - 28)) ^ (a >> 34) ^ (a << (64 - 34)) ^ (a >> 39) ^ (a << (64 - 39))
 75371                            //Sigma0(a)
 75372                             ((a & b) ^ (a & c) ^ (b & c)); //Maj(a,b,c)
 75373                        h = g;
 75374                        g = f;
 75375                        f = e;
 75376                        e = d + t1;
 75377                        d = c;
 75378                        c = b;
 75379                        b = a;
 75380                        a = t1 + t2;
 75381                        t++;
 75382                    }
 75383                    if (t == 80)
 15384                        break;
 385
 60386                    w0 += ((w14 >> 19) ^ (w14 << (64 - 19)) ^ (w14 >> 61) ^ (w14 << (64 - 61)) ^ (w14 >> 6)) +
 60387                          w9 +
 60388                          ((w1 >> 1) ^ (w1 << (64 - 1)) ^ (w1 >> 8) ^ (w1 << (64 - 8)) ^ (w1 >> 7));
 60389                    w1 += ((w15 >> 19) ^ (w15 << (64 - 19)) ^ (w15 >> 61) ^ (w15 << (64 - 61)) ^ (w15 >> 6)) +
 60390                          w10 +
 60391                          ((w2 >> 1) ^ (w2 << (64 - 1)) ^ (w2 >> 8) ^ (w2 << (64 - 8)) ^ (w2 >> 7));
 60392                    w2 += ((w0 >> 19) ^ (w0 << (64 - 19)) ^ (w0 >> 61) ^ (w0 << (64 - 61)) ^ (w0 >> 6)) +
 60393                          w11 +
 60394                          ((w3 >> 1) ^ (w3 << (64 - 1)) ^ (w3 >> 8) ^ (w3 << (64 - 8)) ^ (w3 >> 7));
 60395                    w3 += ((w1 >> 19) ^ (w1 << (64 - 19)) ^ (w1 >> 61) ^ (w1 << (64 - 61)) ^ (w1 >> 6)) +
 60396                          w12 +
 60397                          ((w4 >> 1) ^ (w4 << (64 - 1)) ^ (w4 >> 8) ^ (w4 << (64 - 8)) ^ (w4 >> 7));
 60398                    w4 += ((w2 >> 19) ^ (w2 << (64 - 19)) ^ (w2 >> 61) ^ (w2 << (64 - 61)) ^ (w2 >> 6)) +
 60399                          w13 +
 60400                          ((w5 >> 1) ^ (w5 << (64 - 1)) ^ (w5 >> 8) ^ (w5 << (64 - 8)) ^ (w5 >> 7));
 60401                    w5 += ((w3 >> 19) ^ (w3 << (64 - 19)) ^ (w3 >> 61) ^ (w3 << (64 - 61)) ^ (w3 >> 6)) +
 60402                          w14 +
 60403                          ((w6 >> 1) ^ (w6 << (64 - 1)) ^ (w6 >> 8) ^ (w6 << (64 - 8)) ^ (w6 >> 7));
 60404                    w6 += ((w4 >> 19) ^ (w4 << (64 - 19)) ^ (w4 >> 61) ^ (w4 << (64 - 61)) ^ (w4 >> 6)) +
 60405                          w15 +
 60406                          ((w7 >> 1) ^ (w7 << (64 - 1)) ^ (w7 >> 8) ^ (w7 << (64 - 8)) ^ (w7 >> 7));
 60407                    w7 += ((w5 >> 19) ^ (w5 << (64 - 19)) ^ (w5 >> 61) ^ (w5 << (64 - 61)) ^ (w5 >> 6)) +
 60408                          w0 +
 60409                          ((w8 >> 1) ^ (w8 << (64 - 1)) ^ (w8 >> 8) ^ (w8 << (64 - 8)) ^ (w8 >> 7));
 60410                    w8 += ((w6 >> 19) ^ (w6 << (64 - 19)) ^ (w6 >> 61) ^ (w6 << (64 - 61)) ^ (w6 >> 6)) +
 60411                          w1 +
 60412                          ((w9 >> 1) ^ (w9 << (64 - 1)) ^ (w9 >> 8) ^ (w9 << (64 - 8)) ^ (w9 >> 7));
 60413                    w9 += ((w7 >> 19) ^ (w7 << (64 - 19)) ^ (w7 >> 61) ^ (w7 << (64 - 61)) ^ (w7 >> 6)) +
 60414                          w2 +
 60415                          ((w10 >> 1) ^ (w10 << (64 - 1)) ^ (w10 >> 8) ^ (w10 << (64 - 8)) ^ (w10 >> 7));
 60416                    w10 += ((w8 >> 19) ^ (w8 << (64 - 19)) ^ (w8 >> 61) ^ (w8 << (64 - 61)) ^ (w8 >> 6)) +
 60417                           w3 +
 60418                           ((w11 >> 1) ^ (w11 << (64 - 1)) ^ (w11 >> 8) ^ (w11 << (64 - 8)) ^ (w11 >> 7));
 60419                    w11 += ((w9 >> 19) ^ (w9 << (64 - 19)) ^ (w9 >> 61) ^ (w9 << (64 - 61)) ^ (w9 >> 6)) +
 60420                           w4 +
 60421                           ((w12 >> 1) ^ (w12 << (64 - 1)) ^ (w12 >> 8) ^ (w12 << (64 - 8)) ^ (w12 >> 7));
 60422                    w12 += ((w10 >> 19) ^ (w10 << (64 - 19)) ^ (w10 >> 61) ^ (w10 << (64 - 61)) ^ (w10 >> 6)) +
 60423                           w5 +
 60424                           ((w13 >> 1) ^ (w13 << (64 - 1)) ^ (w13 >> 8) ^ (w13 << (64 - 8)) ^ (w13 >> 7));
 60425                    w13 += ((w11 >> 19) ^ (w11 << (64 - 19)) ^ (w11 >> 61) ^ (w11 << (64 - 61)) ^ (w11 >> 6)) +
 60426                           w6 +
 60427                           ((w14 >> 1) ^ (w14 << (64 - 1)) ^ (w14 >> 8) ^ (w14 << (64 - 8)) ^ (w14 >> 7));
 60428                    w14 += ((w12 >> 19) ^ (w12 << (64 - 19)) ^ (w12 >> 61) ^ (w12 << (64 - 61)) ^ (w12 >> 6)) +
 60429                           w7 +
 60430                           ((w15 >> 1) ^ (w15 << (64 - 1)) ^ (w15 >> 8) ^ (w15 << (64 - 8)) ^ (w15 >> 7));
 60431                    w15 += ((w13 >> 19) ^ (w13 << (64 - 19)) ^ (w13 >> 61) ^ (w13 << (64 - 61)) ^ (w13 >> 6)) +
 60432                           w8 +
 60433                           ((w0 >> 1) ^ (w0 << (64 - 1)) ^ (w0 >> 8) ^ (w0 << (64 - 8)) ^ (w0 >> 7));
 60434                }
 435
 15436                outputState.x0 = inputState.x0 + a;
 15437                outputState.x1 = inputState.x1 + b;
 15438                outputState.x2 = inputState.x2 + c;
 15439                outputState.x3 = inputState.x3 + d;
 15440                outputState.x4 = inputState.x4 + e;
 15441                outputState.x5 = inputState.x5 + f;
 15442                outputState.x6 = inputState.x6 + g;
 15443                outputState.x7 = inputState.x7 + h;
 15444            }
 15445        }
 446    }
 447}