MCPcopy Create free account
hub / github.com/arguiot/TheoremJS / md5

Method md5

__test__/theorem.js:1436–1680  ·  view source on GitHub ↗
(s)

Source from the content-addressed store, hash-verified

1434 return result.join("");
1435 }
1436 md5(s) {
1437 if (BigNumber.isBigNumber(s) || (!isNaN(parseFloat(s)) && isFinite(s))) {
1438 s = s.toString()
1439 }
1440 let string = s;
1441
1442 function RotateLeft(lValue, iShiftBits) {
1443 return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
1444 }
1445
1446 function AddUnsigned(lX, lY) {
1447 let lX4;
1448 let lY4;
1449 let lX8;
1450 let lY8;
1451 let lResult;
1452 lX8 = (lX & 0x80000000);
1453 lY8 = (lY & 0x80000000);
1454 lX4 = (lX & 0x40000000);
1455 lY4 = (lY & 0x40000000);
1456 lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
1457 if (lX4 & lY4) {
1458 return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
1459 }
1460 if (lX4 | lY4) {
1461 if (lResult & 0x40000000) {
1462 return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
1463 } else {
1464 return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
1465 }
1466 } else {
1467 return (lResult ^ lX8 ^ lY8);
1468 }
1469 }
1470
1471 function F(x, y, z) {
1472 return (x & y) | ((~x) & z);
1473 }
1474
1475 function G(x, y, z) {
1476 return (x & z) | (y & (~z));
1477 }
1478
1479 function H(x, y, z) {
1480 return (x ^ y ^ z);
1481 }
1482
1483 function I(x, y, z) {
1484 return (y ^ (x | (~z)));
1485 }
1486
1487 function FF(a, b, c, d, x, s, ac) {
1488 a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
1489 return AddUnsigned(RotateLeft(a, s), b);
1490 }
1491
1492 function GG(a, b, c, d, x, s, ac) {
1493 a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));

Callers 1

test.jsFile · 0.80

Calls 9

ConvertToWordArrayFunction · 0.85
FFFunction · 0.85
GGFunction · 0.85
HHFunction · 0.85
IIFunction · 0.85
AddUnsignedFunction · 0.85
WordToHexFunction · 0.85
toStringMethod · 0.80
Utf8EncodeFunction · 0.50

Tested by

no test coverage detected