MCPcopy Create free account
hub / github.com/Dstack-TEE/dstack / crypto_hashblocks_hl

Function crypto_hashblocks_hl

vmm/src/x25519.js:847–1171  ·  view source on GitHub ↗
(hh, hl, m, n)

Source from the content-addressed store, hash-verified

845 0x4a475817,
846 ];
847 function crypto_hashblocks_hl(hh, hl, m, n) {
848 var wh = new Int32Array(16), wl = new Int32Array(16), bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7, bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7, th, tl, i, j, h, l, a, b, c, d;
849 var ah0 = hh[0], ah1 = hh[1], ah2 = hh[2], ah3 = hh[3], ah4 = hh[4], ah5 = hh[5], ah6 = hh[6], ah7 = hh[7], al0 = hl[0], al1 = hl[1], al2 = hl[2], al3 = hl[3], al4 = hl[4], al5 = hl[5], al6 = hl[6], al7 = hl[7];
850 var pos = 0;
851 while (n >= 128) {
852 for (i = 0; i < 16; i++) {
853 j = 8 * i + pos;
854 wh[i] = (m[j + 0] << 24) | (m[j + 1] << 16) | (m[j + 2] << 8) | m[j + 3];
855 wl[i] = (m[j + 4] << 24) | (m[j + 5] << 16) | (m[j + 6] << 8) | m[j + 7];
856 }
857 for (i = 0; i < 80; i++) {
858 bh0 = ah0;
859 bh1 = ah1;
860 bh2 = ah2;
861 bh3 = ah3;
862 bh4 = ah4;
863 bh5 = ah5;
864 bh6 = ah6;
865 bh7 = ah7;
866 bl0 = al0;
867 bl1 = al1;
868 bl2 = al2;
869 bl3 = al3;
870 bl4 = al4;
871 bl5 = al5;
872 bl6 = al6;
873 bl7 = al7;
874 // add
875 h = ah7;
876 l = al7;
877 a = l & 0xffff;
878 b = l >>> 16;
879 c = h & 0xffff;
880 d = h >>> 16;
881 // Sigma1
882 h =
883 ((ah4 >>> 14) | (al4 << (32 - 14))) ^
884 ((ah4 >>> 18) | (al4 << (32 - 18))) ^
885 ((al4 >>> (41 - 32)) | (ah4 << (32 - (41 - 32))));
886 l =
887 ((al4 >>> 14) | (ah4 << (32 - 14))) ^
888 ((al4 >>> 18) | (ah4 << (32 - 18))) ^
889 ((ah4 >>> (41 - 32)) | (al4 << (32 - (41 - 32))));
890 a += l & 0xffff;
891 b += l >>> 16;
892 c += h & 0xffff;
893 d += h >>> 16;
894 // Ch
895 h = (ah4 & ah5) ^ (~ah4 & ah6);
896 l = (al4 & al5) ^ (~al4 & al6);
897 a += l & 0xffff;
898 b += l >>> 16;
899 c += h & 0xffff;
900 d += h >>> 16;
901 // K
902 h = K[i * 2];
903 l = K[i * 2 + 1];
904 a += l & 0xffff;

Callers 1

crypto_hashFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected