(index: number, b: number, c: number, d: number)
| 96 | } |
| 97 | |
| 98 | function fk(index: number, b: number, c: number, d: number): [number, number] { |
| 99 | if (index < 20) { |
| 100 | return [(b & c) | (~b & d), 0x5a827999]; |
| 101 | } |
| 102 | |
| 103 | if (index < 40) { |
| 104 | return [b ^ c ^ d, 0x6ed9eba1]; |
| 105 | } |
| 106 | |
| 107 | if (index < 60) { |
| 108 | return [(b & c) | (b & d) | (c & d), 0x8f1bbcdc]; |
| 109 | } |
| 110 | |
| 111 | return [b ^ c ^ d, 0xca62c1d6]; |
| 112 | } |
| 113 | |
| 114 | function stringToWords32(str: string, endian: Endian): number[] { |
| 115 | const size = (str.length + 3) >>> 2; |